基于AT89S52单片机的温湿度检测系统设计.docx
《基于AT89S52单片机的温湿度检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的温湿度检测系统设计.docx(31页珍藏版)》请在冰豆网上搜索。
基于AT89S52单片机的温湿度检测系统设计
基于AT89S52单片机的温湿度检测系统设计
摘要
随着人们的生活及其生产水平的不断提高,对生活环境和生产环境的要求就显的尤为重要,温湿度的控制就是一个典型的例子,因此温湿度检测系统就是现代生产生活中应运而生的一种智能、快捷、方便可靠的检测系统,特别是在工业生产中如果检测得不准确就会发生许多的生产事故。
如化工生产中对温度的检测不当就会导致生产效率的降低和产品质量的下降。
而现在所使用的温湿度检测系统通常都是精度为1℃或0.1℃的水银、煤油或酒精温度计进行的温度检测和用传统的物理模拟量的方法进行的湿度检测。
这些温湿度检测计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比拟大,到达热平衡所需的时间较长,因此很难读准,并且使用非常不方便。
要为现代人工作、科研、生活提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计是以单片机〔AT89C51〕为核心,配合温度传感器〔AD590〕和湿度传感器(HIH-3610),以及相关的外围电路组成的检测系统,可以接收所测环境的温度和湿度信号,检测人员可以通过数码管显示的数据,实时监控环境的温度和湿度情况。
所有的测量操作都可以通过主机控制软件来实现,温度和湿度传感器得到的测量信号,经电路转换为电信号,然后通过一定的放大经过芯片TLC549A/D转换送到单片机进行数据处理,经软件分析处理后送显示装置。
本系统包括系统硬件和软件设计,可靠性高,结构简单,实现了对温湿度的自动调节。
系统还应用RS232与上位机相连接,可以设置自动记录温度、湿度的相关的参数,也可以设置每隔一定的时间自动记录,可用在气象的观察方面。
关键词:
AT89S52单片机,温度传感器,湿度传感器,A/D转换,
LED显示
第1章概述
1.1课题的研究背景
工业生产中有些场合需要使用精密的机台设备,这些设备的精密度高、价格高,因此为了保证产品的质量及机台的使用寿命,对其环境的要求也很高,尤其的是对温度、湿度的控制。
例如在我工作的生产发光二极管LED的工业现场,前面的两道工序固晶片和焊线要求的精度非常高,晶片必须固到碗杯的中心点,偏差不可超过1/5晶片的宽度,且对胶量的控制也有严格的要求,只有这道工序做好了,下一个工序焊线才会顺利,否则焊线将会出现很多异常,不仅会降低产量也会造成质量问题,因此要求每三个小时记录一次室内的温湿度,且要保证其温度在18℃--23℃之间,湿度不可超过60%。
随着信息产业的发展及工业化的进步,温度和湿度不仅仅表现在以上几个方面直接或间接影响着人类基本生活条件,还表现在对工生物制品、医药卫生、科学研究、国防建设等方面的影响。
针对以上情况,研制可靠且实用的温湿度控制器显得非常重要。
常用温湿度传感器的非线性输出及一致性较差,使温湿度的测量方法和手段相对较复杂,且给电路的调试带来很大的困难。
传统的温湿度测量多采用模拟小信号传感器,不仅信号调理电路复杂,且温湿度值的标定过程也极其复杂,并需要使用昂贵的标定仪器设备。
因此对于温湿度控制器的设计有着很大的现实生产意义。
本文设计的是基于单片机AT89S52的温湿度检测和控制系统,主要以广泛应用的AD590和HIH-3610作为温度和湿度的检测,该仪器具有测量精度高、硬件电路简单、并能很好的进行显示,可测试不同环境温湿度的特点。
另外和控制电路相连,可以进行加湿电路和除湿电路的控制,使温度和湿度参数在预先设定的范围内,不需要人的直接参与。
本系统还通过RS232和上位机相连,可以设置每隔一定的时间进行温度和湿度的采集,上传到上位机,以供查询。
1.2温湿度检测的发展状况以及存在的问题
传统的温度和湿度检测系统主要有以下几种:
〔1〕水汽压〔e〕:
是水汽在大气总压力中的分压力。
它表示了空气中水汽的绝对含量的大小,以毫巴为单位。
〔2〕相对湿度〔rh〕:
湿空气中实际水汽压e与同温度下饱和水汽压E的百分比,相对湿度的大小能直接表示空气距离饱和的相对程度。
空气完全干燥时,相对湿度为零。
相对湿度越小,表示当时空气越干燥。
当相对湿度接近于100%时,表示空气很潮湿,越接近于饱和。
〔3〕露点〔或霜点〕温度:
指空气在水汽含量和气压都不改变的条件下,冷却到饱和时的温度。
〔4〕干湿球温度表:
用一对并列装置的、形状完全相同的温度表,一支测气温,称干球温度表,另一支包有保持浸透蒸馏水的脱脂纱布,称湿球温度表。
〔5〕发湿度表〔计〕:
利用脱脂人发〔或牛的肠衣〕具有空气潮湿时伸长,干燥时缩短的特性,制成毛发湿度表或湿度自记仪器,它的测湿精度较差,毛发湿度表通常在气温低于-10℃时使用。
〔6〕电阻式湿度片:
利用吸湿膜片随湿度变化改变其电阻值的原理,常用的有碳膜湿敏电阻和氯化锂湿度片两种。
前者用高分子聚合物和导电材料碳黑,加上粘合剂配成一定比例的胶状液体,涂覆到基片上组成的电阻片;后者是在基片上涂上一层氯化锂酒精溶液,当空气湿度变化时,氯化锂溶液浓度随之改变从而也改变了测湿膜片的电阻。
〔7〕薄膜湿敏电容:
是以高分子聚合物为介质的电容器,因吸收〔或释放〕水汽而改变电容值。
它制作精巧,性能优良,常用在探空仪和遥测中。
随着智能检测系统的飞速发展,基于单片机的温湿度检测系统将多传感器系统结合在一起。
如何把多传感器集中于一个检测控制系统,综合利用来自多传感器的信息,获得对被测对象的可靠了解和解释,以利于系统做出正确的响应、决策和控制,是智能检测控制系统中需要解决的首要问题。
在温湿度要求严格的场合,利用多传感技术可以提高系统的可靠性和精度,亦可以提高系统的时间空间的覆盖范围。
1.3本课程设计的主要内容
单片机是系统的控制核心,所以单片机的性能关系到整个系统的好坏。
因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。
单片机种类很多,在众多51系列单片机中,较为常用的是ATMEL公司的AT89C51和AT89S52单片机,AT89C51片内4KROM是Flash工艺的,使用专用的编程器自己就可以随时对单片机进行电擦除和改写,片内有128字节的RAM。
而AT89S52含有在系统可编程的Flash存储器,片内有8K闪存,RAM的容量也较AT89C51大,为256字节。
显然这种单片机优点更多,开发时间也大为缩短。
因此,在本次设计中选用了ATMEL公司的AT89S52单片机。
温湿度信号的采集为模拟信号,而单片机接收的为数字信号,因此需要进行A/D转换,在需要进行多路A/D转换时,目前常采用多通道A/D转换器,如ADC0809、AD574等。
这些转换器多为8通道,电路较为复杂。
如果只需完成单个通道8位转换,且速度要求不高时,采用TLC549是一种较好的选择,TLC549是单通道的A/D转换芯片,8位开关电容型逐次逼近模数转换器,它具有三个控制输入端,采用简单的3线串行接口可方便地与微处理器进行连接,且价格适中,是作为A/D转换的最正确选择器件之一。
键盘接口电路较为简单,而显示部分有两种方案供选择:
一种为LCD,一种为LED。
LCD液晶显示的像素单元是整合在同一块液晶版当中分隔出来的小方格。
通过数码控制这些极小的方格进行显像。
显示非常细腻但是造价很高。
而LED数码显示中每一个像素单元就是一个发光二极管,如果是单色,一般是红色发光二极管。
如果是彩色,一般是三个三原色小二极管组成的一个大二极管。
这些二极管组成的矩阵由数码控制实时显示文字或图象,造价相对低廉,显示效果也较好。
由于单片机工作现场存在着各种干扰,为保证系统的可靠工作,本设计选择了常用的看门狗芯片X5045,以实现对单片机的复位,监控等功能。
软件程序的设计也考虑了抗干扰措施。
本设计中,最终选用的集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源,通过对电流的测量可得到所需要的温度值。
湿度传感器是采用了HIH-3610相对湿度传感器它是一种热固聚脂电容式传感器。
采集到的湿度信号再配以进行适当的放大,经过A/D转换送至单片机,实现湿度的显示与控制。
系统主要由以上元器件组成,通过硬件电路和软件程序的设计,实现系统的基本功能。
第2章系统总体方案设计
本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,此设计以AT89S52基本系统为核心的一套检测系统,其中包括A/D转换、单片机、复位电路、温度检测、湿度检测、键盘及显示、报警电路、系统软件等部分的设计。
系统总体方框图如图2.1。
图2.1系统总体框图
本设计由信号采集、信号分析和信号处理三个部分组成的:
(1)信号采集由AD590、HIH-3610及多路开关CD4051组成;
(2)信号分析由A/D转换器TLC549芯片、单片机AT89S52基本系统组成;
(3)信号显示由串行口LED显示器和报警电路组成。
2.1温度传感器
集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源。
AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。
温度传感器主要特性
流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数:
Ir/T=1,式中,Ir—流过器件(AD590)的电流,单位为μA;T—热力学温度,单位为K;AD590的测温范围为-55℃~+150℃;AD590的电源电压范围为4~30V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏;输出电阻为710mΩ;精度高,AD590在-55℃~+150℃范围内,非线性误差仅为±0.3℃。
AD590的工作原理
AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流。
其规格如下:
温度每增加1℃,它会增加1μA输出电流。
可量测范围-55℃至150℃。
供给电压范围+4V至30V。
AD590的接脚图及零件符号如图2.2所示:
图2.2AD590的接脚图及零件符号
AD590的输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Io=(273+25)=298μA。
Vo的值为Io乘上10K,以室温25℃而言,输出值为2.98V(10K×298μA)。
量测Vo时,不可分出任何电流,否则量测值会不准。
电路设计
AD590的输出电流I=(273+T)μA(T为摄氏温度),因此量测的电压V为(273+T)μA×10K=(2.73+T/100)V。
为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。
由于一般电源供给较多零件之后,电源是带噪声的,因此我们使用齐纳二极管作为稳压零件,再利用可变电阻分压,其输出电压V1需调整至2.73V。
接下来我们使用差动放大器其输出Vo为〔100K/10K〕×〔V2-V1〕=T/10,如果现在为摄氏28℃,输出电压为2.8V,输出电压接A/D转换器,那么A/D转换输出的数字量就和摄氏温度成线形比例关系。
AD590温度传感器使用原理如图2.3。
图2.3AD590温度传感器使用原理图
2.2湿度传感器
本设计中采用相对湿度传感器HIH-3610。
HIH-3610是美国Honeywell公司生产的相对湿度传感器,该传感器采用热固聚酯电容式传感头,同时在内部集成了信号处理功能电路,因此该传感器可完成将相对湿度值变换成电容值,再将电容值转换成线性电压输出的任务,同时该传感器还具有精度高、响应快、高稳定性、低温漂、抗化学腐蚀性能强及互换性好等优点。
图2.4湿度传感器HIH-3610外观图
主要特性
〔1〕热固性聚合物电容传感器,带集成信号处理电路;〔2〕3针可焊塑封;〔3〕宽量程:
0~100%RH非凝结,宽工作温度范围–40~85℃;〔4〕高精度:
±2%RH,极好的线形输出;〔5〕5VDC恒压供电,0.8-3.9VDC放大线形电压输出;〔6〕低功耗设计200µA驱动电流;〔7〕激光修正互换性;〔8〕快速响应5秒慢流动的空气中;〔9〕稳定性好,低温飘,抗化学腐蚀性能。
图2.5HIH-3610电压与湿度特性曲线
测量范围
/(%RH)
测量精度
/(%RH)
电源电压
/V
电源电流
μA
输出范围或输出形式
工作温度范围/℃
主要特点
0~100
+2/-2
4~5.8
200
0.8V~3.9V
-40~+85
线性电压输出线,性能最好,抗污染能力最强
表1HIH-3610主要技术指标
由输出电压与相对湿度关系曲线可得出如下结论:
〔1〕HIH-3610在供电电压为5V时,其消耗电流仅为200μA,故HIH-3610湿度传感器对电源没有功率方面的要求,为低功耗产品的设计提供更好的解决方案。
〔2〕HIH-3610输出电压为:
Vo=Vi[0.0062RH0+0.16]〔公式1〕
即输出电压Vo不仅正比于温度测量值,且与电源电压值Vi有关,假设Vi固定为5V,则其值仅由相对温度值决定。
〔3〕HIH-3610测量的湿度值还与环境温度有关,故应进行温度补偿,补偿公式为:
RH=RH0/(1.0546-0.00216T)〔公式2〕
式中:
T为环境摄氏温度值。
利用HIH-3610的线性电压输出可直接输入到控制器或其他装置。
一般仅需取出200μA电流,HIH-3610系列测湿传感器就能理想地用于低引出、电池供电系统。
HIH-3610系列测湿传感器作为一个低成本、可软焊的单个直插式组建〔SIP〕提供仪表测量质量的相对湿度〔RH〕传感性能。
RH传感器可用在二引线间有间距的配量中,它是一个热固塑料型电容传感元件,其芯片内具有信号处理功能。
传感元件的多层结构对应用环境的不利因素,诸如潮湿、灰尘、污垢、油类和环境中常见的化学品具有最正确的抗力。
2.3A/D转换器
本电路设计A/D转换部分主要核心部分采用高性价比的A/D转换芯片TLC549,以下进行详细介绍
2.3.1主要特性
TLC549是德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过I/OCLOCK、
、DATA三条口线进行串行接口。
具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs,TLC548允许的最高转换速率为45500次/s,TLC549为40000次/s。
总失调误差最大为±0.5LSB,典型功耗值为6mW。
采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+-VREF-≥1V,可用于较小信号的采样。
TLC549引脚图如下列图所示:
TLC549的极限参数如下:
图2.7TLC549的引脚图
电源电压:
6.5V;
输入电压范围:
0.3V~VCC+0.3V;
输出电压范围:
0.3V~VCC+0.3V;
峰值输入电流(任一输入端):
±10mA;
总峰值输入电流(所有输入端):
±30mA;
工作温度:
0℃~70℃
TLC549I:
-40℃~85℃
TLC549M:
-55℃~125℃
2.3.2TLC549工作原理
TLC549有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无须特殊的速度或相位匹配。
当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。
这种CS控制作用允许在同时使用多片TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。
一组通常的控制时序为:
(1)将
置低。
内部电路在测得
下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。
(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入。
(3)接下来的3个I/OCLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个换位。
(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。
保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。
第8个I/OCLOCK后,
必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。
如果
为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;假设
为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。
在36个内部系统时钟周期结束之前,实施步骤
(1)~(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。
假设要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样,却在第8个I/OCLOCK的下降沿开始保存。
2.4单片机AT89S52
AT89S52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许ROM在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供灵活的解决方案。
2.4.1主要特性
(1)与MCS-51单片机产品兼容;
(2)8K字节在系统可编程Flash存储器;
(3)1000次擦写周期;
(4)全静态操作:
0Hz~33Hz;
(5)三级加密程序存储器;
(6)32个可编程I/O口线;
(7)三个16位定时器/计数器;
(8)八个中断源;
(9)全双工UART串行通道;
(10)低功耗空闲和掉电模式;
(11)掉电后中断可唤醒;图2.8AT89S52芯片的引脚图
(12)看门狗定时器;
(13)双数据指针;
(14)掉电标识符。
如图2.8所示AT89S52芯片的引脚图
VCC:
电源
Vss:
地
P0口:
8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL
表2P1口引脚的功能
引脚号
第二功能
P1.0
T2〔定时器/计数器T2的外部计数输入〕,时钟输出
P1.1
T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制〕
P1.5
MOSI〔在系统编程用〕
P1.6
MISO〔在系统编程用〕
P1.7
SCK〔在系统编程用〕
P2口:
具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。
在方位外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。
P3口亦作为AT89S52特殊功能〔第二功能〕使用,如表3所示。
表3P3口引脚的第二功能
引脚号
第二功能
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:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
DISRTO默认状态下,复位高电平有效。
ALE/
:
控制信号〔ALE〕是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚〔
〕也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位〔地址为8EH的SFR的第0位〕的设置对微控制器处于外部执行模式下无效。
:
外部程序存储器选通信号〔
〕是外部程序存储器选通信号。
当89S52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
将不被激活。
/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接地。
为执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
第3章系统的硬件设计和连接
3.1主控模块
采用AT89S52单片机作为系统的控制器。
Pl口控制数码管显示温度和湿度值。
P2口与TLC549连接.实现湿度模拟电压量转换为数字量便于单片机处理。
键盘控制采用PO口.其中PO.O是温度的设置,PO.1是湿度的设置,PO.2/PO.3是分别对温度与湿度的上/下限值进行设置。
原理如下列图:
图3.1AT89S52单片机各引脚功能
3.2显示模块
系统采用动态显示方式驱动6个数码管工作,其中4个数码管用来显示温度值,2个用来显示检测到的湿度值。
用74LSl38的输入端来选择位码.单片机的P1口控制数码管的断码。
如检测到的温度与湿度发生变化时,数码管即会发生相应的变化,起到实时显示功能,电路如图3.2。
图3.2现实模块连接电路
3.3A/D转换模块
采用TLC549转换芯片,用于实现模拟量向数字量的转换,由于模拟转换电路的种类很多,选择A/D转换器从速度,精度和价格方面考虑.其内部是8路模拟选通开关。
以及相应的通道抵抗锁存译码电路,转换时间最长17μs左右,单电源供电。
3.4温度和湿度采集模块
AD590温度传感器使用原理
AD590的输出电流I=(273+T)μA(T为摄氏温度),因此量测的电压V为(273+T)μA×10K=(2.73+T/100)V。
为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。
图3.3AD590的电路原理图
3.4.2湿度信号采集的设计
湿度的检测方法,一般采用湿敏元件检测,分为湿敏电阻和湿敏电容两种情况。
基于本次设计,采用了HIH-3610相对湿度传感器它是一种热固聚脂电容式传感器。
采集到的湿度信号再配以