产品概述

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

小编 2024-10-07 产品概述 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.

实验室温湿度测量系统设计

摘 要 : 针对当前实验室无法实现温湿度数据实时测量、数据传递不方便等缺点,以数字式温湿度传感器和通用单片机为基础,开发了实验室温湿度测量系统。该系统以AT89S52单片机为主芯片,数字式温湿度传感器SHT21为主要传感器,完成了测量系统硬件系统和软件系统的开发,并且设计了能够传递给上位机数据的通信程序。该系统可以实现温湿度测量,并且可以传递相关数据给上位机,对于实验室数据监测有着积极的作用。

0 引言

温湿度是重要的环境参数[1-3],特别是对于实验室环境,温湿度需要出现在许多的检测报告中。而目前实验室常用的是湿度计和温度表,基本原理是采用水银温度湿度计进行检测,缺点是在需要记录数据的时候要先读取相关数据,非常不方便;同时还无法实现温湿度的实时测量。

目前应用较为广泛的温湿度传感器主要是热电偶[4-5]、热电阻[6-8]及湿度等模拟传感器,该类型的传感器输出为模拟信号。为了能够测量该数据需要进行模数转换,在使用过程中较为繁琐。而数字温湿度传感器将温湿度信息直接用数字量输出,能够直接输出给测量系统,因此数字式温湿度传感器在温湿度监测中应用更为方便[9]。

为此,拟以成本较低的AT89S52单片机为控制芯片[10]、以低功耗的新型数字式SHT21作为测量温度、湿度的传感器[11]和FYD12864液晶模块[12],开发用于实验室的温湿度显示及报警系统。

1 控制系统总体结构

整个控制系统包括传感器、微处理器、显示模块和电源模块,如图1所示。其中,传感器为SHT21温湿度传感器,该传感器除了配有电容式相对湿度传感器和能隙温度传感器外,还包含一个放大器、A/D转换器、OTP内存和数字处理单元,能够非常方便地测量温度和湿度信号[9];ECU是整个控制系统的核心,选用ATMEL公司的8位单片机AT89S52,能够接受输入信号和输出控制信号,同时还包含与上位机的接口,用于程序下载和数据通信;显示模块采用FYD12864液晶模块,用于显示温度和湿度值;报警模块采用蜂鸣器,如果当前温度或者湿度大于设定值就会发出报警;通信模块用于与采集系统进行通信,该通信采用串口通信,用于把温湿度信息传递给采集系统。

2 控制系统硬件设计

2.1 温湿度信号处理

温湿度传感器SHT21的管脚定义如表1所示,该传感器的供电范围为2.1~3.6 V,推荐电压为3.0 V,为了保证传感器的正常运行,在电源(VDD)和接地(VSS)之间须连接一个0.1 μF的电容,且电容的位置应尽可能靠近传感器。SCL用于微处理器与传感器之间的通信同步,SDA引脚用于传感器的数据输入和输出,当向传感器发送命令时,SDA在串行时钟(SCL)的上升沿有效,在SCL下降沿之后,SDA值可被改变;当从传感器读取数据时,SDA在SCL变低以后有效,且维持到下一个SCL的下降沿。为避免信号冲突,通常在SDA端口需要一个外部的上拉电阻(如10 kΩ)将信号提拉至高电平。

在本电路图中,VSS接地,VDD接电源+3 V,NC保持不连接,SDA接单片机P1.6口,SCL接单片机P1.7口,并接两个上拉电阻R3,R4,其大小都为10 kΩ,在VDD与VSS之间接一个0.1 μF的去耦电容,其连接电路图如图2所示。

2.2 报警电路

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于各种电子产品中作为发声器件。而在单片机应用的设计上,大部分都会使用蜂鸣器来作提示或报警,为此本设计中也采用蜂鸣器作为报警提示。蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。本设计采用如图3所示的电路驱动蜂鸣器,R5阻值为2 kΩ,蜂鸣器驱动电路与单片机的P3.3口连接;蜂鸣器的额电流小于等于30 mA,对于AT89S51单片机来说,P3.3口的灌电流是15 mA,很明显可以看出仅仅依靠P3.3口的电流是驱动不了该蜂鸣器的,这就需要使用晶体管放大电路,所以本设计选用PNP型晶体管。

当外部的温度或者湿度超过设定的阈值时,基极变为低电平,蜂鸣器导通发出报警。

2.3 显示电路

本设计中所采用的FYD12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,具有8位标准数据总线、6条控制线及电源线。为了能够实现对该模块的控制,采用P0和P2口控制,由于51单片机P0口没有内部上拉电阻,为此需要外部增加上拉电阻,本设计增加的外部上拉电阻为10 kΩ;对于FYD12864液晶显示模块来说,第三引脚VO是对比度电位引脚,本设计中采用10 kΩ的可变电阻来实现对比电压的调整,如图4所示。

2.4 通信模块

由于单片机输出是TTL电平,而PC输出是-12 V~ +12 V电平,所以需要一个MAX232串口通信模块芯片构成电平转换电路,实现通信时电平信号的匹配,其连接电路如图5所示,其中C1-和C2-表示连接点,分别连接电容的一端。

2.5 电源模块

本设计中的大部分电路都需用5 V的电压,而温湿度传感器需要用3 V电压,为了能够同时满足两者的需求,本设计采用三端稳压集成电路LM7805。其电路图如图6所示,在输出5 V电压的基础上,通过增加3个1N4007使输出的电压变为2.9 V,能够为温湿度传感器供电。

2.6 单片机最小系统

单片机最小系统由单片机、复位电路和时钟电路构成,如图7所示。所选用的8位单片机AT89C52具有8 KB的可编程Flash、256 B的RAM、32个I/O口、5个中断源、2个16位定时器,完全满足控制需求;复位电路采用上电复位方式;时钟电路晶振11.059 2 MHz,完全满足系统的要求。

3 控制系统软件设计

3.1主程序流程图

主程序主要完成硬件的初始化、子程序的调用等功能。在主程序中,首先进行SHT21和FYD12864的初始化,然后调用温湿度采集子程序,接着调用温湿度处理子程序,读取成功后,将读取成功的温湿度数据与所设定的数据相比较,如果超过所设定的温湿度数据,蜂鸣器导通鸣叫,起到报警作用,如果没有超过所设定的温湿度数据,就会直接在FYD12864显示器上显示出来。之后判断是否需要向上位机传递数据,如果需要传递则调用相应的子程序;如果不需要则重复采集温度和湿度数值,进行循环。其流程图如图8所示。

3.2 串口通信

为便于后续数据的分析及处理,编写了串口通信程序,使用RS232串口,将单片机采集到的数据上传到上位机。

上位机和下位机通信分为上位机串口初始化和下位机串口初始化,其中上位机串口初始化程序如下:

Private Sub Form_Load

MSComm1.CommPort=1//使用Com1口

MSComm1.Settings="9600,n,8,1"

//设置通信参数,波特率9 600,无校验位,发送8位,1个停止位

′MSComm1.PortOpen=True//开串口

End Sub

下位机串口初始化程序如下:

/********串口初始化函数**********/

void Serial_Init(void)//串口通信初始设定

{

SCON=0x50;//UART为模式1,8位数据,允许接收

TMOD=0x20;//定时器1为模式2,8位自动重装

PCON=0x00;//波特率9 600

TH1=0xfd; //定时器赋初值

TL1=0xfd;

TR1=1;//启动定时器TH1

ES=1;//允许串口中断

EA=1;//开中断总开关

}

在实际工程中,下位机根据上位机发送的不同数据请求分别发送相应的数据,下位机数据发送程序如下:

/********串口接收中断函数**********/

void Serial_Recieve_Inter interrupt 4 using 3

{

if(RI)

{

RI=0;

if(SBUF==0) //收到发送温度数据请求

{

AT24C64_RD(0xa1,AT24C64_Inter_Address_Read_Temp);

AT24C64_Inter_Address_Read_Temp++;

//读温度地址加1

SBUF=Temp_Val;//向串口发送温度数据

while(TI==0);//等待发送,直到8位数据发送完毕

TI=0; //TI清零

}

if(SBUF==1) //收到发送湿度数据请求

{

AT24C64_RD(0xa3,AT24C64_Inter_Address_Read_Pres);

AT24C64_Inter_Address_Read_Pres++;//读湿度地址加1

if(SBUF==3) //收到发送操作数据请求

AT24C64_Inter_Address_Read_Pres++;//读操作地址加1

SBUF=Proc_Val;//向串口发送操作数据

while(TI==0);//等待发送,直到8位数据发送完毕

TI=0;//TI清零

上位机界面采用VB6.0编写,添加其自带的MSComm控件,可以很方便地实现串口通信。上位机采集到的数据以*.text格式存储,便于其他软件的调用分析。

4 实物图

为了对所设计的温湿度监控系统进行测试,利用普通万用板进行制作,其实物如图9所示。此时,显示模块、单片机最小系统和串口通信模块分开布局,便于各自调试。

经过实际调试,该系统可以正常显示温湿度数据,同时也可以利用自编的上位机程序读取相关数据。

5 结论

本文介绍了实验室温湿度测量系统的设计过程,分别从控制系统的总体结构、硬件系统和软件系统进行了介绍,并且利用万用板实现了该系统。该系统结构简单、应用方便,对于实验室温湿度检测有着积极作用。

参考文献

[1] 范满红,马胜前,陈彦,等.基于多传感器数据融合的温湿度监测系统[J].压电与声光,2012,34(3):459-462,465.

[2] 钟晓伟,宋蛰存.基于单片机的实验室温湿度控制系统设计[J].林业机械与木工设备,2010,38(1):39-42.

[3] 刘明波,顾夏华,周琳琦.基于FPGA的远程温湿度监测系统设计与实现[J].计算机测量与控制,2011,19(11):2619-2622.

[4] 刘庆赟,焦斌亮,刘永富.仓库温湿度监测与nRF905无线传输系统的设计[J].传感器与微系统,2011,30(5):101-103.

[5] 刘希明.热电偶线性温度测量装置[J].仪器仪表学报,2007(S1):53-59.

[6] 许卓,杨雷,何志伟.多通道热电阻精密测量中温度漂移的补偿法[J].化工自动化及仪表,2011,38(8):32-36.

[7] 才智,范长胜,杨冬霞.PT100铂热电阻温度测量系统的设计[J].现代电子技术,2008,31(20):172-174,177.

[8] 谭长森.基于PT100型铂热电阻的测温装置设计[J].工矿自动化,2012,38(3):89-91.

[9] 刘洋,金太东.基于CAN总线的智能型温湿度采集系统设计[J].现代电子技术,2010,33(1):126-128.

[10] 迟钦河,赵仲生,乔桂芳,等.89C51单片机在多通道数据采集系统中的应用[J].自动化仪表,2000,21(6):33-35,39.

[11] 鲍爱达,张庆志,郭涛,等.基于FPGA和SHT21传感器的温湿度测量系统的设计[J].计算机测量与控制,2012,20(11):2885-2887.

[12] 范春辉,何广平.DAC7714和中文液晶模块与单片机的接口设计[J].电测与仪表,2005,42(12):62-64,61.

相关问答

我现在有一个基于51 单片机 控制的 温湿度 检测程序,怎么将 温湿 ...

先编写51单片机的串口发送程序,在编写上位机的接收程序,用MSCOMM空间接受解决了吗我可以帮你你先要给单片机烧录相关的程序才行3条回答:【推荐答案】先编写...

51 单片机 室内 湿度 检测系统所需元器件?

51学片机如果要实现室内湿度检测所需元件分成三个部分,一,控制系统是围挠着单片机的外设的电子元器件,如直流电源,AD转换,DA转换,显示简单的数码管,高端些...

如何把 单片机 采集到 温湿度 上传到redis数据库?

单片机通过以太网接口或WifI接口通过tcP或udP协议上传数据给服务器。单片机通过以太网接口或WifI接口通过tcP或udP协议上传数据给服务器。

想做一个 温湿度 控制器,可以液晶显示 温湿度 ,可以通过键盘设定 温湿度 ,超过设定会声光报警,电路原理图有什么建议?

矿山电气小东,分享电气知识。温湿控制在很多的行业有得到了应用,如混凝土养护箱、配电箱柜除湿、蔬菜大棚、养殖厂、仓库存储等。温湿检测可分为检测显示和检...

湿度 检测仪多少钱?

[回答]电容传感器湿度传感器是湿度传感器中常见的一种仪器设备,它是以高分子材料湿度湿敏电力电容器为基础感湿元器件,运用单片机设计对测量結果开展剖析...

温湿度 监测仪的用途?

湿度传感器测量的种类更为普遍,依据测量的指标值开展区别,湿度传感器能够分成相对湿度、肯定湿度与漏点这三种。。苏盈传感器专营是一家集生产,研发...

单片机 如何处理信号?

你所谓的信号时数字信号还是模拟信号啊,一般的单片机处理的都是模拟信号吧,比如温度、湿度、压力什么的,这些东西一般都有把模拟信号转换成数字信号的传感器,...

51 单片机 的应用方向?

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用...单片...

温湿度 监测仪的用途?

[回答]传感“漏点”的湿度感测器则应用在轿车的全自动防雾水、空调通风设备内的避免起霜系统软件。感应器是智能产品、物联网技术甚至人工智能技术等行业...

单片机 、光耦

1系统总体结构原理粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么...

猜你喜欢