【学习笔记】模拟设计(4):基于AT89C51的温湿度监测系统
2016年微型机与应用第06期
作者:张东东
摘要:在现代生产领域,温湿度的监测与控制应用广泛,对于监测技术的研究也越显重要。鉴于国内外温湿度测量技术的发展现状,基于AT89C51单片机和DHT11数字式温湿度传感器设计实现了一个温湿度监测系统。硬件电路包括微控制器模块、数据采集模块、显示电路、报警电路以及按键设置5个部分,用户可通过按键设定温湿度上下限,当测得的数据超出所设定的范围时发出报警信号(蜂鸣器蜂鸣)。软件部分由主程序和各部分子程序构成。系统精确度较好,在日常环境监测以及生产活动中都有一定的应用价值。
0引言
随着现代科技的发展与通信技术的进步,温湿度测量系统的整体性能及其优越性也取得了很大突破,对于温湿度传感器的应用和开发也越来越智能化。
国外很早就开始了对于温湿度测量技术的研究,且一些技术已趋于成熟,集成化的监测设计、传感器的应用、智能测试系统等技术早已研发出来并得以应用,这是国际传感器领域的重大突破。
目前,虽然国内外对于此技术的研究已较为成熟,但科技探索是永无止境的,未来生产领域必然会提出更高的要求,一种完全智能化甚至完全无人化的潮流正悄然兴起,这是不可避免的发展趋势[1]。
1设计任务及方案论证
1.1设计要求
基于微控制器的温湿度测量系统设计要求如下[2]:
(1)对所处环境的温湿度进行检测,要求温度检测范围为0℃~50℃,测温精度为±2℃; 湿度检测范围为20%~90%RH,测湿精度为±5%RH。
(2)能够通过按键设定阈值。
(3)当检测数据超出阈值蜂鸣报警。
(4)系统使用4位LCD显示。
1.2设计方案
对温湿度进行实时监测并LCD显示,可自主设定温湿度阈值,当传感器所测得数据超出设定范围,蜂鸣器报警。为达到本次设计的要求,系统需包含以下功能模块[3]:温湿度传感器模块、主控制模块、按键和显示模块、报警电路。系统原理框图如图1所示。
2硬件设计
2.1主控制模块
AT89C51是一种带4 KB移序存储器的低电压、高性能CMOS 8位微处理器,其内部包含下列几个部件[45]:一个8位CPU;一个片内振荡器及时钟电路;4 KB程序存储器,128 B数据存储器;两个定时器,也可用作计数功能;一个可编程全双工串行口;4个8位可编程并行I/O端口;5个中断源和两个优先级嵌套中断结构。
以上各部分通过内部总线相连接。另外,除了8位CPU外,MCS-51内部还有一个微处理器,它实际上是一个完整的一位字长的计算机。
AT89C51单片机引脚排列图如图2所示。
DHT11的DATA口与单片机AT89C51的P3.0口连接。LCD1602显示电路就是将各引脚依次与单片机的P0口相连,蜂鸣器超限蜂鸣。
2.2主要功能模块
2.2.1晶振与复位电路
XTAL1和XTAL2分别是单片机内用于构成振荡器的放大器的输入端和输出端。在XTAL1和XTAL2的引脚上接一个石英晶体和两个电容,便能使内部振荡器自激振荡。与石英晶体振荡器并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。石英晶振的电容可以在20~40 pF之间选择,本文选择22 pF。
单片机复位电路也是必不可少的部分。当程序执行出现问题时,复位操作使单片机的程序重新运行,复位操作至少要两个机器周期以上的高电平位于RST引脚。本设计采用的是上电复位。
2.2.2温湿度传感器电路
温湿度采集是完成环境与微处理器数据沟通的前端部分,采用DHT11来完成设计[6]。
(1)DATA单总线通信[7]
DATA接口用于数据通信,传送的数据由小数部分和整数部分组成。主机等待DHT11响应时,总线处于高电平状态,当传感器接收到开始信号时,就会发送一个响应信号,使总线处于低电平状态,信号长80 μs,如果读取高电平响应信号,但DHT11并无响应,则说明线路连接可能表1DHT11性能指标测量范围测量精度分辨力0℃~50℃,
20%~90%RH±2℃±5%RH1出现问题。
(2) DHT11各项性能指数如表1、表2、表3所示。
(3)DHT11典型应用如图3所示。
2.2.3报警电路
基于微型计算机所设计的控制系统中,通常都设定有紧急状态报警系统,以便采取应对措施。本次设计如果测值超出此设定范围则进行报警,即蜂鸣器持续鸣叫[8]。报警电路如图4所示。
2.2.4LCD显示电路
显示模块选用LCD1602液晶显示屏,它是目前工控系统中使用最广泛的液晶屏之一,显示质量高。1602字符型液晶模块是点阵型液晶,驱动方便,经过编程后显示内容多样化[9]。
LCD1602参数如表4、表5所示。表4LCD1602液晶屏的主要参数内容参数工作电压/V4.5~5.5容量/字符16×2最佳工作电压/V5工作电流/mA2.0字符尺寸/mm2.95×4.35表5LCD1602引脚定义引脚号符号引脚说明1VDD正极2VSS地3VL液晶显示偏压4RS数据/命令5R/W读/写6EN使能信号7~14D0~D7数据15BLA背光源正极16BLK背光源负极将LCD1602的7~14脚依次与单片机的P0端口相连。
3软件设计
3.1编程思想
本文设计的温湿度测量系统,其主要功能是对当前环境的温湿度进行实时监测,并在LCD1602上进行显示,当所测数据超出所设定的阈值范围时,蜂鸣器蜂鸣报警。软件设计:首先将LCD初始化,LCD1602采用5×7点阵并分两行显示,然后读取温湿度值进行处理和按键检测,判断数值是否超出预设范围,超出则蜂鸣器报警。第一次按键单片机复位,进入设定界面分别完成,3个设定按键设定数据切换、数据加、数据减等功能。
3.2软件流程图
本设计采用按键复位与阈值设置操作,第一个按键可切换至阈值设置界面,按2次键可选择设置参数;第二与第三个按键分别完成参量加减操作,按键检测软件流程如图5所示。
整个系统的软件设计流程图如图6所示,上电启动系统,蜂鸣器蜂鸣,图6软件设计流程图然后将LCD1602初始化,微控制器读取温湿度值,经检测后与预设值进行比较,若超出阈值范围,则蜂鸣器蜂鸣,并模拟启动控制设备,直至温湿度处于预设范围之内,若未超出,则温湿度值正常显示[10]。
4系统调试与测试结果
4.1仿真分析
Proteus仿真运行结果如图7所示[11]。
4.2测试结果
(1)在上电之后,电源指示灯工作,系统正常运行,图8为温湿度正常显示界面。
(2)第一次按下按键1,系统进入阈值设置界面,再次按下可选择要设置的参数,第二个与第三个按键分别执行参量加与减操作。
(3)若当前温湿度超出预设范围,报警指示灯亮,蜂鸣器持续鸣叫。
5结论
本设计是基于51单片机与DHT11的一个温湿度监测系统,是对实际生产应用系统的一个模拟,通过DHT11温湿度传感器与单片机完成实时监测,按键与LCD实现人机交互,可自主设置温湿度阈值,实时显示当前数据,并带有超限报警功能,在实际生产中,可以启动相应设备调整环境数据,实现安全生产。
通过实验仿真与系统实测,系统可以达到预期目标,这样的一个系统可以经过更加精准的优化改进投入到实际应用中。
参考文献
[1] 刘宝元,张玉虹,姜旭,等.基于单片机的温湿度监控系统设计[J].国外电子测量技术,2009,28(12):7780.
[2] 薛玲,孙曼,张志会,等.基于单片机AT89S51的温湿度控制仪[J].化工自动化及仪表,2010, 37(7):6669.
[3] 张广军,黄俊钦,李行善,等.温度传感器现场动态校准方法与 实验研究[J].北京航空航天大学学报,1997,23(3):311315.
[4] 徐春河.浅谈AT89S51[J].制造业自动化,2010(12):8082.
[5] 吴汉清.常用的典型单片机资料[J].无线电,2007,18(11):7280.
[6] 张冬林,李鑫,戴梅,等.基于DHT11的低成本蚕室温湿度自动控制系统的设计[J].现代农业科技,2010(18):1415.
[7] 周鹏.基于STC89C52单片机的多功能测温仪设计[J].微型机与应用,2013,32(1):2629.
[8] 李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1999,16(3):6062.
[9] 梁振涛,樊泽明,任永亮,等.基于单片机的移动监控系统硬件设计[J].微型机与应用,2014,33(2):2527,30.
[10] 吴大中,宋俊飞.实验室智能监控系统设计[J].电子技术应用,2014,40(3):120122.
[11] 汤武辉.Proteus仿真软件与单片机实验教学[J].长江大学学报,2010,7(3):408409.