基于单片机的湿度控制器设计.docx
《基于单片机的湿度控制器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的湿度控制器设计.docx(48页珍藏版)》请在冰点文库上搜索。
基于单片机的湿度控制器设计
毕业设计说明书
基于单片机的湿度控制器设计
专业电气工程及其自动化
学生姓名
班级
学号
指导教师
完成日期2012年5月26日
基于单片机的湿度控制器设计
摘要:
基于单片机AT89C52的湿度控制器的设计,采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据转换成相应的电信号,再利用单片机的实时控制和数据处理功能,完成系统对环境湿度的控制,从而能够对环境的湿度进行精确的控制。
其中湿度检测电路是由湿度传感器HIH-3610,单总线器件DS2438组成的。
单总线器件DS2438在设计中的采用,弥补了以往湿度控制器只考虑湿度因素,而忽略了其他因素的影响,诸如:
温度,电压等,从而使得对湿度的控制更加及时,准确。
湿度值,温度值适时的显示,使得结果一目了然,更加方便,容易操作。
在控制器中,单总线上传输的温湿度信号是数字信号,克服了传统测量系统总线上传输模拟信号易受干扰的缺点,具有抗干扰能力强,成本低的优点。
关键词:
湿度检测;温度检测;单片机;单总线
TheDesignofHumidityControllerBasedonSingleChipMicrocomputer
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:
Humidityexamination;temperatureexamination;singlechipmicrocomputer;singlebus
附录3电路原理图34
基于单片机的湿度控制器设计
1.概述
1.1课题背景
在工农业生产、气象、环保、国防、科研、航天以及现代生活的各个方面,经常需要对环境湿度进行测量及控制。
对于生物制药、食品加工、造纸等行业,准确的测量湿度更是至关重要的。
此外,湿度还直接影响到人们的舒适程度和身体健康,但在常规的环境参数中,湿度是最难准确测量的一个参数。
这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其它因素的影响,湿度与大气压、温度呈函数关系。
因此,用常规的方法测量湿度的误差可达±5%~±20%,此外,湿度的校准也是一个难题。
过去用干湿球度计或毛发湿度计来测量、通过查表得到湿度的方法,早已无法满足现代科技发展的需求。
干湿球湿度计和普通的湿度计并能用做标定,就是因为标定后的精度无法保证。
湿度的标定对环境条件要求十分严格,而在国外的湿度标定设备(例如过生产的MC741—HP型湿度校准仪),价格又十分昂贵。
本设计就是在此基础是,提出一种基于AT89C2单片机控制的比较简单而实用的湿度检测及控制方法。
1.2课题研究的目的和意义
讨论一种测量湿度的简单方法,利用我们常用的电子元器件来组成简单而实用的湿度检测电路,并在此基础上讨论湿度检测影响条件呵环境因数的作用以及湿度检测的精确性问题。
在湿度检测的基础上,简单了讨论湿度的控制问题,分析湿度调节的可行性以及怎么样调节的问题。
1.3国内外发展状况
早在18世纪人类就发明了干湿球湿度计,干湿球湿度计的准确度还取决于干球、湿球两支温度计本身的精度;湿度计必须处于通风状态:
只有纱布水套、水质、风速都满足一定要求时,才能达到规定的准确度。
干湿球湿度计的准确度只有5%一7%RH。
干湿球测湿法采用间接测量方法,通过测量干球、湿球的温度经过计算得到湿度值,因此对使用温度没有严格限制,在高温环境下测湿不会对传感器造成损坏。
干湿球测湿法的维护相当简单,在实际使用中,只需定期给湿球加水及更换湿球纱布即可。
与电子式湿度传感器相比,干湿球测湿法不会产生老化,精度下降等问题。
所以干湿球测湿方法更适合于在高温及恶劣环境的场合使用。
后来又出现了滴水法测量相对湿度。
而电子式湿度传感器是近几十年,特别是近20年才迅速发展起来的。
湿度传感器生产厂在产品出厂前都要采用标准湿度发生器来逐支标定,电子式湿度传感器的准确度可以达到2%一3%RH。
电子湿度传感技术由于发展快,精确性高,误差小,现在得到了广泛的应用。
近年来,随着电子芯片集成化、小型化速度的加快以及芯片制作技术的提高,国内外在湿度传感器研发领域取得了长足的进步。
湿度传感器正从简单的湿敏元件向集成化、智能化、多参数检测以及的方向迅速发展,为开发新一代湿度测控系统创造了有利条件,也将湿度测量技术提高到新的水平。
2.系统设计方案
2.1系统控制结构组成
a)温湿度检测电路,用于检测空气的湿度。
b)微控制器,采用ATMEL公司的89C52单片机,作为主控制器。
c)键盘输入电路,用于设定初始值等。
d)LED显示电路,用于显示温湿度。
e)加湿除湿电路(湿度调节电路)
图2-1系统原理框图
2.2系统的性能特点
a)自动检测室内空气的湿度。
b)当室内空气湿度过高时,控制系统自动启动除湿,减少室内空气中的水蒸气,以达到降低空气湿度的目的;当室内空气湿度过低时,控制系统自动加湿,增加空气的水蒸气,以达到增加湿度的目的,使空气湿度保持在理想的状态。
c)数码管显示当前的温湿度。
d)键盘设置及调整湿度的初始值。
2.3总体方案论证
方案一:
采用数字电路设计湿度控制器,电路结构简单。
但必须手动操作,一但湿度超出控制范围,必须人工操作,极不方便。
方案二:
采用单片机直接对湿度进行检测,并通过单片机对湿度控制系统进行自动控制。
控制性变得灵活多变,但对湿度所受影响的因素欠考虑,湿度值检测存在一定的误差,应用范围有限。
方案三:
基于单片机采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据准确检测出来,转换成相应的电信号,再利用单片机的实时控制和数据处理功能,完成系统对环境湿度的控制,在8位LED显示器上适时显示出来,从而能够对环境的湿度进行精确的控制。
采用方案三,考虑到了温度等因素对湿度的影响,控制系统变得更加完善,湿
度值,温度值适时的显示,使得结果一目了然,更加方便,容易操作。
见图2-1
2.4系统硬件的总体实现
基于单片机的湿度控制器是以AT89C52为核心,采用电子电路实现对环境湿度的控制,其关键是将对环境采样得到的相对湿度数据转换成相应的电信号,再利用单片机的适时控制和数据处理功能,完成系统对环境湿度的控制,从而能够对环境的湿度进行精确的控制。
基于单片机的湿度控制器的工作过程如下:
温湿度检测电路将地点的温湿度检测出来,并将相应二进制温湿度数据通过单总线传输到单片机的P1.0引脚,温湿度数据经单片机处理后将湿度和温度适时在数码管上显示出来。
当湿度值高于设定的湿度值范围时,单片机将使P2.5输出低电平,停止加湿器加湿;同时使P2.4输出高电平,使除湿器进行除湿;当湿度值低于设定的湿度值范围时,单片机将使P2.4输出电平,停止除湿器除湿;同时使P2.5输出高电平,使加湿器进行加湿。
3.系统的硬件设计
3.1AT89C52单片机及时钟电路
3.1.1中央处理器---AT89C52
a)AT89C52的功能描述
AT89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,拥有8KB的可编程的闪存(Flashprogrammableanderasablereadonlymemory)。
该器件是根据ATMEL公司的高密度的固定存储器技术生产的,他的引脚和指令系统与80C31、87C51完全兼容。
片上的闪存允许在系统内再编程。
由于在单片集成电路上包括了通用8位CPU和闪存,ATMELAT89C52成为强大的微控制器,它为许多嵌入式控制系统提供了高度灵活而又价格适宜的解决方案。
b)AT89C52的特点
AT89C52具有以下几个特点:
与MCS-51单片机系列的产品相兼容
8K字节可重复编程闪烁存储器,寿命为1000次擦/写循环
全静态逻辑工作频率0HZ~24MHz
三级程序存储器锁定
256位的内部存取储存器
32条可编程的I/O口线
三个16位的定时器/计数器
八个中断源
可编程的串行通道
低功耗的休眠和掉电两种节电模式
c)AT89C52引脚功能
AT89C52芯片的引脚图见图3-1
图3-1AT89C52的引脚图
VCC:
电源
Vss:
地
P0口:
双向的8位并行口,P0口的输出极具有驱动8个TTL负载的能力。
当向P0口写1置高电平后,那么引脚可以作为高阻输入。
在访问外部程序/数据存储器的时候,P0口也可以对多路传输的地址/数据总线进行组态。
在这种模式下,P0口有一个内部上拉电阻。
P0口在编程和程序验证时分别获得数据字节和输出代码字节。
在程序验证的时候需要外部上拉电阻。
P1口:
一个内部具有上拉电阻的8位的准双向输入输出口。
P1口的输出缓冲器可驱动4个TTL电路。
当P1口的引脚被写1,该口线由内部上拉电阻拉成高电平,并且被用作输入。
当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因为内部上拉电阻的缘故。
另外,P1.0和P1.1可分别作为定时器/数器/2外部计数脉冲输入端T2(P1.0/T2)和定时器/计数器2的外部控制端输入端T2EX。
分别如表3-1。
P1口同时也可以为闪速存储器编程和编程校验接收低位地址字节。
表3-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),这是因为内部上拉电阻的缘故。
P3口也起AT89C52的各种各样的特殊功能作用,如下述表格3-2中所示。
P3口同时也可以为闪速存储器编程和编程校验接收控制信号。
表3-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:
振荡器反相放大器的输出端。
3.1.2时钟电路
AT89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
为了形成时钟电路,可外接晶振和电容构成并联谐振电路,接在放大器的反馈回路中。
所选的晶振为12MHz,与其相连的电容选为30pF。
其应用电路如图3-2所示:
3-2时钟电路
3.2温湿度检测电路设计
3.2.1HIH—3610芯片介绍
Honeywell的相对湿度传感器是热固聚酯电容式具有信号处理功能的传感器,线性放大输出、工厂标定,独特的多层结构能非常好地抵抗环境的侵蚀,诸如湿气、尘埃、脏物、油、及一些化学品。
A.HIH—3610芯片的特点
HIH—3610芯片具有以下几个特点
低成本
0.05″和0.1″两种引脚间距可选
精度2%,激光修正互换性至5%
低功耗设计:
200μA驱动电流
快速反应:
15秒
稳定性好、低漂移、抗化学腐蚀性能
B.HIH—3610芯片的功能描述
HIH-3610湿度传感器具有仪表级测量性能高、低成本、SIP封装。
线性放大的电压输出可使器件直接与控制器或其他器件相连。
驱动电流200μA,很适合电池供电。
精密的器件一致性好,减少和消除了OEM生产时标定费用,并且厂方可提供单个传感器标定数据。
C.HIH-3610芯片的性能指标
输出电压与相对湿度的特性关系曲线如图3-3所示。
参数指标RH精度±2%RH,0~100%RH非凝结,25℃(DC供电电压=5V)RH互换性±5%RH,0~60%RH;±8%@90%RHRH线怀±0.5%RH典型值RH迟滞±1.2%的RH最大量程RH重复性0.5%RHRH反应时间/s30(慢流动的空气中,1/e@25℃)RH稳定性±1%RH典型值,50%RH,5年时间内DC供电电压/V4~9(传感器在DC5V下标定)消耗电流/mA0.2(DC5V);2(典型值,DC9V)
输出电压:
Vout=Vsuppl[0.0062(sensor%RH)+0.16]
湿度修正值:
RH=(sensor%RH)/(1.0546-0.0216t)
图3-3HIH-3610电压与相对湿度特性曲线
由性能指标及输出电压与相对湿度的关系曲线,可得出如下结论:
a)HIH-3610在供电电压为5V时,其消耗电流仅为200μA,完全可满足单总线微网对器件低功耗的要求。
b)HIH-3610输出电压为
Vout=Vsupply[0.0062(sensor%RH)+0.16](3-1)
即输出电压Vout不仅正比于湿度测量值,且与电源电压值Vsupply圾关。
若Vsupply固定为5V,则其值仅由相对湿度值决定,但由于单总线上的供电电压值为变量,故要求在进行湿度测量的同时还应测量电源电压Vsupply的值。
c)HIH-3610输出的湿度值还与环境温度有关,故应进行温度补偿,补偿公式为
RH=(sensor%RH)/(1.0546-0.0216t)(3-2)
因此,为得到准确的湿度测量值,还应在测量湿度的同时测量环境湿度和单总线供电电压值。
3.2.2DS2438芯片介绍
DS2438是Dallas公司推出的智能电池监视器。
该器件是为了解决便携式电子产品电池工作状态的实时监测而推出的。
A.DS2438芯片的特点:
DS2438芯片具有以下几个特点
单总线器件,仅需1根口线实现电源及双向数据传输;
片内13位精度温度传感器,最小分辨率0.03125℃;
片内10位二通道电压A/D转换器,最小分辨率为10mV;
片内10位电流A/D转换器;
片内40字节非易失性用户存储器;
片内逝去时间计数器,完成充放电时间计时;
单电源工作,低功耗特性;
工作温度范围为-40℃~+80℃。
B.DS2438引脚功能说明:
GND接地
VSENS+电源电流监视输入(+)
VSENS-电池电流监视输入(-)
VAD通用A/D输入端
VDD供电电压(2.4~10V)
NC空引脚
DQ数据输入/输出、1线操作、开漏
C.工作原理
DS2438由单总线接口、电压A/D转换器、电流A/D转换器、温度传感器、时钟电路、40字节的E2PROM及与上述硬件相关的寄存器组成。
其中的电压A/D转换器的输入,可编程为由VDD电源端输入或VAD输入端输入,以满足VDD电源端及外部输入模拟量VAD的测量要求。
D.器件存储单元
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,读/非易失。
湿度高位寄存器S26252423222120,读/非易失。
电压低位寄存器2726252423222120,读/非易失。
电压高位寄存器0000002928,读/非易失。
电流低位寄存器0000002928,读/非易失。
电流高位寄存器SSSSSSS28,读/非易失。
阈值寄存器TH2TH1000000读/写易失。
第1页为电流累加器、逝去时间计数器和电流补偿单元;每2页包括非易失性时间和充电时间标记;第3~7页是40字节的提供给用户使用的EEPROM,可用于保存用户数据。
E.寄存器
DS2438所有的寄存器都映射到上述的存储器中,同时对DS2438的操作都是通过
寄存器进行的。
a)状态寄存器
状态寄存器位于存储器00页的第0字节,该寄存器用于DS2438的功能控制,其中各位的默认值为1,含义如下:
IAD为电流A/D控制位。
IAD=1,启用电流A/D和ICA,且以32Hz速率测量电流;IAD=0,禁用电流A/D和ICA。
CA为电流累加器配置位。
CA=1,启用CCA/DCA存储数据且可从第7页恢复数据;CA=0,禁用CCA/DCA,第7页可用于普通E2PROM存储。
EE为隐蔽电流累加器位。
EE=1,将CCA/DCA计数器数据隐蔽到E2PROM,电量每增加0.32C,当前计数器加1;EE=0,CCA/DCA计数器数据将不隐蔽到E2PROM。
AD为电压A/D输入选择位。
AD=1,电压A/D选择由VDD端输入;AD=0,电压A/D选择由VAD端输入。
TB为温度转换忙标志位。
TB=1,温度转换正在进行;TB=0,温度转换结束。
NVB为非易失存储忙标志位。
NVB=1,在从可擦除区复制到E2PROM的存储过程中;NVB=0,非易失存储空闲状态。
一次E2PROM存储占用2~10ms。
ADB为A/D转换标志位,ADB=1,电压A/D转换正在进行;ADB=0,转换结束或无测量。
一次A/D转换占用约10ms,X为不定位。
b)温度寄存器
DS2438可在-55~+125℃范围内以0.03125℃的分辨率测量温度值,温度值为2的码形式通过2字节温度寄存器输出。
其中符号位S指示温度值为正或负;S=0,温度值为正;S=1,温度值为负。
c)电压寄存器
DS2438的电压输入范围是0~10V,且电压ADC的输入,可通过状态/结构寄存器的AD位来选择由VDD输入或由VAD输入。
电压A/D转换的结果放在2字节电压寄存器中,单位为mV。
d)电流寄存器
DS2438通过测量电流取样电阻RSENS两端的电压来间接测量流过电池的电流。
采用10位ADC,其分辨率为0.005C,电流测量值的结果放在2字节的电流寄存器中其中电流测量符号位S,用于指示充电或放电。
e)单总线协议
DS2438是Dallas公司基于单总线的器件。
该器件的操作完全遵循单总线协议,其ROM命令有3个。
读ROM[33H];
匹配ROM[55H];
跳过ROM[F0H]。
主机在操作DS2348之前,必须先发送上述4个ROM命令中的一个。
在DS2438成功执行上述命令之后,主机可使用下面的内存命令操作DS2438。
由于DS2438的内存分为7页,故其内存操作命令和其