me too.
第一次用C8051F,是否IIC模块都看了好久,怎么用就更不知道了。
先用AVR驱动测试了一下,读出来的数值是40%左右,对着它哈一下气,数值会变化。
不过,自己看着写出来的SHT21程序有点怪怪的,读出来对不对都不知道。
我的C8051F的下载器还没有解决呢,用的是本本,没有串并口。
源码:
图片:红色是我们学校的校徽,右边是迪文科技(液晶)的logo,帮它宣传一下,呵呵。
今晚简单地用AT89S52驱动了一下SHT21,手摸传感器的时候,读出来的结果会有变化。没有湿度计可以作为参考,有没有读对都不知道。
不知其他兄台读出来的读数如何?我这边都是四五十左右。
//wwww.eeworld.com.cn
//IDE:Keil uV4
//MCU:AT89S52
//OSC:11.0592MHz
//IO模拟IIC驱动SHT21,输出结果用P1口的电平值表示,并通过串口发送结果,使用52特有的timer2,波特率115200
借用了古道热肠MP3送给论坛的C8051仿真器,发觉不是一般滴好用,数据线是加粗带磁环的,以前用过别的商家给的细的,时不时有毛病。
我的OLED报销后,一直纳闷怎么继续开发学习DIY湿度计C8051套件,有了仿真器,就方便啦,附上用C8051F320硬件I2C(SMBus)驱动SHT21的简单测试源码。
写的过程中,switch语句用少了个break,仿真器设设断点,很快就发现了错漏,要是平常没有用仿真器,这样的小问题可能又让我弄上不少时间,往往是小问题,卡死人。
经验不多,写的代码比较粗糙,还望多多大家指教。
压缩包包含以下四个主要部分:
IDE文件夹:
//开发环境:Silicon Laboratories IDE
//MCU:C8051F320
//OSC:内部12MHz
//2010年8月16日4:07:22 David Lee
//说明:使用C8051F320内部的硬件SMBus读取SHT21的温湿度值,通过硬件仿真观察结果
//SMBus采用中断方式
//可参照Silicon Laboratories IDE安装目录下的examples
//中断函数的编写,请查阅datasheet cn Page167 SMBus的状态译码来编写
Keil文件夹:
//开发环境:Keil Uv4
//MCU:C8051F320
//OSC:内部12MHz
//2010年8月16日4:21:32 David Lee
//说明:使用C8051F320内部的硬件SMBus读取SHT21的温湿度值
//SMBus采用中断方式
//可参照Silicon Laboratories IDE安装目录下的examples
//中断函数的编写,请查阅datasheet cn Page167 SMBus的状态译码来编写
C8051F320_1文件夹:
Silicon Laboratories IDE安装目录下的一些常用例程
SMBus.jpg
硬件仿真截图
测温度和测湿度的代码类似,直接copy过去,注释没改到,:$
[资料下载] C8051F320 usb
https://bbs.eeworld.com.cn/thread-109745-1-3.html
板凳:C8051f32x.pdf (4.06 MB) 数据手册cn
[资料下载] C8051F tools
https://bbs.eeworld.com.cn/thread-153767-1-2.html
C8051F单片初始化配制软件.rar (10.63 MB)
Silicon Labs IDE V4.01.rar (12.9 MB)
SMBus驱动源码工程文件,包含SHT21和PCF8563,使用古道热肠TX_UEC5_V1.0仿真器仿真通过。