基于AT89s52和SHT11传感器的温湿度测量系统设计
,单片机可暂时停止发送时钟序列以进入空闲模式,准备读取测量数据。SHT11在转换结束后,将DATA置为低电平,单片机继续发出时钟序列,来读取2 个8 bit的测量数据和1个8 bit的CRC奇偶校验。所有数据从MSB开始,右值有效。其中,在每个字节传输结束后,均需要发出一个时钟高电子ACK,并将DATA置为低电平,以确认读取成功。在测量和传输结束后,SHT11自动转入休眠模式。
3.2键盘设定算法程序设计
键盘采用K1、K2、K3、 K4,4个非自锁开关设计,当开关按下后会给单片机相应I/O口一个高电平。键盘主要实现对显示界面的切换、温湿度报警上下限设定及时间设定3大功能。这 4个开关的功能为:K1为界面切换键;K2为逻辑“+”,上翻页,光标上移;K3为逻辑“-”,下翻页,光标下移;K4选择键。
![](../img/eep/emb/emb-47645sger3zzmm0s.jpg)
图7 SHT11 传感器工作时序图
3.3液晶显示程序设计
液晶显示模块的编程方式主要由该模块使用的控制/驱动器所决定。设计采用ST7920汉字液晶控制/驱动器,其拥有8位并行微控制器接口,通过单片机编程,并使用了显示字母、数字符号和中文字型的功能。另外,对于液晶屏的编程,一般只需向其中写数据即可。显示程序设计流程如图9所示。
![](../img/eep/emb/emb-47646zqrnxl5pasc.jpg)
图8 SHT11测量操作流程图
![](../img/eep/emb/emb-47647e5mdy0wm34t.jpg)
图9 液晶模块操作程序流程图
3.4报警程序设计
温湿度越限报警功能通过报警函数实现,当温湿度高于设定的报警上限或低于设定的报警下限时,便会在单片机的P2.1管脚输出高电平,并通过三极管放大电路驱动蜂鸣器报警。
在报警函数中,通过算法比较温湿度显示的限值和湿度设定限值的大小来判断当前湿度是否越限。而温度与湿度的比较类似,仅是算法上仍需对综合温度的正负值进行考虑。
3.5 DS1302时钟程序设计
DS1302 时钟芯片在系统中起计时及时间显示、设定的功能。DS1302的读写操作时序如图10所示,在控制指令字输入后的下一个SCLK时钟上升沿时,数据被写入 DS1302,数据输入从低位即位0开始。同样,在紧跟8位控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据。
![](../img/eep/emb/emb-47648341i4peec55.jpg)
图10 DS1032的读写时序图
3.6主函数程序设计
主函数程序将上述各功能单元子函数程序综合到一个函数中循环运行,其流程如图11所示。
![](../img/eep/emb/emb-47649klad2yi24zb.jpg)
图11 主函数程序流程图
4结束语
SHT11 作为新一代高性能智能传感器,具有较高的应用前景。本文所设计的智能电子温湿度测量系统,经实验验证可对温度和相对湿度进行精确测量,并实时显示测量结果,此外,该装置还具有时间显示、历史温湿度数据查询、温湿度上下限越限报警和相关显示切换及设定等功能。该装置成果具有体积小、测量精度高、测量速度快、范围广、使用操作方便、成本低以及功能强等优点,适用于家居、旅行、温室农业、食物储存、档案保管等多种应用场合,并具有较大的实际应用与经济利用价值。
- 一种基于DDS技术的信号发生器研究与实现(03-30)
- 基于AT89S52嵌入式系统智能机器人设计方案(11-28)
- 基于AT89S52单片机的温度监测系统的设计(01-10)
- 一种AT89S52的USB下载线设计(03-03)
- 基于AT89S52单片机技术详解、设计技巧、应用案例大全(03-22)
- 基于AT89S52单片机的超声波测距系统电路设计(07-24)