基于AT89s52和SHT11传感器的温湿度测量系统设计

时间:2014-08-28来源:网络

  编程主要涉及SHT11传感器的温湿度数据测量和采集、时间数据采集、液晶显示界面、键盘扫描设定及温湿度限值数据比较等读写程序与算法程序的编写。

  3.1温湿度测量程序设计

  SHT11 传感器的工作时序如图7所示,传感器工作时首先对数据传输进行初始化来启动SHT11测量时序,即在第一个SCK时钟高电平时,DA TA翻转为低电平,并在第二个SCK时钟高电平时,DATA翻转为高电平。SHT11测量命令包含3个地址位和5个命令位。单片机发布一组8 bit测量命令后,DATA在第8个SCK时钟的下降沿被置为低电平。再发送第9个SCK时钟作为命令确认,DA2TA在其下降沿后,恢复为高电平。同时,单片机可暂时停止发送时钟序列以进入空闲模式,准备读取测量数据。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选择键。

  

 

  图7 SHT11 传感器工作时序图

  3.3液晶显示程序设计

  液晶显示模块的编程方式主要由该模块使用的控制/驱动器所决定。设计采用ST7920汉字液晶控制/驱动器,其拥有8位并行微控制器接口,通过单片机编程,并使用了显示字母、数字符号和中文字型的功能。另外,对于液晶屏的编程,一般只需向其中写数据即可。显示程序设计流程如图9所示。

  

 

  图8 SHT11测量操作流程图

  

 

  图9 液晶模块操作程序流程图

  3.4报警程序设计

  温湿度越限报警功能通过报警函数实现,当温湿度高于设定的报警上限或低于设定的报警下限时,便会在单片机的P2.1管脚输出高电平,并通过三极管放大电路驱动蜂鸣器报警。

  在报警函数中,通过算法比较温湿度显示的限值和湿度设定限值的大小来判断当前湿度是否越限。而温度与湿度的比较类似,仅是算法上仍需对综合温度的正负值进行考虑。

  3.5 DS1302时钟程序设计

  DS1302 时钟芯片在系统中起计时及时间显示、设定的功能。DS1302的读写操作时序如图10所示,在控制指令字输入后的下一个SCLK时钟上升沿时,数据被写入 DS1302,数据输入从低位即位0开始。同样,在紧跟8位控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据。

  

 

  图10 DS1032的读写时序图

  3.6主函数程序设计

  主函数程序将上述各功能单元子函数程序综合到一个函数中循环运行,其流程如图11所示。

  

 

  图11 主函数程序流程图

  4结束语

  SHT11 作为新一代高性能智能传感器,具有较高的应用前景。本文所设计的智能电子温湿度测量系统,经实验验证可对温度和相对湿度进行精确测量,并实时显示测量结果,此外,该装置还具有时间显示、历史温湿度数据查询、温湿度上下限越限报警和相关显示切换及设定等功能。该装置成果具有体积小、测量精度高、测量速度快、范围广、使用操作方便、成本低以及功能强等优点,适用于家居、旅行、温室农业、食物储存、档案保管等多种应用场合,并具有较大的实际应用与经济利用价值。

1 2

关键词: AT89s52 SHT11 温湿度测量系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版