D S 1 8 B 2 0对时序要求非常严格,编程时应确保延时程序要符合datasheet中的要求,这里首先编制了一个较精确的10us延时,之后的程序中多次调用。另外,摄氏、华氏温度的转换,以及低于0摄氏度时,需要显示的负号等情况都可在液晶显示温度的程序段中考虑。典型程序如下: 3.3 湿度传感器典型程序段
相比同样是单总线设计的DS18B20,国产DHT11在编程思路上有一定相似性,但时序、移位等操作都不同,协议较前者简单。
用户主机(M C U)发送一次开始信号后,DHT11从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信采集。而操作DS18B20时,MCU初始化收到应答信号后,就可随时发个指令写或读,主机有更多主动权。按照官方产品手册提供的时序,编制程序如下:
主程序、1602显示驱动、其他功能等程序略去。 4.结论
本数字温湿度仪经试制、长时间运行,表现稳定,效果良好。在调试阶段,遇到并解决了一些问题,一个比较棘手的问题是,显示温度时偶尔会出现异常数字。经仔细分析发现,这是由于本仪表的多按键、多功能而采用的多个定时器,定时器产生的中断导致了DS18B20与MCU通信时序遭到破坏,造成传输的数据出错。本问题后来通过增加CRC8校验,对偶然出现的错误数据进行舍弃得到解决。
现阶段该温湿度仪只作为单独使用,在以后的升级型号中,可以加入数据存储功能(如24C02芯片记录峰值),以及多传感器总线方式,通过上位机监控各点温湿度等功能。
D S 1 8 B 2 0对时序要求非常严格,编程时应确保延时程序要符合datasheet中的要求,这里首先编制了一个较精确的10us延时,之后的程序中多次调用。另外,摄氏、华氏温度的转换,以及低于0摄氏度时,需要显示的负号等情况都可在液晶显示温度的程序段中考虑。典型程序如下: 3.3 湿度传感器典型程序段
相比同样是单总线设计的DS18B20,国产DHT11在编程思路上有一定相似性,但时序、移位等操作都不同,协议较前者简单。
用户主机(M C U)发送一次开始信号后,DHT11从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信采集。而操作DS18B20时,MCU初始化收到应答信号后,就可随时发个指令写或读,主机有更多主动权。按照官方产品手册提供的时序,编制程序如下:
主程序、1602显示驱动、其他功能等程序略去。 4.结论
本数字温湿度仪经试制、长时间运行,表现稳定,效果良好。在调试阶段,遇到并解决了一些问题,一个比较棘手的问题是,显示温度时偶尔会出现异常数字。经仔细分析发现,这是由于本仪表的多按键、多功能而采用的多个定时器,定时器产生的中断导致了DS18B20与MCU通信时序遭到破坏,造成传输的数据出错。本问题后来通过增加CRC8校验,对偶然出现的错误数据进行舍弃得到解决。
现阶段该温湿度仪只作为单独使用,在以后的升级型号中,可以加入数据存储功能(如24C02芯片记录峰值),以及多传感器总线方式,通过上位机监控各点温湿度等功能。