湿度的控制器设计.docx
《湿度的控制器设计.docx》由会员分享,可在线阅读,更多相关《湿度的控制器设计.docx(40页珍藏版)》请在冰豆网上搜索。
![湿度的控制器设计.docx](https://file1.bdocx.com/fileroot1/2023-7/1/6f5e312b-e2a6-4d9a-842b-6bd11fa723fb/6f5e312b-e2a6-4d9a-842b-6bd11fa723fb1.gif)
湿度的控制器设计
湿度的控制器设计
内容摘要:
基于单片机AT89C52的湿度控制器的设计,采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据转换成相应的电信号,再利用单片机的实时控制和数据处理功能,完成系统对环境湿度的控制,从而能够对环境的湿度进行精确的控制。
其中湿度检测电路是由湿度传感器HIH-3610,单总线器件DS2438组成的。
单总线器件DS2438在设计中的采用,弥补了以往湿度控制器只考虑湿度因素,而忽略了其他因素的影响,诸如:
温度,电压等,从而使得对湿度的控制更加及时,准确。
湿度值,温度值适时的显示,使得结果一目了然,更加方便,容易操作。
在控制器中,单总线上传输的温湿度信号是数字信号,克服了传统测量系统总线上传输模拟信号易受干扰的缺点,具有抗干扰能力强,成本低的优点。
关键词:
湿度检测温度检测单片机单总线
Thedesignofthehumiditycontroller
Abstract:
ThedesignhasintroducedthedevelopmentoftheprocessofhumiditycontrollerbasedontheSingleChipMicrocomputernamedAT89C52,whichusestheelectroniccircuittorealizethecontrollingofhumidityofcondition,itskeyisthatthetherelativehumiditydatawhichobtainsfromthesamplingofconditionsconversetocorrespondingelectricalsignal,thenusesfunctionsofthereal-timecontrolofsinglechipmicrocomputerandthedataprocessing,completesthecontrollingofthesystemtothehumidityofconditions,thuscancarryontheprecisecontrollingtothehumidityofconditions.HumidityexaminationelectriccircuitarecomposedbyhumiditysensorHIH-3610andsinglebuscomponentDS2438.SinglebuscalledDS2438inthedesignusingmakesuptheformerhumiditycontrollerwhichcanonlyconsiderthehumidityfactorsandneglecteotherinfluencesoffactors,suchas:
temperature,voltageandsoon,sothehumiditycontrollingismoreprompt,accurate.Thehumidityvalueandtemperaturevaluearetimelydisplayed,whichcausestheresultclear,moreconvenient,easytooperate.Inthecontroller,thetemperatureandhumiditysignalisdigital,whichovercometheshortcomingsonthetraditionmeasurementsystembustotransmitthesimulatedsignalwhichareeasilydisturbed,andithasthemeritsofstronganti-interruptingabilityandlowcost.
Keywords:
Humidityexaminationtemperatureexaminationsinglechipmicrocomputersinglebus
前言1
1系统设计方案1
1.1系统控制结构组成1
1.2系统的性能特点2
1.3总体方案论证2
1.4系统硬件的总体实现3
2系统的硬件设计3
2.1AT89C52单片机3
2.2时钟电路6
2.3湿度检测电路设计7
2.3.1HIH—3610芯片介绍7
2.3.2DS2438芯片介绍7
2.3.3电路工作原理8
2.4键盘与显示电路9
2.4.1键盘的设计9
2.4.2LED显示电路设计9
2.5加湿、除湿电路11
2.6复位电路12
3系统软件设计13
3.1主程序设计13
3.2读出温湿度子程序设计13
3.3计算温湿度子程序设计14
3.4温度转换子程序设计15
3.5显示数据刷新子程序设计16
4结束语16
附录117
附录233
参考文献34
前言
早在18世纪人类就发明了干湿球湿度计,干湿球湿度计的准确度还取决于干球、湿球两支温度计本身的精度;湿度计必须处于通风状态:
只有纱布水套、水质、风速都满足一定要求时,才能达到规定的准确度。
干湿球湿度计的准确度只有5%一7%RH。
干湿球测湿法采用间接测量方法,通过测量干球、湿球的温度经过计算得到湿度值,因此对使用温度没有严格限制,在高温环境下测湿不会对传感器造成损坏。
干湿球测湿法的维护相当简单,在实际使用中,只需定期给湿球加水及更换湿球纱布即可。
与电子式湿度传感器相比,干湿球测湿法不会产生老化,精度下降等问题。
所以干湿球测湿方法更适合于在高温及恶劣环境的场合使用。
后来又出现了滴水法测量相对湿度。
而电子式湿度传感器是近几十年,特别是近20年才迅速发展起来的。
湿度传感器生产厂在产品出厂前都要采用标准湿度发生器来逐支标定,电子式湿度传感器的准确度可以达到2%一3%RH。
电子湿度传感技术由于发展快,精确性高,误差小,现在得到了广泛的应用。
在工农业生产、气象、环保、国防、科研、航天以及现代生活的各个方面,经常需要对环境湿度进行测量及控制。
对于生物制药、食品加工、造纸等行业,准确的测量湿度更是至关重要的。
此外,湿度还直接影响到人们的舒适程度和身体健康,但在常规的环境参数中,湿度是最难准确测量的一个参数。
这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其它因素的影响,湿度与大气压、温度呈函数关系。
因此,用常规的方法测量湿度的误差可达±5%~±20%,此外,湿度的校准也是一个难题。
过去用干湿球度计或毛发湿度计来测量、通过查表得到湿度的方法,早已无法满足现代科技发展的需求。
干湿球湿度计和普通的湿度计并能用做标定,就是因为标定后的精度无法保证。
湿度的标定对环境条件要求十分严格,而在国外的湿度标定设备(例如过生产的MC741—HP型湿度校准仪),价格又十分昂贵。
本设计就是在此基础是,提出一种基于AT89C2单片机控制的比较简单而实用的湿度检测及控制方法。
1系统设计方案
1.1系统控制结构组成
A温湿度检测电路,用于检测空气的湿度。
B微控制器,采用ATMEL公司的89C52单片机,作为主控制器。
C键盘输入电路,用于设定初始值等。
DLED显示电路,用于显示温湿度。
E加湿除湿电路(湿度调节电路)
图1.1-1系统原理框图
1.2系统的性能特点
A自动检测室内空气的湿度。
B当室内空气湿度过高时,控制系统自动启动除湿,减少室内空气中的水蒸气,以达到降低空气湿度的目的;当室内空气湿度过低时,控制系统自动加湿,增加空气的水蒸气,以达到增加湿度的目的,使空气湿度保持在理想的状态。
C数码管显示当前的温湿度。
D键盘设置及调整湿度的初始值。
1.3总体方案论证
方案一:
采用数字电路设计湿度控制器,电路结构简单。
但必须手动操作,一但湿度超出控制范围,必须人工操作,极不方便。
方案二:
采用单片机直接对湿度进行检测,并通过单片机对湿度控制系统进行自动控制。
控制性变得灵活多变,但对湿度所受影响的因素欠考虑,湿度值检测存在一定的误差,应用范围有限。
方案三:
基于单片机采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据准确检测出来,转换成相应的电信号,再利用单片机的实时控制和数据处理功能,完成系统对环境湿度的控制,在8位LED显示器上适时显示出来,从而能够对环境的湿度进行精确的控制。
采用方案三,考虑到了温度等因素对湿度的影响,控制系统变得更加完善,湿
度值,温度值适时的显示,使得结果一目了然,更加方便,容易操作。
1.4系统硬件的总体实现
基于单片机的湿度控制器是以AT89C52为核心,采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据转换成相应的电信号,再利用单片机的适时控制和数据处理功能,完成系统对环境湿度的控制,从而能够对环境的湿度进行精确的控制。
基于单片机的湿度控制器的工作过程如下:
温湿度检测电路将地点的温湿度检测出来,并将相应二进制温湿度数据通过单总线传输到单片机的P1.0引脚,温湿度数据经单片机处理后将湿度和温度适时在数码管上显示出来。
当湿度值高于设定的湿度值范围时,单片机将使P2.5输出低电平,停止加湿器加湿;同时使P2.4输出高电平,使除湿器进行除湿;当湿度值低于设定的湿度值范围时,单片机将使P2.4输出电平,停止除湿器除湿;同时使P2.5输出高电平,使加湿器进行加湿。
2系统的硬件设计
2.1AT89C52单片机
AT89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,拥有8KB的可编程的闪存(Flashprogrammableanderasablereadonlymemory)。
该器件是根据ATMEL公司的高密度的固定存储器技术生产的,他的引脚和指令系统与80C31、87C51完全兼容。
片上的闪存允许在系统内再编程。
由于在单片集成电路上包括了通用8位CPU和闪存,ATMELAT89C52成为强大的微控制器,它为许多嵌入式控制系统提供了高度灵活而又价格适宜的解决方案[1]。
AT89C52具有以下几个特点:
与MCS-51单片机系列的产品相兼容;8K字节可重复编程闪烁存储器,寿命为1000次擦/写循环;全静态逻辑工作频率0HZ~24MHz;三级程序存储器锁定;256位的内部存取储存器;32条可编程的I/O口线;三个16位的定时器/计数器;八个中断源;可编程的串行通道;低功耗的休眠和掉电两种节电模式。
AT89C52芯片的引脚图见图2.1-1
图2.1-1AT89C52的引脚图
VCC:
电源
Vss:
地
P0口:
双向的8位并行口,P0口的输出极具有驱动8个TTL负载的能力。
当向P0口写1置高电平后,那么引脚可以作为高阻输入。
在访问外部程序/数据存储器的时候,P0口也可以对多路传输的地址/数据总线进行组态。
在这种模式下,P0口有一个内部上拉电阻。
P0口在编程和程序验证时分别获得数据字节和输出代码字节[2]。
在程序验证的时候需要外部上拉电阻。
P1口:
一个内部具有上拉电阻的8位的准双向输入输出口。
P1口的输出缓冲器可驱动4个TTL电路。
当P1口的引脚被写1,该口线由内部上拉电阻拉成高电平,并且被用作输入。
当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因为内部上拉电阻的缘故。
另外,P1.0和P1.1可分别作为定时器/数器/2外部计数脉冲输入端T2(P1.0/T2)和定时器/计数器2的外部控制端输入端T2EX。
分别如表3-1。
P1口同时也可以为闪速存储器编程和编程校验接收低位地址字节[3]。
表2.1-1P1.0和P1.1第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P2口:
是一个内部具有上拉电阻的8位的准双向输入输出口。
P2口的输出缓冲器可驱动4个TTL电路。
当P2口的被写1,该口线由内部上拉电阻拉成高电平,并且被用作输入。
当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因为内部上拉电阻的缘故。
在访问外部程序存储器时,P2口发出高8位地址字节;(MOVX@DPTR)在访问外部数据存储器期间,使用16位地址。
P3口:
是一个内部具有上拉电阻的8位的准双向输入输出口。
P3口的输出缓冲
器可驱动4个TTL电路。
当P3口写入1,该口线由内部上拉电阻拉成高电平,并且被用作输入。
当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因为内部上拉电阻的缘故[4]。
P3口也起AT89C52的各种各样的特殊功能作用,如下述表格3-2中所示。
P3口同时也可以为闪速存储器编程和编程校验接收控制信号。
表2.1-2P3口引脚的第二功能
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
(外部中断0,低电平有效)
P3.3
(外部中断1,低电平有效)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
(外部数据存储器写选通,低电平有效)
P3.7
(外部数据存储器读选通,低电平有效)
RST:
复位输入。
当振荡器正在进行复位操作时,该引脚上的出现持续两个机器周期的高电平。
:
当访问外部存储器的时候,允许地址锁存信号(
)是一个输出脉冲信号,用于锁存低位地址。
在编程期间,该引脚作为编程脉冲PROG的输入端。
在正常操作内(在不访问外部存储器时),ALE端仍以不变的频率即振荡频率的1/6,周期性的输出脉冲信号,可作为对外输出的时钟脉冲或用于定时目的。
然而要注意的是,在访问片外数据存储器的期间,ALE脉冲会跳过一个。
:
片外程序存储器读选通信号输出端。
当从外部程序存储器读取指令或常数期间,每个机器周期
两次有效,但当访问外部数据程序存储器期间,那两个
信号将不会出现。
:
访问外部程序存储器控制信号。
EA引脚必须接地,这样才能使器件从外部程序存储单元在0000H开始到FFFFH中取得代码。
然而需要注意的是,如果该引脚用编程设置成1高电平,EA将被内部锁存(访问片内程序存储器)。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
2.2时钟电路
AT89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
为了形成时钟电路,可外接晶振和电容构成并联谐振电路,接在放大器的反馈回路中[5]。
所选的晶振为12MHz,与其相连的电容选为30pF。
其应用电路如图3-2所示:
图2.2-1时钟电路图
2.3湿度检测电路设计
2.3.1HIH—3610芯片介绍
Honeywell的相对湿度传感器是热固聚酯电容式具有信号处理功能的传感器,线性放大输出、工厂标定,独特的多层结构能非常好地抵抗环境的侵蚀,诸如湿气、尘埃、脏物、油、及一些化学品。
HIH—3610芯片具有以下几个特点:
低成本;0.05″和0.1″两种引脚间距可选;精度2%,激光修正互换性至5%;低功耗设计:
200μA驱动电流;快速反应:
15秒;稳定性好、低漂移、抗化学腐蚀性能。
HIH-3610湿度传感器具有仪表级测量性能高、低成本、SIP封装。
线性放大的电压输出可使器件直接与控制器或其他器件相连。
驱动电流200μA,很适合电池供电[6]。
精密的器件一致性好,减少和消除了OEM生产时标定费用,并且厂方可提供单个传感器标定数据。
2.3.2DS2438芯片介绍
DS2438是Dallas公司推出的智能电池监视器。
该器件是为了解决便携式电子产品电池工作状态的实时监测而推出的。
DS2438芯片是单总线器件,仅需1根口线实现电源及双向数据传输。
片内13位精度温度传感器,最小分辨率0.03125℃。
片内具有10位二通道电压A/D转换器,最小分辨率为10mV。
片内10位电流A/D转换器,片内40字节非易失性用户存储器,片内逝去时间计数器,完成充放电时间计时;该器件为单电源工作,低功耗特性,工作温度范围为-40℃~+80℃。
DS2438工作原理是由单总线接口、电压A/D转换器、电流A/D转换器、温度传感器、时钟电路、40字节的E2PROM及与上述硬件相关的寄存器组成。
其中的电压A/D转换器的输入,可编程为由VDD电源端输入或VAD输入端输入,以满足VDD电源端及外部输入模拟量VAD的测量要求。
DS2438存储器类型包括易失性的SRAM和非易失性的EEPROM。
DS2438内部的存储器为一个总容量64字节的存储器。
存储器被分为8页,每页8字节,页地址为00~07H。
其中第00页是访问频率最高的页,字节序号名称内容读/写特性,、易失特性DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB00状态/配置寄存器X,ADB,NV,TB,AD,EE,CA,IAD,读/非易失。
温度低位寄存器2-12-22-32-42-5000,读/非易失。
湿度高位寄存器S2*******222120,读/非易失。
电压低位寄存器2726252423222120,读/非易失。
电压高位寄存器0000002928,读/非易失。
电流低位寄存器0000002928,读/非易失。
电流高位寄存器SSSSSSS28,读/非易失。
阈值寄存器TH2TH1000000读/写易失。
第1页为电流累加器、逝去时间计数器和电流补偿单元;每2页包括非易失性时间和充电时间标记;第3~7页是40字节的提供给用户使用的EEPROM,可用于保存用户数据。
2.3.3电路工作原理
温湿度检测电路如图3-4所示。
图中,单总线上的电压经二极管VD1整流、电容C1滤波后给湿度传感器HIH-3610和单总线器件DS2438供电。
湿度传感器湿度输出电压经电阻R2送入DS2438的VAD端。
DS2438的VDD端电源电压及VAD端湿度电压经DS2438A/D转换后,从DS2438单总线端DQ输出。
图2.3.3-1温湿度检测电路
HIH3610输出电压与湿度的关系为:
Vout=(V+0.16)/0.0062(2.3.3-1)
式中:
Vout为HIH-3610的输出电压;V为HIH-3610的电源电压:
h为相对湿度(%)。
由式(2.3.3-1)可知,输出电压不仅正比于湿度测量值,且与电源电压值有关;若电源电压固定为5V,则其值仅由相对湿度值决定[7]。
另外,HIH-3610测量的湿度值还与环境温度有关,式(2.3.3-2)是在25℃时传感器输出温度与湿度的关系,当环境温度改变时应进行温度补偿,补偿公式为:
h′=h/(1.0546-0.002162T)(2.3.3-2)
式中:
T为环境摄氏温度值;h′为湿度的修正值。
因此,为了得到准确的湿度测量值,还应在测量湿度的同时测量环境温度和湿度传感器电源电压值,这一任务可由智能电池监视器件DS2438完成。
利用D52438的温度传感器测量环境温度,此温度一方面用于温度值输出,另一方面用于湿度测量时温度值的补偿。
利用DS2438内部的双通道A/D转换器,通过编程存储空间中状态/标志寄存器的模拟和数字取值的不同,实现HIH-3610输出湿度电压及HIH-3610电源电压测量的切换,分别得到温度测量和湿度测量时的电源电压值,并通过DS2438的DQ端将所测环境温度值、湿度值、电源电压值传输到单总线上。
因此,使用DS2438即可完成温湿度测量,并可由相应的软件算法实现湿度传感器电源电压校正及环境温度补偿。
2.4键盘与显示电路
2.4.1键盘的设计
为了完成预定湿度值的设置,系统中设置了4个按键,S1为启动/停止键,用来控制系统的启停,S2,S3为加1减1键,设置湿度的上下值,S4设置定时时间。
按键对单片机的接口电路图如图2.4.1-1所示。
图2.4.1-1按键对单片机的接口电路图
2.4.2LED显示电路设计
显示电路由MAX7219芯片完成,MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。
每片可驱动8位7段加小数点的共阴极数码管。
SEGA~SEGG(图中为A到G)为LED七段显示器段驱动端,SEGDP为小数点驱动端;(SEGA~SEGG,DP 驱动显示器7段及小数点的输出电流,一般为40mA左右,可软件调整,关闭状态时,接入GND。
)DIG7~DIG0:
8位数值驱动线。
输出位选信号,从每个LED公共阴极吸入电流,吸收显示器共阴极电流的位驱动线。
其最大值可达500mA,关闭状态时,输出+VCC。
MAX7219是一种高集成化的串行输入/输出的共阴极LED显示驱动器。
每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。
MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。
MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×8静态RAM以及数个工作寄存器。
通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。
如图3-6为MAX7219的时序图(DINCLKLOAD原理)
图2.4.2-1MAX7219工作时序图
这个时序图简单反映了DIN,CLK和LOAD的工作时序,就是告诉大家三个端口是怎么合作传送数据的。
其中,DIN是串行数据输入端,CLK和LOAD实际上是充当了组织者。
针对单片MAX7219介绍一下数据传送的过程:
首先,在CLK的下降沿,无效,在CLK的上升沿,第一位二进制数据被移入内部移位寄存器,然后CLK再出现下降沿,无效,然后CLK再出现上升沿,第二位二进制数据被移入内部移位寄存器,就这样工作十六个周期,完成十六个二进制(前八个是地址,后八个是数据)的传送,这当中LOAD一直是低电平,当完成十六个二进制的传送后。
把LOAD置成高电平,产生上升沿,把这16位串行数据锁存到数据或控制寄存器中。
完成装载。
然后再把LOAD还原为低。
重复开始的动作。
MAX7219与LED数码管连接如图2.4.2-2所示。
图2.4.2-2MAX7219与LED数码管连接
2.5加湿、除湿电路
当检测的湿度值高于设定的湿度值范围时,单片机将使P2.5输出低电平,停止加湿器加湿;同时使P2.4输出高电平,使除湿器进行除湿;当检测的湿度值低于设定的湿度值范围时,单片机将使P2.4输出低电平,停止除湿器除湿;同时使P2.5输出高电平,使加湿器进行加湿,见图2.5-1。
图2.5-1加湿、除湿电路
2.6复位电路
复位是单片机的初始化操作,只需给单片机的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使MCS-51复位。
复位是,PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死机状态,为摆脱死锁状态,也需要按复位键使RST引脚为高电平使单片机重新启动[9]。
单片机复位是由外部的