基于单片机的智能温湿度采集器 - 图文 联系客服

发布时间 : 星期日 文章基于单片机的智能温湿度采集器 - 图文更新完毕开始阅读2821a9f0afaad1f34693daef5ef7ba0d4b736d40

淮阴师范学院毕业设计

传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。例如,某次从DHT11读到的数据如图3-5所示: Byte4 00101101 整数 湿度 Byte3 00000000 小数 Byte2 00011100 整数 Byte1 00000000 小数 温度 Byte0 01001001 校验和 校验和 图3-5 某次读取到DHT11的数据 由以上数据就可得到湿度和温度的值,计算方法: 湿度=byte4.byte3=45.0(%RH) 温度=byte2.byte1=28.0(℃) 校验=byte4+byte3+byte2+byte1=73(=湿度+温度)(校验正确) 3.3 显示模块

3.3.1 LCD1602的介绍

1602液晶,也被称为1602字符液晶,它是一个专门用于显示数字、字母、符号等的点阵型液晶模块。它由若干个5X7或5X11等点阵字符位组成,每一个点阵字符位可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,因此它不能很好地显示图形(一个自定义的CGRAM,显示效果并不好)。1602LCD显示内容为16X2,可同时显示两行,每行16个字符。

图3-6 LCD1602实物图

LCD1602引脚说明: 第1脚:VSS接地。

第2脚:VDD接正极。

9

淮阴师范学院毕业设计

第3脚:VO是液晶显示器的对比度调整端。 第4脚:RS为寄存器选择。 第5脚:R/W为读写信号。 第6脚:E端为使能端。

第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。

3.3.2 显示模块电路设计

LCD1602采用的是动态显示方式,向LCD输入的数据为ASCII码,需要通过扫描依次送到LCD显示。

图3-7为LCD1602内部RAM显示缓冲区地址的映射图,00~0F、40~4F分别对应LCD1602的上下两行的每一个字符,只要往对应的RAM地址写入要显示字符的ASCII代码,就可以显示出来。

LCD 16字X2行 00 01 40 41 02 03 04 05 06 07 08 42 43 44 45 46 47 48 09 0A 0B 49 4A 4B 0C 0D 0E 0F 10 …… 27 4C 4D 4E 4F 50 …… 67 图3-7 1602内部显示地址

本次设计中,用AT89S52的P0端口作为数据线,分别连接显示器的D0-D7,P2.5、P2.6、P2.7分别连接显示器的RS、R/W、E端。其中V0引脚上加了一个10KΩ的滑动变阻器,这个变阻器是用来调节LCD1602的对比度的,通过调节滑动变阻器改变V0的电压值,从而使LCD1602显示在最清晰的状态,LCD1602与单片机的接口电路如图3-8所示。

10

淮阴师范学院毕业设计

图3-8 显示模块电路

3.4 按键模块

这个设计中,按键模块主要采用了四个键进行控制,S2为设置键,S3为增加键,S4为减少键,S5为确认键,分别连接到AT89S52的P3.2-P3.5,如图3-9所示。

其中,温度和湿度都可以设定上限和下限,第一次按S2键,就会出现温度上限的设置界面,按S3键可以设置上限温度的增加,按S4键可以设置上限温度的减少,再按S5键进行确认,就成功地设置了温度的上限。继续按S2键,就会出现温度下限的设置界面, 设置方法同温度上限的设置,湿度的上下限设置也是如此。这样,温度和湿度的上下限就可以确定了。

图3-9 按键模块电路

11

淮阴师范学院毕业设计

3.5 报警模块

本设计中,报警模块采用了LED灯进行报警,系统中共用了5个LED灯,D1为正常工作指示灯,D2为温度上限指示灯,D3为温度下限指示灯,D4为湿度上限指示灯,D5为湿度下限指示灯。D1-D5分别与单片机的P1.0-P1.5连接,单片机中的P1.1、P1.2脚分别为温度高于和低于上下限的控制脚,P1.3、P1.4脚分别为湿度高于和低于上下限的控制脚。系统正常工作的情况下,D1灯亮;如果所测温度高于温度上限的话,D2灯亮;如果所测温度低于温度下限的话,D3灯亮;如果所测湿度高于湿度上限的话,D4灯亮;如果所测湿度低于湿度下限的话,D5灯亮。

图3-10 报警模块电路

4 软件设计

软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。

4.1 主程序流程图

主程序的主要功能是负责读出并处理DHT11测量的温度和湿度值,并将温度及湿度值进行实时显示,并进行阈值报警。其框图如图4-1所示。

主程序中,先对温湿度传感器DHT11和LCD液晶显示器进行初始化设置,然后经过一定的延时之后,由DHT11采集环境的温湿度,然后将采集到的参数送到单片机进行处理再在LCD上显示出来,最后判断温湿度是否超过阈值,如果超过,就启动报警装置(即LED灯亮)。

12