产品选型

51单片机dht11 基于AT89C51的温湿度监测系统

小编 2024-11-24 产品选型 23 0

基于AT89C51的温湿度监测系统

张东东

(苏州大学 电子信息学院,江苏 苏州 215006)

摘要 :在现代生产领域,温湿度的监测与控制应用广泛,对于监测技术的研究也越显重要。鉴于国内外温湿度测量技术的发展现状,基于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位微处理器,其内部包含下列几个部件[45]:一个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):7780.

[2] 薛玲,孙曼,张志会,等.基于单片机AT89S51的温湿度控制仪[J].化工自动化及仪表,2010, 37(7):6669.

[3] 张广军,黄俊钦,李行善,等.温度传感器现场动态校准方法与 实验研究[J].北京航空航天大学学报,1997,23(3):311315.

[4] 徐春河.浅谈AT89S51[J].制造业自动化,2010(12):8082.

[5] 吴汉清.常用的典型单片机资料[J].无线电,2007,18(11):7280.

[6] 张冬林,李鑫,戴梅,等.基于DHT11的低成本蚕室温湿度自动控制系统的设计[J].现代农业科技,2010(18):1415.

[7] 周鹏.基于STC89C52单片机的多功能测温仪设计[J].微型机与应用,2013,32(1):2629.

[8] 李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1999,16(3):6062.

[9] 梁振涛,樊泽明,任永亮,等.基于单片机的移动监控系统硬件设计[J].微型机与应用,2014,33(2):2527,30.

[10] 吴大中,宋俊飞.实验室智能监控系统设计[J].电子技术应用,2014,40(3):120122.

[11] 汤武辉.Proteus仿真软件与单片机实验教学[J].长江大学学报,2010,7(3):408409.

PROTEUS仿真DHT11模块

实现功能:Proteus软件仿真AT89C51单片机:实现定时读取DHT11温湿度,在LCD1602上显示,同时通过TTL通讯输出到串口,用串口助手接收显示温湿度。

一、需要的软件Keil 4、VSPD(虚拟串口)、串口助手、Proteus。

二、Proteus中需要的元件:AT89C51、LM016M、COMPIM、CAP、RES、DHT11、MAX232等

三、运行结果截图:

运行截图

四、电气原理图(图中未设计晶振及复位电路):

电气原理图

五、模块化编程

看到的很多例程都是将所有函数、中断、main函数集中在一个.c文件中。对于一个简单的点灯程序来说没有问题,如涉及模块较多或者需要多人合作完成的项目,代码集中在一个文件中将会造成很大的麻烦,不利于多人合作及软件的调试。本项目规划将软件分5个模块实现,分别是LCD1602、DELAY、DHT11、SERIAL、TIME,由不同的人完成不同的功能,最终集中到mian函数中调用,完成本项目。其中LCD1602模块实现显示功能;DELAY模块实现延时功能;DHT11模块实现数据采集功能;SERIAL模块实现串口通讯功能;TIME模块实现时间中断功能。模块具体的实现及涉及的知识点下一篇详细介绍。

相关问答

除了 51单片机 还有什么控制类芯片-ZOL问答

温度用DS18B20,精度高一些用AD590,湿度用DHT11或SHT11。你好!是仿真还是有开发板?原理图有了吗?有好多8脚的单片机的DS18B20

猜你喜欢