2.3 MCU选型
鉴于温湿度测量实时性要求不高,数字化温度、湿度传感器及液晶显示模块对M C U速度要求也不算高,以上器件加上键盘、蜂鸣器等硬件资源占用的引脚数也不多,所以采用经典的51系列单片机是很好的选择。尤其美国Atmel公司生产的AT89S5x系列单片机[3],质优价廉,完全满足上述要求,而且具有ISP下载功能,可实现在对板载芯片进行程序升级,十分方便。最终C51程序经编译生成的HEX文件为15k大小,可下载到AT89S52芯片。
3.2 温度传感器典型程序段
D S 1 8 B 2 0对时序要求非常严格,编程时应确保延时程序要符合datasheet中的要求,这里首先编制了一个较精确的10us延时,之后的程序中多次调用。另外,摄氏、华氏温度的转换,以及低于0摄氏度时,需要显示的负号等情况都可在液晶显示温度的程序段中考虑。典型程序如下:
用户主机(M C U)发送一次开始信号后,DHT11从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信采集。而操作DS18B20时,MCU初始化收到应答信号后,就可随时发个指令写或读,主机有更多主动权。按照官方产品手册提供的时序,编制程序如下: