温湿度报警器.docx
- 文档编号:9175492
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:65
- 大小:1.25MB
温湿度报警器.docx
《温湿度报警器.docx》由会员分享,可在线阅读,更多相关《温湿度报警器.docx(65页珍藏版)》请在冰豆网上搜索。
温湿度报警器
第一部分
单片机
1.引言…………………………………………………………………………1
1.1课题研究背景和意义…………………………………………………………2
1.2课题研究内容………………………………………………………………4
2.系统方案设计…………………………………………………………………7
2.1总体方案设计…………………………………………………………………8
2.2系统方案选择与论证……………………………………………………8
2.2.1单片机芯片的选择……………………………………………………8
2.2.2显示模块选择方案和论证………………………………………………8
2.2.3温度传感器模块选择与论证…………………………………………8
2.2.3湿度传感器模块选择与论证…………………………………………8
3.硬件电路设计…………………………………………………………………8
3.1ST89C52单片机设计………………………………………………………8
3.2数字温度传感器DS18B20………………………………………………8
3.3矩阵键盘接口设计…………………………………………………………8
3.412864液晶显示电路设计…………………………………………………8
3.5电动机的设计………………………………………………………9
4.软件程序设计…………………………………………………………………4
4.1软件设计总体思路及主程序设计流程图…………………………………7
4.2软件程序详解………………………………………………………………6
5.作品调试…………………………………………………………………………8
结语………………………………………………………………………………104
参考文献…………………………………………………………………………106
致谢…………………………………………………………………………111
1.引言
1.1课题研究背景和意义
在现代工业现场,随着科技的进步和自动化水平的提高,电缆的用量越来越大,电缆的安全保护已成为不可忽视的问题。
从国内外有关电缆火灾的统计资料看,许多电缆火灾是由电缆头击穿绝缘引起的。
因此为电缆配置在线温度监测系统,对于电缆接头多,电缆密集的场所,就显得尤为重要。
粮食是人类生存的必需品,温度与湿度是保存好粮食的先决条件,我国的公粮现均集中存放在国家或地方的仓库中,最大粮库方圆几公里,仓库库房数为数十个,测点可达数千个。
按照国家粮食保护法则,必须定期抽样检查各点的粮食温度与湿度,以确保粮食的存储质量。
档案馆中的档案资料同样会受到外界空气温湿度变化的影响,纸张纤维热胀冷缩,使强度降低,湿度过大会使霉菌和害虫滋长,以致造成资料质变。
由此可见,温度、湿度监测在人们现实生活生产中应用已日渐广泛,在发电厂、纺织、食品、医药、仓库、农业大棚等众多的应用场所,对温度、湿度参量的要求都非常严格,因此能否有效对这些领域的温、湿度数据进行实时监测和控制是一个必须解决的重要前提。
1.2课题研究内容
本设计研究的主要内容如下:
(1)在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。
(2)研究比较各相关元器件的功能与特点,选择合适的元器件。
(3)系统硬件设计。
系统硬件设计主要包括:
温度检测、湿度检测、单片机数据采集处理、12864液晶显示、键盘设定、电动机电路等部分。
(4)系统软件设计。
本课题采用C语言,利用Keil编译器进行编程及调试。
主要研究DS18B20和DHT11与单片机的通信协议、时序及一些C51通用程序等。
本设计的难点分为硬件和软件两个方面。
其中硬件开发的难点在于各种元器件的选择和使用,如各种电阻、电容等的选择。
软件开发的难点在于DS18B20、DHT11和液晶12864的时序,如果时序不正确,将无法读出正确的温度值和显示的温度值,对系统产生很大的影响。
2.系统方案设计
2.1系统总体方案设计
(1)实现对室内温湿度参数的实时采集,并进行定时刷新。
(2)根据测量空间和设备的实际需要,由温度、湿度传感器进行关键温、湿度敏感点进行测量,由单片机对数据进行循环检测、数据处理、存储。
实现温湿度的智能测量。
(3)根据处理的数据利用电机实现对温湿度的有效控制。
2.2系统方案选择与论证
2.2.1单片机芯片的选择
本设计采用AT89C52芯片作为硬件核心,该芯片内有4K字节的在线编程Flash存储器,可以擦写1000次,具有掉电模式,而且具有掉电状态下的中断恢复功能,对设计开发非常实用[1]。
2.2.2显示模块选择方案和论证
方案一:
LED数码管显示
由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往会有很多障碍,所以不采用LED数码管作为显示。
方案二:
LCD12864液晶显示
此液晶具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势和可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
所以最终选择LCD12864。
2.2.3温度传感器模块选择与论证
方案一采用模拟温度传感器AD590,转换结果需要经过运算放大器和AD转换器传送给处理器。
它控制虽然简单,成本低,但是后续电路复杂,且需要进行温度标定,集成温度传感器AD590输出为电流信号,且输出信号较弱,所以需要后续放大及A/D转换电路,如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使成本升高。
方案二采用了数字温度传感器DS18B20,它能在现场采集温度数据,直接将温度物理量变换为数字信号并以总线方式传送到单片机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读数方式,因此,该方案完全具有可行性,同时体现了技术的先进性,经济上也有很大的优势。
2.2.3湿度传感器模块选择与论证
方案一采用HS1100/HS1101湿度传感器。
HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。
不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。
相对湿度在1%—100%RH范围内;电容量由16pF变到200pF,其误差不大于±2%RH;响应时间小于5s;温度系数为0.04 pF/℃。
方案二温湿度传感器DHT90将两者的功能集成在一起,并且输出的是数字信号,不需要再进行A/D转换,其温度测量的范围为-40℃~123.8℃,分辨率为0.01℃;测湿范围为0~100%RH,分辨率为0.03%RH。
综合设计的技术要求和传感器的特性,考虑到设计简约化,选择使用传感器DHT90,输出的是数字信号,不需要进行A/D转换,简化了系统设计。
综上所述,本课题采用AT89C52芯片,DS18B20温度传感器,DHT11温湿度传感器,LCD12864液晶显示对系统进行设计。
3硬件电路设计
3.1ST89C52单片机介绍
3.2.1STC89C52单片机
51系列单片机的引脚配置如图1所示。
主要包括P0、P1、P2、P3口以及读写功能输出,时钟输入端等。
(1)AT89C51的特点
1.AT89C51具有以下几个特点:
2.AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;
3.片内有4k字节在线可重复编程快擦写程序存储器;
4.全静态工作,工作范围:
0Hz~24MHz;
5.三级程序存储器加密;
6.128×8位内部RAM;
7.32位双向输入输出线;
(2)AT89C52:
的功能描述
AT89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
图2:
STC89C52单片机引脚图
(3)最小系统设计
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。
电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。
图3:
单片机最小系统原理框图
(4)时钟电路
STC89C52单片机的时钟信号通常有两种方式产生:
一是内部时钟方式,二是外部时钟方式。
内部时钟方式如图4所示。
在STC89C52单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。
图4:
STC89C52内部时钟电路
(5)复位电路
当在STC89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。
本设计就是用的按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST(9)端与电源Vcc接通而实现的。
按键手动复位电路见图4。
时钟频率用11.0592MHZ时C取10uF,R取10kΩ。
图5:
STC89C52复位电路
3.2数字温度传感器DS18B20介绍
DS18B20温度传感器的实物如图6所示:
图6:
温度传感器的封装图
1、DS18B20的主要特性
1.1、适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
1.2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
1.3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
1.4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
1.5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
1.6、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
1.7、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
1.8、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
1.9、负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2、DS18B20的外形和内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的外形及管脚排列如下图7:
DS18B20引脚定义:
(1)DQ为数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
图7:
DS18B20内部结构图
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理如图8所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图
8中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。
图8:
DS18B20测温原理框图
DS18B20有4个主要的数据部件:
(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
图9:
DS18B20温度值格式表
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FE6FH,-55℃的数字输出为FC90H。
3.3矩阵键盘接口设计
在单片机应用系统中,键盘是人机对话不可缺少的组件之一。
在按键比较少时,我们可以一个单片机I/O口接一个按键,但当按键需要很多,I/O资源又比较紧张时,使用矩阵式键盘无疑是最好的选择。
如下图所示,我们把按键接成矩阵的形式,这样用8个I/O口就可以对16个按键进行识别了,节省了I/O口资源。
矩阵键盘仿真图如图10所示。
图10:
矩阵键盘仿真图
我们的识别思路是这样的,初使化时我们先让P1口的低四位输出低电平,高四位输出高电平,即让P1口输出0xF0。
扫描键盘的时候,我们读P1口,看P1是否还为0xF0,如果仍为0xF0,则表示没有按键按下;如果不0xF0,我们先等待10ms左右,再读P1口,再次确认是否为0xF0,这是为了防止是抖动干扰造成错误识别,如果不是那就说明是真的有按键按下了,我们就可以读键码来识别到底是哪一个键按下了。
识别的过程是这样的,初使化时我们让P1口的低四位输出低电平,高四位输出高电平,确认了真的有按键按下时,我们首先读P1口的高四位,然后P1口输出0x0F,即让P1口的低四位输出高电平,高四位输出低电平,然后读P1口的低四位,最后我们把高四位读到的值与低四位读到的值做或运算就得到了该按键的键码。
就可以知道是哪个键按下了。
3.412864液晶显示电路设计
一、概述
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
二、基本特性:
(1)低电源电压(VDD:
+3.0--+5.5V);
(2)显示分辨率:
128×64点;
(3)内置汉字字库,提供8192个16×16点阵汉字(简繁体可选);
(4)内置128个16×8点阵字;
(5)2MHZ时钟频率;
(6)显示方式:
STN、半透、正显;
(7)驱动方式:
1/32DUTY,1/5BIAS;
(8)视角方向:
6点
(9)背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10;
(10)通讯方式:
串行、并口可选;
三、应用举例:
1、使用前的准备:
先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。
此过程亦可以初步检测LCD有无缺段现象。
2、字符显示:
带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符。
带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。
。
三种不同字符/字型的选择编码范围为:
0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系。
其对应关系如下表一所示:
80H
81H
82H
83H
84H
85H
86H
87H
90H
91H
92H
93H
94H
95H
96H
97H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
LCD12964地址表
3.5电机的设计
本次设计中采用的电机模块式利用L9110驱动的,设计中将电机看作控制温湿度的媒介,只要电机转动就可以控制温湿度下降,直至达到设定值之下。
下图是电机模块图11。
图11:
单片机与直流电机接口接线图
图12:
电机与舵机实物模块图
3.6温湿度传感器DHT11电路的设计
一、DHT11产品概述
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
图12:
DHT11温湿度传感器实物图
二、接口说明
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
三、电源引脚
DHT11的供电电压为3-5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
四、串行接口
DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:
8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。
4.软件程序设计
4.1软件设计总体思路及主程序设计流程图
系统初始化
设定报警范围
读取温湿度参数
开始
键盘扫描处理
温湿度数据采集
显示实际温湿度
温湿度是否超出设定值
电机转动
发送温湿度数据
是
否
4.2软件程序详解
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitbeet=P1^0;
sbitdula=P3^6;//位选
sbitwela=P3^7;//段选
sbitled=P3^5;//led
sbitCS=P0^0;//lcd12864片选
sbitPSB=P0^1;//串行
sbitCLK=P0^2;//时钟信号
sbitSID=P0^3;//输入
sbitDQ=P1^3;//18b20输入输出端口
sbitPWMA=P1^0;
sbitPWMB=P1^1;
sbitLED1=P1^4;
sbitdht11=P1^4;
/********************功能:
定义数据初始值******************************/
inthour=8,minute=59,second=50,count=0,num,num10=0,num9,sum,sum1,sum2,sum3;
uintyears=2013;
intmonth=2,day=22;
uinttemp;
uchara[10]={'0','1','2','3','4','5','6','7','8','9'};
ucharcodetab5[]=".";
uchartempL=0,tempH=0,flag=0,k=0,succeed_flag=1,flag1=0;
uinttemperature,temp;
uinttemp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,temp9;
ucharnum2,num3,num4,num5,num15,num16,num17;
#defineSIZE5
ucharvalue_array[SIZE];
uinttemp_value,humi_value;
#defineOK1
#defineERROR0
#defineNUMBER20//防止在与硬件通信时发生死循环设置的计数范围
staticucharstatus;
ucharge,bai,shi;
voiddelay_ms
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温湿度 报警器