《多功能温湿度计设计.docx》由会员分享,可在线阅读,更多相关《多功能温湿度计设计.docx(47页珍藏版)》请在课桌文档上搜索。
1、多功能温湿度计设计多功能数字温湿度计设计【摘要】温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。因此研究温湿度的测量方法具有重要的意义。本论文讲述了一种以单片机AT89C52为主要控制器件,以DHT22为数字温湿度传感器的新型数字温湿度计,具有时间、温湿度显示,并且可以自行设置温度预警值,当温度超出预警值时报警,存储温湿度的功能。【关键词】温度;湿度;DHT22;时间MultifunctiondigitalhygrometerdesignAbs
2、tractTemperatureandhumidityarethetwomostbasicenvironmentalparameters,peoplefslifeiscloselyrelatedtotemperatureandhumidityInindustrialandagriculturalproduction,meteorology,environmentalprotection,nationaldefense,scientificresearchdepartments,oftenneedtomeasuretemperatureandhumiditytotheenvironment.Ac
3、curatemeasurementoftemperatureandhumidityinbiologicalpharmaceutical,foodprocessingspapermakingindustriesisofvitalimportanceSothetemperatureandhumiditymeasurementmethodhasthevitalsignificance.ThispapertellsthestoryofasinglechipmicrocomputerAT89C52asthemaincontroldevice,anewtypeofdigitaltemperatureand
4、humidityforDHT22digitaltemperatureandhumiditymeter,time,temperatureandhumiditydisplay,andwasabletosettemperaturewarningValgwhentemperatureexceedsthewarningalarm9thefunctionofstoragetemperatureandhumidityKeywordTemperature;humidity;DHT22;time1.温湿度计发展史1.1温度计的发展史1.2湿度计的发展史2.设计任务分析及方案论证2.1设计数字温湿度计的需求分析2
5、.2设计任务及要求2.3设计总体方案及方案论证2.4器件的选择2.4.1主控制器芯片2.43时钟芯片储芯片2.4.5LCD128642.5温湿度测量的方法及分析113.硬件电路的设计123.1总体结构框123.2主控制电路和测温湿电路1233存储模块与时钟模块电路133.4显示模块电路144.软件设计及分析154.1 程序流程图154.2 DHT22工作原理174.3 DS1302工作原理234.4 4AT24C02工作原理27334.5LCD12864的工作原理5.结论错误!未定义书签。参考文献36致谢错误!未定义书签。37附录B元件清单391 .温湿度计发展史1.1 温度计的发展史世界上记
6、录最热的温度是在利比亚,时间是1922年9月13日,温度是摄氏58度,之后1953年在墨西哥记录到60度。美国记录的最高温度是在加州的死亡谷,1913年7月10日,温度是56.7度,曾经有人描述过在这个温度下的感受,人可以感受到死亡的威胁,鸟热的从天上掉下来。古希腊人早就知道空气在受热的时候会膨胀,在大约2000年前,亚历山大的英雄(HerOofAlexandria),这其实是一希腊人,生活在埃及的亚历山大,名字叫“Hero,他发明了一个类似蒸汽机的东西,用的就是热气膨胀的原理,但这个还不是温度计。直到1592年,伽利略发明了一个类似温度计的东西,这个也可以测定气压,1612年,伽利略的朋友S
7、antorioSantorio(1561-1636),(并不是我把名字打重了,他的名字和姓氏就是一样的,)他把伽利略的温度计改造了一下,在一个封闭的系统里,随着温度的变化,空气收缩膨胀,彩色的液体高度也随着变化,他用这个测定人体的温度变化,算是世界上第一个体温表。直到1713年,DanielFahrenheit(1686-1736)在温度计上放上了刻度,首先把冰融化的温度和健康人体的温度两个刻度标上,但他很快意识到,冰融化的温度是不变的,但水结冰的温度则是变化的,他把冰,水和盐混在一起,这个温度作为0度,而冰融化的温度是32度,人体的温度是96度。1835年,人们发现人体的正常温度是98.6度
8、(就是摄氏37度)。Fahrenheit有的时候用酒精作为表示温度的液体,但后来他选择了水银,以后这个温度计的上限订到了水沸腾的点,212度。这个就是英国美国使用的华氏度。1742年,瑞典的天文学家AndersCelsius(1701-1744)把水结冰的点定位0度,水沸腾的点定位100度,之后CarOlUSLinnaeUS(1707-1778)把这个顺序倒了过来,就是现在世界上使用最广泛的摄氏度。从摄氏度的国家来到使用华氏度的国家非常不习惯,要经常把华氏度转换成摄氏度,才能明白天气预报是什么意思,很多年后才习惯华氏度,具体转换是F=95C+32,C=59(F-32),心算还是比较困难的。18
9、48年KeIVin引入一个绝对O度的概念,就是摄氏零下273.5度,然后摄氏O度就是273.15K,IOO摄氏度就是373.15K。1.2 湿度计的发展史湿度计是测量空气内含水分多少的仪器。史记天官书中即有测湿的记载。我国汉朝初年就已出现湿度计,它是利用天平来测量空气干燥或潮湿的。天平湿度计的使用方法,是把两个重量相等而吸湿性不同的物体,例如灰和铁,分别挂在天平两端。当空气湿度发生变化时,由于两个物体吸入的分水不同,重量也就起了变化,于是天平发生偏差,从而指示出空气潮湿的程度。这就是湿度计的由来。空气的湿度可通俗地理解为空气的潮湿程度.它有绝对湿度和相对湿度之分.绝对湿度:空气中水蒸气的压强p
10、叫做空气的绝对湿度.空气的湿度可以用空气中所含水蒸汽的密度,即单位体积的空气中所含水蒸汽的质量来表示.由于直接测量空气中水蒸气的密度比较困难,而水蒸气的压强随水蒸气密度的增大而增大,所以通常用空气中水蒸气的压强来表示空气的湿度,这就是空气的绝对湿度.相对湿度:(1)概念的引入:为了表示空气中水蒸气离饱和状态的远近而引入相对湿度的概念.(2)相对湿度B:某温度时空气的绝对湿度p跟同一温度下水的饱和汽压ps的百分比叫做这时空气的相对湿度不同温度下水的饱和汽压可以查表得到在绝对湿度p不变而降低温度时,由于水的饱和汽压减小而使空气的相对湿度增大。居室的相对湿度以60%70%较适宜。2 .设计任务分析及
11、方案论证1 .1设计数字温湿度计的需求分析温度与湿度与人们的生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量及控制。准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。传统的温度计是用水银柱来显示的,虽然结构简单、价格便宜,但是它的精确度不高,不易读数。传统湿度计采用干湿球显示法,不仅复杂而且测量精度不高。而采用单片机对温湿度进行测量,不仅具有控制方便,简单和灵活等优点,而且可以提高温湿度的测量精度。用12864液晶显示屏来显示温湿度的数值和时间,看起来更加直观。测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技术的进步和人们
12、生活的需要出现了温湿度传感器。温度传感器的发展经历了3个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。湿度传感器也是经历了这样一个阶段逐渐走向数字智能化。总之,无论在日常生活中还是在工业、农业方面都离不开对周围环境进行温湿度的测量。因此,研究温湿度的测量具有非常重要的意义。2 .2设计任务及要求设计一个以单片机为核心的多功能温湿度测量系统,可实现的功能为:有日期,时间等显示功能;用户还可自行设置合适的温度;超出设置的合适温度时,蜂鸣器会提示;(4)可存储并查看温湿度。2.3设计总体方案及方
13、案论证按照系统设计功能的要求,确定系统由7个模块组成:主控制器模块,温湿度传感模块,键盘输入模块,时钟模块,存储模块,LCD显示电路及蜂鸣器模块。主控制器的功能有单片机来完成,主要负责处理由温湿度传感器、时钟芯片传递来的数据,并把处理好的数据送向显示模块,以及把数据发给存储芯片和接收存储芯片发来的数据。温湿传感器主要用来采集周围环境参数,并把所采集来的参数送往主控制器。按键电路主要用来完成时间的调整,设定温湿度适宜范围,存储和查询温湿度。这里需要6个按键,两个用来调整时间,两个用来设定温湿度适宜范围,还有两个用来存储和查询温湿度。蜂鸣器模块是由一个蜂鸣器组成,用来判断周围环境的温度是否超出设定
14、值了,当温度超出设置的预警值时,蜂鸣器会发出声响。2.4器件的选择2.4.1主控制器芯片AT89C52是一个低电压,高性能CMoS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和FIaSh存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按
15、照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTALl(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHZ晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(4
16、0脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,PO端口(3239脚)被定义为Nl功能控制端口,分别与Nl的相应功能管脚相连接,13脚定义为IR输入端,10脚和U脚定义为I2C总线控制端口,分别连接Nl的SDAS(18T)和SCLS(19 脚)端 口,12、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。PO:PO口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口PO写“1
17、”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FlaSh编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。Pl:Pl口是一个带内部上拉电阻的8位双向I/O,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,PLO和PLl还可分别作为定时/计数器2的外部计数输入(PLO/T2)和
18、输入(PLlT2EX),Flash编程和程序校验期间,Pl接收低8位地址,其第二功能如表2.1所示。表2.1PLO和PlJ的第二功能引脚号功能特性PLOT2,时钟输出PLlT2EX(定时/计数器)P2:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IlL)。在访问外部程序存储器或16位地数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存
19、储器(如执行MoVX1U指令)时,P2口输出P2锁存器的内容。FIaSh编程或校验时,P2亦接收高位地址和一些控制信号。P3:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2.2所示。表2.2P3的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外部中断0)P3.3INTl(外部中断1)P3.4TO(定
20、时/计数器0)P3.5Tl(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3还接收一些用于FlaSh闪速存储器编程和程序校验的控制信号。AT89C52的电路仿真图如图2.1oU1IQXTAL118XTAL2RSTPO.O/ADOPO.1/AD1P0.2/AD2 P0.3/AD3 PO.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7PSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1534578P1.0P1.1P1.2P1.3P1.4P1.5P1.
21、6P1.7P3.0/RXDP3.1/TXDP3.2/1N TO P3.3/INT1P3.4/TOP3.5/T1P3.6/WRP3.7/RDAT89C52图21AT89C52仿真图242温湿度传感器温湿度传感器采用DHT22,DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT22传感器都在极为精确的湿度校验室中进行校准。校准系数
22、以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。其引脚功能如图2.2所示。15.STZ O NUUUUUUoooooU Ooooo Uooooo乙nnnrn引脚名称描述VDD电源(3.3V55V)SDA串行数据,双向口NC空脚GND地图22DHT22的引脚2.4.3时钟芯片时钟芯片采用DS1302,DS1302是美国DALLAS公司推出的一种高性能、低
23、功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V5.5V采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。其引脚如图2.3所示。VcC2匚X1X2匚VCelSCLKI/ORST图2.3DS1302的引脚图GND匚2.4.4存储芯片本次设计采用的是AT24C02存储模块,AT24C02是一个2K位串
24、行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个8字节页写缓冲器。该器件通过UC总线接口进行操作,有一个专门的写保护功能。AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于AO、Al和A2可以组成OOo111八种情况,即通过器件地址输入端AO.Al和A2可以实现将最多8个AT24C02
25、器件连接到总线上,通过进行不同的配置进行选择器件。其封装及引脚如图2.4所示。s7连接,其他的电源口、接地口和空引脚分别对应相应的引脚或悬空。LCD显示的时候分为四行,第一行显示日期,第二行显示时间,第三行显示湿度,第四行显示温度和预警值。12864的接线电路图如图3.5所示。图3512864接线电路图4.软件设计及分析4.1程序流程图渚展后N4r-4*图4.1程序流程图4. 2DHT22工作原理DHT22为单总线接口,DATA用于微处理器与DHT22之间的通讯和同步,采用单总线数据格式,一次通讯时间5ms左右,具体格式在下面说明,当前数据传输为40bit,高位先出。如下:数据格式:4Obit
26、数据二16bit湿度数据+16bit温度数据+8bit校验和例子:接收40bit数据如下:0000001010001100000000010101Hll11101110湿度数据温度数据校验和湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位二校验和例如:00000010+10001100+00000001+01011111=11101110湿度=65.2%RH温度=35.1当温度低于0时温度数据的最高位置K例如:-10.1表示为IoOO0000OllO0101用户主机(MCU)发送一次开始信号后,DHT22从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT22发送响应信号,送出4
27、0bit的数据,并触发一次信号采集。如图4.2所示:数据UVCCGND-单总线数据F信号线说明:DHT信号主机信号主机发开始信号I拉昌并TJ延时等待一DHT响应输出1拉育勒时TJ准备检出I从机拉低150us11图4.2接收开始信号空闲时总线为高电平,通讯开始时主机(MCU)拉低总线500us后释放总线,延时20-4OUS后主机开始检测从机(DHT22)的响应信号。从机的响应信号是一个80us左右的低电平,随后从机在拉高总线80us左右代表即将进入数据传送。如图4.3所示:-4方臂高1*1IT拉高 U-20-40usII 8OUS信号线说明:主机信号DHT信号图4.3进入数据传送高电平后就是数据
28、位,每Ibit数据都是由一个低电平时隙和一个高电平组成。低电平时隙就是一个50US左右的低电平,它代表数据位的起始,其后的高电平的长度决定数据位所代表的数值,较长的高电平代表L较短的高电平代表Oo共40bit数据,当最后一Bit数据传送完毕后,从机将再次拉低总线50us左右,随后释放总线,由上拉电阻拉高。数字1信号表示方法如图4.4所示:T7Ous信号线说明:主机信号DHT信号图4.4数字1信号表示方法数字0信号表示方法.如图4.5所示:-*l26us-28us表示O信号线说明:主机信号DHr信号图4.5数字O信号表示方法DHT22的的电气特性如表4.1所示:表4.1DHT22的电气特性VDD
29、=5V,T=25,除非特殊标注参数条件mintymax单位供电DC3.36V供电电流测量11.5mA待机4050uA采样周期秒2次注:采样周期间隔不得低于2秒钟(建议2秒以上)读八位数据子程序:voidCOM(void)uchari;for(i=0;i8;i+)FLAG=2;while(!DATA)&FLAG+);Delay_10us();Delay_10us();Delay_10us();u8temp=0;if(DATA)u8temp=l;FLAG=2;WhiIe(DATA)&FLAG+);if(FLAG=l)break;comdataTemper_chu)beep=0;delayms(10
30、);elsebeep=l;4.3 DS1302工作原理DS1302的控制字如表4.2所示:表4.2DS1302的控制字765432101RAMA4A3A2AlAORDCKWR控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4AO):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下
31、一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。DS1302的时序:图4.6单个字节读RWAOAIlA2A3A4R/C1:DQDIlD2D3|彳D5D6D7图4.7单个字节写如以上图4.6和图4.7所示:CE输入驱动高启动所有的数据传输。CE输入有两个功能。首先,CE打开控制逻辑,允许访问的移位寄存器的地址/命令序列。其次,CE提供了一个终止单字节或多字节数据传输方法。一个时钟周期是由一个下降沿之后的上升沿序列。对于数据传输而言,数据必须在有效的时钟的上升沿输入,在时钟的下降沿输出。如果CE为低,所有的I/0引脚变为高阻抗状态,数据传输终止。对于数据输入:开始的8个SCLK周期,输入写命令字节,数据字节在后8个SCLK周期的上升沿输