基于单片机的温湿度报警器设计.docx
《基于单片机的温湿度报警器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温湿度报警器设计.docx(43页珍藏版)》请在冰豆网上搜索。
![基于单片机的温湿度报警器设计.docx](https://file1.bdocx.com/fileroot1/2023-6/24/1f6803de-21f5-4241-bbfa-2a1ee4a30e80/1f6803de-21f5-4241-bbfa-2a1ee4a30e801.gif)
基于单片机的温湿度报警器设计
基于单片机的温湿度监控报警
系统设计
作者姓名:
伍帅
专业名称:
电气工程及其自动化
指导老师:
许丽讲师
摘要
温度、湿度和人类的生产、生活有着密切的关系,尤其是在医学、电子电力、航天航空、食品发酵,农业生产等领域中对温湿度的要求尤其严格,是最常见最基本的参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的实时检测与控制。
并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。
而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。
使用STC89C52单片机设计温湿度监控报警系统,可以即时精确的反应温室内外的温度以及湿度的变化。
完成诸如升温到特定的温度、降温到特定的温度。
在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。
将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。
对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。
本系统可以及时、精确的反映室内外的温度以及湿度的变化,能够满足温湿度的控制要求。
关键词:
温湿度监控STC89S52
Abstract
Temperature,humidityandhascloserelationwiththehumanproductionandliving,especiallyinmedicine,electronics,electricpower,aerospace,foodfermentation,therequirementsfortemperatureandhumidityinareassuchasagriculturalproductionisparticularlystrict,isthemostcommonisthemostbasicparameters,suchasmachinery,electronics,petroleum,chemicalindustryetcwidelyneededinreal-timedetectionandcontroloftemperature,humidity.Andaspeoplelivingstandardrise,peoplefortheirownsurvivalenvironmentmoreandmoreattention.Andthebody'scomfortlevelwiththechangeoftemperatureandhumidityintheairandmoodhasadirecteffect,sothedetectionandcontrolofthetemperaturehumidityisverynecessary.
UsingaSTC89C52single-chipmicrocomputertemperatureandhumiditymonitoringalarmsystem,canreal-timeaccuratereactioninsideandoutsidethegreenhousetemperatureandhumiditychanges.Finishsuchasheatinguptoaspecifictemperatureandcoolingtoaspecifictemperature.Inupperandlowertemperaturerangeconstanttemperaturecontrolofavarietyofways,sointermsofhumiditycontrol.Willnodoubtofthissystemisappliedtothegreenhouseforvegetationgrowthprovideamorecomfortableenvironment.Forgreenhousesplantingandflowerbeds,flowercultivation,mustbeinstalledinsomespecificenvironmenttomonitorthetemperatureandhumiditydevices.Thissystemcantimelyandaccuratelyreflectthechangeofindoorandoutdoortemperatureandhumidity,cansatisfytherequirementofthetemperatureandhumiditycontrol.
Keywords:
Temperatureandhumidity,monitoring,STC89S52
1总体设计概述
1.1系统的主要功能
本系统以单片机最小系统为核心,将温湿度通过LCD1602显示器实时的显示出来,温湿度最高值可以任意设置并实时显示出来。
(湿度测量范围:
20-95%RH。
温度测量范围:
0-50℃)。
各部分主要功能是:
1.温湿度实时检测及显示。
通过LCD1602实时地显示传感器DHT11检测到的温湿度值,并且固定时间(5s)检测更新显示一次。
2.阈值设置,通过四个按键实现。
在使用过程中不需要在程序中更改。
使得系统更加人性化、智能化,具有更高的实用价值。
3.当温湿度超出阈值时能自动报警。
此时对应发光二极管的点亮,蜂鸣器发出声音实现报警,以提醒用户做出相应的改进措施。
通过干燥器、降温风扇等设备工作。
使温湿度回到设定值内,报警自动解除。
1.2系统的工作原理
本系统的工作原理:
系统主要涉及了温湿度的测量、显示以及实现简单控制。
硬件方面有五个模块,即STC89C52单片机主控模块、DHT11温湿度传感器模块、LCD1602液晶显示模块、报警模块以及阈值设置模块等。
其中主控模块以单片机最小系统为基础,适当增加驱动电路。
1.传感器模块使用的是DHT11数字温湿度传感器。
通过DHT11检测出当前环境下的温湿度,将所测数据交给STC89C52单片机进行分析和处理,并分别存入不同数组以便显示时候用。
其中,为了显示稳定,本系统每间隔5s采集一次数据送入单片机。
2.1602液晶显示模块就是实现温湿度检测值和阈值的显示。
其分两行显示,上边一行显示温度值,下边显示湿度值,两行的末尾两位是阈值显示位,正常工作的时候可以通过阈值设置模块实时调节需要的阈值,实时显示出来,构建了自动化的人机交互。
3.报警模块实现了检测值超过阈值的时候发光二极管点亮,蜂鸣器鸣响报警。
本系统采用的是有源蜂鸣器,因此无论温度还是湿度超出范围蜂鸣器都是以相同频率的声音进行报警提示。
提醒工作人员此时温度湿度数据出现异常、需及时调整室内温湿度。
4.阈值设置模块通过四个按键实现温湿度报警阈值的设置。
按一次按键温度、湿度对应值加一或者减一。
使得温湿度阈值设置提供了极大的方便,不需要每次都在程序里改动然后再烧录,省去了复杂的过程。
实现自动化,便于用于工业,农业等对温湿度要求较高的场所。
1.3总体设计
1.3.1总体设计框图
按照系统功能的具体要求,在保证实现其功能的基础上,尽可能降低系统成本。
总体设计方案围绕上述思想,初步确定系统的方案如图1.1所示。
图1.1系统总体设计框图
从图中可以看出,系统有STC89C52单片机模块、DHT11传感器模块、阈值设置模块、1602字符液晶显示模块、报警模块、数据存储模块等组成。
在方案设计中,外围模块采用并行控制,以简化系统,提高控制精度。
该设计以STC89C52单片机为控制核心,实现温湿度采集、显示、报警。
1.3.2总体设计工作流程
本次设计有两个部分是重点。
一个是液晶显示部分,一个是DHT11传感器部分。
难点是软件程序的编写和系统的整体调试。
整个流程如图1.2所示:
图1.2整体设计流程图
2系统硬件设计
2.1主控模块设计
2.1.1STC89C52概述
STC89C52单片机是宏晶科技推出的新一代高速,低功耗,超强抗干扰的单片机,指令代码完全兼容传统8051单片机。
主要特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
2.工作电压:
5.5V~3.3V。
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
4.用户应用程序空间为8K字节。
5.片上集成512字节RAM。
6.通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。
8.具有EEPROM功能。
9.具有看门狗功能。
10.共3个16位定时器/计数器。
即定时器T0、T1、T2。
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。
12.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
STC89C52单片机的工作模式
1.掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。
2.空闲模式:
典型功耗2mA。
3.正常工作模式:
典型功耗4Ma~7mA。
图2.1STC89C52引脚图
STC89C52引脚功能说明
1.VCC(40引脚):
电源电压。
2.VSS(20引脚):
接地。
3.P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻,一般为10kΩ。
4.P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
)。
此外,P1.0和P1.1还可以作为定时器/计数2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。
5.P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(
)。
6.P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(
)。
P3口除作为一般I/O口外,还有其他一些复用功能。
7.RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。
8.ALE/
(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也用作编程输入脉冲。
9.
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当STC89C52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
10.
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
注意加密方式1时,
将内部锁定位RESET。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
11.XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
12.XTAL2(18引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
2.1.2时钟电路与复位电路
单片机需要外加时钟电路为内部程序提供时序。
单片机内部具有一个构成振荡器的高增益反相放大器,此放大器的输入与输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路。
本系统的时钟电路如图2.2所示。
图2.2单片机的外部时钟电路
在图2.2中电容的大小均为30pF,晶振的大小为11.059MHz。
为了保证单片机的可控运行,需要给单片机加复位电路,一般情况下,单片机的复位电路有以下几项功能:
1.上电复位可对内部寄存器进行复位,否则寄存器状态未知。
2.同步内、外部时钟信号。
防止频率不稳及晶振停振。
3.有些高级芯片,不先复位根本部工作。
4.有复位引脚的芯片必须加复位,这是电子设计的基本要求。
5.在电路上电时候或电压波动不稳定的时候,当给单片机上电那一瞬间,电压有在几微秒内(有的是几毫秒内)不是直接跳变到5V的而是一个直线上升的阶段,这时候,单片机不能正常工作,需要复位电路给它延时以等到电压稳定。
6.由于单片机在工作过程中可能会受到各种干扰因素,所以不排除单片机出错的可能,当单片机的程序“跑飞”时可以通过复位电路是单片机恢复正常的运行状态。
单片机的复位电路主要有以下几种方式:
上电复位方式、外部脉冲复位方式、上电+按钮复位方式以及软件复位等。
本系统为了实现方便,使用硬件复位方式,即采用自动电平复位的方式,见图2.3所示。
图2.3单片机自动电平复位电路
图2.3的复位电路直接接单片机得RST管脚,为单片机提供复位电平,图中电容为10uF,电阻为10K。
本设计各个输入输出点及功能说明:
本设计以STC89C52单片机最小系统为核心。
供电电源由USB接口或者干电池供电。
将P0口作为与液晶的数据传输口。
P1.5、P1.6作为发光二极管接口,以控制报警模块工作。
P1.7作为与传感器DHT11通信的数据口,P3口作为阈值模块中四个按键的接口,P2.5、P2.7作为分别于液晶的RS、R/W和E端相连接,以控制液晶显示,P2.0接蜂鸣器控制端,以控制报警模块工作。
2.2电源模块设计
本设计由于经济等条件限制,没能单独设计制作直流5V电源,暂用USB供电或者使用三节5号干电池代替,在实际应用场合中,需加入此部分,可直接购买市电220V转直流5V开关电源,以保证系统长时间工作。
2.3DHT11传感器模块设计
2.3.1DHT11传感器
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
DHT11传感器引脚图如下2.4所示:
图2.4DHT11传感器引脚图
1.引脚介绍:
Pin1:
(VCC),电源引脚,供电电压为3~5.5V。
Pin2:
(DATA),串行数据,单总线。
Pin3:
(NC),空脚,请悬浮。
Pin4:
(VDD),接地端,电源负极。
2.接口说明:
由传感器资料知连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
考虑本设计实际应用情况故使用5K上拉电阻。
图2.5DHT11典型应用电路
3.数据帧的描述:
DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。
操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:
8bit湿度整数数据+8bit湿度小数数据。
+8bit温度整数数据+8bit温度小数数据。
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
4.电气特性:
VDD=5V,T=25℃,除非特殊标注。
表2.1DHT11的电气特性
参数
条件
Min
typ
max
单位
供电
DC
3
5
5.5
V
供电电流
测量
0.5
-
2.5
mA
平均
0.2
-
1
mA
待机
100
-
150
uA
采样周期
秒
1
-
-
次
注:
采样周期间隔不得低于1秒钟。
2.3.2DHT11传感器模块电路设计
DHT11传感器连接单片机相对比较简单。
单片机的P2.0口用来发收串行数据,即数据口。
连接传感器的Pin2(单总线,串行数据)。
由于测量范围电路小于20米,加一个5K的上拉电阻,因此在传感器的Pin2口与电源之间连接一个5K电阻。
而传感器的电源端口Pin1和Pin4分别接单片机的VDD和GND端。
传感器的第三脚悬浮放置。
DHT11传感器原件的电路原理图如下2.6所示:
图2.6DHT11电路原理图
2.41602液晶显示模块设计
2.4.11602液晶显示屏
1602液晶是一种工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)。
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
本设计使用LCD1602液晶显示器。
它有以下几个优点:
1.显示质量高:
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像数码显示器那样需要不断刷新亮点。
因此,液晶显示器画质高且不会闪烁。
2.数字式接口:
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
3.体积小、重量轻:
液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
4.功耗低:
液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
2.4.21602液晶显示屏参数
1.1602的基本参数及引脚功能:
(1)1602LCD主要技术参数:
显示容量:
16×2个字符。
芯片工作电压:
4.5—5.5V。
工作电流:
2.0mA(5.0V)。
模块最佳工作电压:
5.0V。
字符尺寸:
2.95×4.35(W×H)mm。
(2)引脚功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2.2所示:
表2.2引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
2.1602的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.7是1602的内部显示地址。
图2.71602LCD内部显示地址
2.4.31602液晶显示模块电路设计
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
其中Vo脚,即第三引脚加了一个10K的滑动变阻器,该变阻器的目的是调节液晶的显示对比度,通过调节滑阻改变Vo的电压值,从而使液晶显示在最清晰的状态。
图2.81602显示模块原理图
2.5阈值设置模块设计
从图2.9可以看到。
从上到下依次设为K2、K5、K6、K7四个按键,其连接单片机引脚分别是P1.2、P3.3、P3.4、P3.5四个引脚。
根据该模块使得阈值设置分为两个模块,分别是湿度最高值设置模式、温度最高值设置模式。
例如湿度最高值设置,按一次K6湿度最高值加一,按一次K7湿度最高值减一,1602液晶显示将实时显示出设置值。
其他值设置类似。
按键阈值设置模块部分,设置非常人性化,而不用每次设置阈值都到程序里边去设置后再烧制进单片机,实现了自动化。
图2.9阈值设置模块原理图
2.6报警模块设计
2.6.1蜂鸣器报警模块设计
图2.10蜂鸣器报警模块原理图
系统在设计时候采用的是有源蜂鸣器,只要给蜂鸣器一定的电流值,蜂鸣器就可以按照一定的频率发声,但是单片机引脚的驱动电流比较小,不足以驱动蜂鸣器工作,因此采用了一个PNP的三极管S9012来驱动。
当单片机P2.0输出一个低电平时,蜂鸣器响,实现报警。
2.6.2发光二极管报警模块设计
此部分利用发光二极管的点亮来实现报警,当单片机P