基于51单片机的温湿度报警器.docx
- 文档编号:14465121
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:41
- 大小:685.25KB
基于51单片机的温湿度报警器.docx
《基于51单片机的温湿度报警器.docx》由会员分享,可在线阅读,更多相关《基于51单片机的温湿度报警器.docx(41页珍藏版)》请在冰点文库上搜索。
基于51单片机的温湿度报警器
引言
网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技术粮情检测属监控系统范畴,近年来,由于计算机技术、超大规模集成电路技术和的研究在软、硬件等方面都有了一定的进展。
早期粮情监测主要采用温度计测量法,它是将温度计放入特制的插杆中,根据经验插在粮堆的多个测温点,管理人员定期拔出读数,确定粮温的高、低,决定是否倒粮。
这种方法对储粮有一定的作用,但由于温度计精度、人工读数的人为因素等原因,温度检测不仅速度慢,而且精度低,抽样不彻底,局部粮温过高不易被及时发现,导致因局部粮食发霉变质引起大面积坏粮的情况时有发生。
随着科技的发展,从1978年开始,采用电阻式温度传感器、采样器、模数转换器、报警器等组成的储粮监测系统出现,它可对各粮库的各个测温点进行巡回检测,检测速度、精度大大提高,降低了劳动强度,但由于电阻传感器的灵敏度低,致检测精度、系统可靠性还不够理想。
至1990年,粮情检测系统有了很大的改善和提高,系统在布线上采用矩阵式布线技术,简化了数据采集部分的线路,在传感器方面应用了半导体、热电偶等器件;在线路传输上采用了串行传输方式,从而减少了传输线根数;采用单板机进行数据处理,并采用各种手段提高数据传输及检测速度,通过软硬件技术的结合,检测精度和可靠性较前有很大提高。
但温度传感器的线性度差,系统的检测精度仍不理想,无法大面积推广。
近年来,随着单片机功能的日益强大和计算机的广泛应用,粮情检测的准确性、稳定性要求越来越高。
寻找最佳配置和最好的性价比成为粮情监测研究的热点国外在粮情监控技术上已达到了很成熟的地步,高科技数字式传感器广泛应用于粮情检测系统。
这种传感器采用了半导体集成电路与微控制器最新技术,在一个管芯上集成了半导体温度检测芯片、数据信号转换芯片、计算机接口芯片,转换、温度补偿等功能。
由于数字温度传感器直接传出数字量,从而解决了温度信号长距离传输问题及传输过程中因干扰和衰减而导致的精度降低等问题。
目前,国内出现了丰富的数字传感器配套产品,如远程控制模块、中继器、接插器、分线器等,技术也比较成熟。
数字传感技术、通信技术、计算机成为当今信息技术的的三大基础,计算机监控技术已成人们关注的热点。
1项目说明
防潮、防霉、防腐、防爆是粮库日常工作的重要内容,是衡量粮库管理质量的重要指标。
它直接影响到储备物资的寿命和工作可靠性。
为保证日常工作的顺利进行,首要问题是加强仓库内温度的监测工作,因为温度的升高,就意味着粮库内的有氧呼吸的加强,就意味着马上就要发生腐烂霉变。
因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。
1.1设计目标
设计一个基于51单片机的温度湿度报警器,实现运行参数设置和显示功能,通过485总线方式和上位机通信。
设计要求:
(1)掌握温度报警器的工作原理和设计方法;
(2)掌握51系列单片机编程;
(3)掌握485总线通信机理;
(4)学会Protell99SE画图工具;
1.2研究内容和研究方法
(1)根据系统功能要求并且考虑系统的实用性和可操作性,进行系统的整体方案设计。
该方案采用模块化设计方法,以方便系统调试和用户的使用。
(2)系统硬件设计。
主要内容包括芯片的选择、芯片的功能介绍、芯片外围电路的设计等。
(3)系统软件设计。
主要包括系统主程序,记数程序,采样子程序,读显示子程序,写显示RAM子程序,报警子程序。
本设计以实用为出发点,力求设计原理简单,开发成本低,易于实现。
器件选择上,也考虑到实际应用的具体情况。
单片机控制可靠性高,温湿度传感器采集信号误差小,稳定度高,整个系统使用简单,经济,有很强实用性。
1.3方案选择
1.3.1单片机芯片的选择方案和论证
方案一
采用MSP430F449芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于1.8V-3.6V的超低压工作,适合手持设备。
但是编程环境复杂,编程风格与MS-51相差很大。
用MSP430编程较之MS-51繁琐,故不采用MSP430F449。
方案二
采用AT89C52,片内ROM全都采用FlashROM;能在4V-5.5V电压工作;同时也与MCS-51系列单片机完全兼容。
该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能。
由于其与MS-51完全兼容,故编程简单。
AT89C52的性能完全满足本设计对单片机的要求。
所以选择采用AT89C52作为主控制系统。
1.3.2显示模块的选择方案和论证
方案一
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,但是显示字母不合适。
而且采用动态扫描法与单片机连接时,占用的单片机时间多。
所以不采用此种作为显示。
方案二
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字母,图形,显示多样,清晰可见,但是价格一般,需要的接口线较少,所以在此设计中采用LCD液晶显示屏作为显示。
1.3.3温湿度传感器的选择方案和论证
方案一
分别采用温度传感器和湿度传感器分开采集温度和湿度,这种设计需要用到两个传感器分别采集数据而且还需要用到A/D转换电路,实际连接电路比较麻烦。
方案二
进而考虑到用温湿度继集成传感器,在单片机电路设计中,所以可以采用一只温湿度集成传感器SHT75,此传感器可以很容易直接读取被测温湿度值,内部进行转换,直接输出数字信号,可以满足设计要求。
所以选择方案二。
综上各方案所述,对此次作品的方案选定:
采用AT89C52作为主控制系统;SHT75作为温湿度传感器;LCD1602显示屏作为显示。
2系统的整体设计
2.1系统的组成
根据系统总体功能,将其划分为以下几个功能模块:
微处理器CPU、温湿度传感器、键盘、LCD显示,LED状态报警,蜂鸣器报警,整个系统的构成如图2.1所示。
图2.1整体系统构成
2.2系统工作流程
AT89C52单片机是整个系统的核心,他来接收温湿度信号并控制协调各个模块使其能正常工作。
SHT75温湿度传感器采集温湿度信号,将信号直接送至单片机进行运算,得到合适的温湿度。
显示部分由液晶芯片LCD1602配合单片机完成。
报警部分由按键控制设置,配合显示部分来设置温湿度的报警阈值,实际温湿度超过阈值是有蜂鸣器和LED灯共同报警。
单片机通过RS485总线方式与上位机进行通讯,并实时显示温湿度值。
因89C52内含8KB的EEPROM,不需外扩展存储器,可使系统整体结构简单。
2.3系统的功能介绍
本系统可对温湿度值进行实时检测,测温范围可为-40~+123.8℃,根据粮仓内实际温度变化情况,将测温范围设定为0-70。
C。
可测湿度测量范围是(0-100)%RH,这也足以满足对湿度的测量要求。
所测温湿度值通过LCD1602显示芯片显示。
整个系统测量精度高、稳定性好,性能上能够达到远距离测量温湿度的要求,适于安置在粮仓内进行检测。
3系统的硬件设计
本章从器件选择、性能特点、电路分析等方面对硬件系统进行了讨论。
3.1AT89C52单片机功能介绍
3.11芯片简介
AT9C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。
主要性能参数如下。
主要性能
•与MCS-51单片机产品兼容
•8K字节在系统可编程Flash存储器
•1000次擦写周期
•全静态操作:
0Hz~33Hz
•三级加密程序存储器
•32个可编程I/O口线
•三个16位定时器/计数器
•八个中断源
•全双工UART串行通道
•低功耗空闲和掉电模式
•掉电后中断可唤醒
•看门狗定时器
•双数据指针
•掉电标识符
图3.1AT89C52引脚图
3.12AT89C52各引脚在设计中的应用
引脚图如图3.1
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“l”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节。
而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
本系统P0口用于与LCD1602进行数据传输。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
本系统P2口用于进行报警系统的信号传输。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
本系统P3口用于接收SHT75传感器的温湿度信号,P3.2和P3.3用于键盘输入的外部中断,P3.2用于INT0(外部中断0),P3.3用于INT1(外部中断1)。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的l/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.13时钟振荡器
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3.2。
图3.2振荡电路
3.2温湿度采集系统
3.2.1集成温湿度传感器的选择
SHT75(如图3.3)是盛世瑞恩温湿度传感器系列中插针型的传感器。
传感器把传感元件和信号处理集成起来,输出全标定的数字信号。
传感器采用专利的CMOSens®技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。
因此,该产品具有品质卓越、超快响应、抗干扰能力强、极高的性价比等优点。
每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,在标定的过程中使用。
传感器在检测信号的处理过程中要调用这些校准系数。
两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。
微小的体积、极低的功耗,使SHT75成为各类应用的首选。
图3.3SHT75传感器
3.2.2SHT75的性能特点(如图3.4)
图3.4SHT75性能特点
3.2.3温湿度测量电路
电源引脚:
SHT75的供电电压为2.4-5.5V,建议供电电压为3.3V。
在电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
SHT75的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照IC协议编址,但是,如果IC总线上没有挂接别的元件,传感器可以连接到IC总线上,但单片机必须按照传感器的协议工作。
图3.5为典型应用电路连接。
图3.5电路连接图
串行时钟输入(SCK):
SCK用于微处理器与SHT75之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
串行数据(DATA):
DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平。
上拉电阻通常已包含在微处理器的I/O电路中。
3.2.4输出转换为物理量
相对湿度:
为了补偿湿度传感器的非线性以获取准确数据,请参阅图3.6,建议使用如下公式修正读数:
RHlinear=c1+c2·SORH+c3·SORH2(%RH)
图3.6相对湿度转换
相对湿度对于温度依赖性的补偿:
由于实际温度与测试参考温度25℃(~77℉)的显著不同,湿度信号需要温度补偿。
温度校正粗略对应于0.12%RH/℃@50%RH,温度补偿系数请参阅图3.7。
RHtrue=(T°C-25)•(t1+t2•SORH)+RHlinear
图3.7温度补偿系数
温度:
由能隙材料PTAT(正比于绝对温度)研发的温度传感器具有极好的线性。
可用如下公式将数字输出转换为温度值,温度转换系数请阅图3.8:
图3.8温度转换系数
露点:
SHT75不能直接测量露点,但可由温度和湿度值计算。
SHT75系列产品可以同时实现高质量的露点测量。
对于温度范围为-40-50℃,如下的近似计算可得出高精度的露点值,系数请参阅图3.9:
图3.9露点系数
3.3显示电路
1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。
1602液晶为16字X2行的字符型液晶。
该液晶与数码管相比有如下优点:
1.位数多,可显示32位,32个数码管体积相当庞大了。
2.显示内容丰富,可显示所有数字和大、小写字母。
3.程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。
图3.10为字符型LCD的引脚定义
图3.11为液晶与单片机接法
图3.10引脚定义
图3.11液晶与单片机接法
1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。
其内部还有自定义字符(CGRAM),可用于存储自已定义的字符。
1602模块的设定,读写,与光标控制都是通过指令来完成,共有11条指令,如表3.1:
表3.1:
指令
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
1
清屏
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示控制
0
0
0
0
0
0
1
D
C
B
5
光标/字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志和地址
0
1
BF
计数器地址
10
写数据到指令7.8所设地址
1
0
要写的数据
11
从指令7.8所设的地址读数据
1
1
读出的数据
3.4按键电路
单片机应用系统中的按键或键盘都是以开关状态来设置控制功能或输入数据。
为了方便设置温湿度报警阈值的修改,我一共涉及了5个按键。
如图3.12
当有按键按下时,信号变为低电平,系统做完与门运算后像单片机P3.2口输入低电平,这时系统执行外部中断。
图3.12按键电路
3.5超温报警
本设计采用蜂鸣器报警方式,当采集到的温度经过修正后超过了系统设置的阈值时,则P3.0口输出低电平,U6是光耦,此处起电平匹配作用,3脚输入低电平,6脚即输出低电平,此时Q1即PNP三极管导通,蜂鸣器有电流流过即发声报警。
连接方式如图3.13
图3.13蜂鸣器连接方式
3.6RS485远程通讯
串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。
没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。
RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS-485标准接口是单片机系统种常用的一种串行总线之一。
与RS-232C比较,其性能有许多改进,细节如图3.14所示
图3.14RS485改进
RS-485接口可连接成半双工和全双工两种通信方式。
常见的半双工通信芯片有MAX481、MAX483、MAX485、MAX487等,全双工通信芯片有MAX488、MAX489、MAX490、MAX491等。
下面以MAX485为例来介绍RS-485串行接口的应用。
MAX485的封装有DIP、SO和uMAX三种,其中DIP封装的管脚如图3.15所示。
图3.15MAX封装管脚
管脚的功能如下:
RO:
接收器输出端。
若A比B大200mV,RO为高;反之为低电平。
RE:
接收器输出使能端。
RE为低时,RO有效;为高时,RO呈高阻状态。
DE:
驱动器输出使能端。
若DE=1,驱动器输
出A和B有效;若DE=0,则它们呈高阻态。
若
驱动器输出有效,器件作为线驱动器用,反之
作为线接收器用。
DI:
驱动器输入端。
DI=0,有A=0,B=1;
当DI=1,则A=1,B=0。
GND:
接地。
A:
同相接收器输入和同相驱动器输出。
B:
反相接收器输入和反相驱动器输出。
VCC:
电源端,一般接+5V。
MAX485典型的工作电路如图3.16所示,其中平衡电阻Rp通常取100~300欧姆。
MAX485的收发功能见图3.17。
图3.16MAX485典型工作电路
图3.17MAX收发功能
89C52与MAX485的接口电路如图3.18所示。
P1.7用来控制MAX485的接收或发送,其余操作同串口。
图3.1889C52与MAX485的接口电路
4系统整体硬件电路
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警电路,按键电路,单片机主板电路,LED状态电路等,如图4.1所示。
图4.1中有五个独立式按键可以分别调整温度计的上下限报警设置,并且切换显示。
图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED灯闪烁。
显示电路的液晶是使用的并行传输,这种显示最大的优点就是传输速度快,而且液晶显示比较清晰。
系统还配置了利用RS485总线方式与上位机通讯的功能,上位机能够实时获得系统所收集的温湿度信息并实时显示。
图4.1系统整体硬件电路
5系统软件算法分析
系统程序主要包括主程序,读出温湿度子程序,,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
5.1主程序
主程序的主要功能是负责温湿度的实时显示、读出并处理SHT75的测量的当前温湿度值,温湿度测量每1s进行一次。
这样可以在一秒之内测量一次被测温湿度,其程序流程见图5.1所示。
图5.1主程序流程图
部分源程序:
#include
#include
#include
#include
#include
//------------------------------------------------------------
//宏定义
#defineHI0x01
#defineLOW0x00
#defineY0XFF
#defineN0X00
#defineTEMP_FLG0X01
#defineHUMI_FLG0X02
#defineDEW_FLG0X03
#defineNON_FLG0X04
//定义按键接口-----------------------------------------------
#defineSET((P1&(1<<2))>>2)//p1.2,设置(切换)
#defineTEN((P1&(1<<3))>>3)//P1.3,×10
#defineADD((P1&(1<<4))>>4)//P1.4,增加
#defineDEC((P1&(1<<5))>>5)//P1.5,减少
#defineOK((P1&(1<<6))>>6)//P1.6,确认退
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 温湿度 报警器