温湿度的自动控制系统.31页_第1页
温湿度的自动控制系统.31页_第2页
温湿度的自动控制系统.31页_第3页
温湿度的自动控制系统.31页_第4页
温湿度的自动控制系统.31页_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 内蒙古大学鄂尔多斯学院2011级自动化专业学年论文 引言目前我国土地沙漠化日益严重,所以在沙漠种植植物,防沙固土便显得很重要。但是,沙漠植物的存活率一直很低,在沙漠种植植物,如果存活不了,那么既不能改善环境,又浪费了人力物力资源。沙漠植物存活的环境由多个因子组成,如温度、光照、湿度及二氧化碳浓度等。时下,我国沙漠环境控制目前仍靠人工经验来管理,严重影响了沙漠植物生产的效益,阻碍了环境的发展进度,因此,采用先进的人工智能技术,科学、合理地控制影响植物的环境因子,通过计算机控制设备进行环境控制,以便给植物生长创造一个最佳的环境条件,既做到防沙固土,同时又改善了环境,这对沙漠环境施行自动检测和控制

2、是非常必要的。沙漠设施的关键技术是环境控制,主要是温湿度的控制,其目的是提高控制及作业精度。温湿度控制仪的发展相当迅速,近几十年内,由于电子行业的迅速发展和集成电路和高集成电路的产生,控制仪走向微型化、多功能化。温湿度传感器在工农业生产、气象、环保、医学等领域得到越来越广泛的应用。温湿度控制仪目前普遍采用的方案:方案:采用集温湿度传感器于一体的 SHT11 芯片为主要芯片的控制仪。由于传统的模拟式湿度传感器(方案一)一般不仅要设计信号调理电路,还要经过复杂的校准和标定过程,其测量精度难以保证。而SHT11是瑞士Sensiri-on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传

3、感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。目 录1. 整体设计11.1 设计要求及框图11.2 元器件的选择21.2.1 单片机的选择21.2.2 温度传感器的选择21.2.3 显示模块的选择21.2.4 系统设计方案的确定22. 系统的硬件设计42.1 单片机的最小系统42.2 温湿度传感器 SHT1142.3 LCD 显示-LCD160452.3.1 LCD1604的连接电路52.3.2 LCD1604的连接电路52.4 报警

4、电路的设计62.5 控制电路的设计73. 软件系统设计83.1 软件设计的整体思想83.2 程序流程图设计84. 调试104.1 软件调试104.2 硬件调试104.3 液晶模块调试114.4 报警电路调试1结论13致谢14参考文献15附 录16附录A:系统电路图16附录B:源程序171. 整体设计1.1 设计要求及框图本设计核心部件为 AT89C51,信号采集及处理部分由 SHT11 构成,进入单片机后经处理后通过 LCD1604 显示温湿度,信号显示采用的液晶屏为 5X7 点阵,一行可显示 16 字,四行。其他组成部分为实时时钟发生电路,产生同现在相同的时间和具体日期,通过 LCD1604

5、 液晶模块显示。在软件设计部分有对测量的温湿度进行上下值的设定,当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣。硬件中包括一个开关,为复位开关。开机后,所有器件初始化,温湿度传感器 SHT11 开始进行温湿度测量和计算,最后通过LCD 液晶显示器显示结果。在测量结果中有超过设定的温湿度上下限的,通过超限模块作出反应。其他是一些附件,比如复位、晶振电路。整体电路框图1.1如下:图1.1 整体电路框图1.2 元器件的选择1.2.1 单片机的选择采用MCS-51系列单片机中的AT89C51芯片1作为核心器件,有4K 字节的内部 FLASH PERAM,能于

6、3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。1.2.2 温度传感器的选择采用数字式温湿度传感器STH112。该传感器为数字式传感器,可以同时采集温度和湿度,两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积和极低的功耗等优点,使其成为选择温湿度传感器时的首选。1.2.3 显示模块的选择采用LCD1604液晶显示器。其显示容量为16*2个字符,而此次设计的是一个大棚温湿度测控系统,需要将设定的温湿

7、度值以及采集过来的外界环境里的温度值和湿度值显示出来,而LCD-1604的显示容量只有两行,可以显示八个汉字,这样无法直接在一屏里面显示温度值和湿度值,需要分多次页数来显示,这样不便于观察温湿度的变化,所以在本次设计中不采用LCD1604液晶显示器。1.2.4 系统设计方案的确定1. 选择AT89C51单片机作为整个系统的核心器件,发送并时时处理系统信息。2. 传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设

8、备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。本设计选用集成温湿度传感器STH11。3. 显示电路的设计:设计采用液晶LCD1604进行显示,简单明了。4. 报警电路的设计:在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据通过计算机进行数据处理、数字滤波和标度变换,这些已经在软件程序里边处理过,所以显示温湿度即为外界采集的温湿度,和设定的值比较,如果高于上限值或低于下限值则进行报警,否则就作为采样的正常值,进行显示和控制。本设计采用声光报警电路。温度和湿度任何一个超过设定范

9、围,蜂鸣器均报警。设计选用二极管的亮灭显示温度或者湿度是否过限,这样便于观察,可以更加直接的确定是要升降温还是要增减湿度,给工作人员减少了工作量。蜂鸣器报警电路是通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。5. 温湿度控制主程序的设计要考虑以下问题:(1) 温湿度采样,数字滤波;(2) 越限报警和处理;(3) 温度标度转换。2. 系统的硬件设计2.1 单片机的最小系统 单片机的最小系统3应包括振荡电路和复位电路等,如图2.1: 图2.1 最小系统原理图 单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内

10、的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。2.2 温湿度传感器 SHT11 温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图2.2所示:图2.2 SHT11的内部结构 该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D 转换器;最后经过二线串行数字接口输出数字信号。在测量过程中,校

11、准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11 的温度升高5左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(95RH)环境中,加热传感器可预防传感器结露,同时缩短响应时提高精度。加热后SHT11温度升高相对湿度降低,较加热前,测量值会略有差异。2.3 LCD 显示-LCD16042.3.1 LCD1604 初始化 延时 15mS 写指令 38H(不检测忙信号)、延时 5mS 写指令 38H(不检测忙信号)、延时 5mS 写指令 38H(不检测忙信号)以后每次写指令、读/写

12、数据操作均需要检测忙信号。写指令 38H:显示模式设置;写指令 08H:显示关闭;写指令 01H:显示清屏;写指令 06H:显示光标移动设置;写指令 0CH:显示开及光标设置。2.3.2 LCD1604的连接电路 LCD1604与单片机的P0口相连,出实时的温湿度,连接电路如图2.3.2所示:图2.3.2 LCD1604的显示电路2.4 报警电路的设计 在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或经过计算机进行数据处理、数字滤波、标度变换之后,与该参数上下限给定值进行比较,如果高

13、于上限值或低于下限值则进行报警,否则就作为正常的采样值,进行显示和控制。 本设计采用声光报警电路。蜂鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过单片机AT89C51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。蜂鸣器的正极接电源,负极接单片机的P2.7口。报警电路中加了两个发光二极管,一个与单片机的P2.5连接,另一个与单片机的P2.6连接。温湿度传感器采集来的温度,湿度与单片机设定的温度,湿度值相比较,只要其中任何一个过限,蜂鸣器就会发出蜂鸣音报警。当温度大于设定值,其中

14、一只二极管发光;当湿度大于设定值,另一只发光二极管亮。这样便于观测是哪一个量过限。使得工作人员的工作量减少。本设计是为在温湿度测量中对温湿度的上下限超出时的提示报警,当温湿度过限时,接口被置0,本系统开始工作。报警电路连接图如图2.4所示。 图2.4 声光报警电路2.5 控制电路的设计继电器是电子控制器件,通常应用于自动控制电路中。它具有控制系统(又称输入回路)和被控制系统(又称输出回路),实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。电磁式继电器具有结构简单、工作可靠、坚固耐用、价格便宜等优点。本电路采用常开继电器组成控制电路。它们分

15、别控制加湿设备、降温设备等设备。湿温设备工作原理:当湿度低于设定下限湿度时,与单片机连接的引脚将送入低电平,三极管将导通,继电器有电流通过将吸合,则加湿装置将进行加湿工作,湿度上升。当湿度上升到设定范围之内时,置其引脚为高电平,三极管将截止,继电器不能工作,处于常开状态,加湿装置停止工作。加湿设备原理图如图2.5:图2.5加湿设备电路3. 软件系统设计3.1 软件设计的整体思想 对于系统而言,要完成各项功能,首先必须要有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是单片机应用高速发展的今天。许多由硬件完成的工作,都可通过软件编程来代替,甚至有些用很复杂的硬件电路才能完成的工

16、作,用软件编程的时候,往往会变得很简单,如数字滤波,信号处理等等。 系统进行软件设计时,先要对本设计硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行C语言编程,最后将它们系统的编程4。 本设计是以AT89C51单片机为核心,采用C语言编程。它采用模块化设计,由主程序、读出温湿度子程序、按键处理子程序、LCD1604显示子程序、以及有关STH11的程序等模块组成。 本系统设计的工作流程是,开始并初始化后,先从键盘上输入要设定的温度和湿度的上下限值;传感器读取温湿度值,读取成功后,线性拟合数据

17、,然后 LCD显示数据,如果温湿度过限,则报警并且启动控制设备;如果数据在温湿度上下限范围内,则显示温湿度值。子程序初始化参考附录B源程序。 3.2 程序流程图设计 整个系统的软件设计采用模块化编程,主要的功能子程序有:系统初始化,STH11的初始化,LCD-1604的初始化。所有程序参考附录B源程序。主程序流程图如图3.2所示:图3.2 主程序流程图4. 调试4.1 软件调试 系统软件设计的过程主要分为以下几个步骤: 第一步:建立源程序,所有程序参考附录B源程序。通过计算机开发系统的编辑软件,按照所要求的格式、语法规定、源程序输入到开发系统中,并存在磁盘上。 第二步:在计算机上,利用KILE

18、软件对第一步输入的源程序进行编译,变为可执行的目标代码。如果源程序有语法错误,则其错误将显示出来,然后返回到第一步进行修改,再进行编译,直到语法错误全部纠正为止。 第三步:在线调试。对于与系统、硬件无联系的程序,可以借助在线调试手段,发现逻辑错误后,返回到第一步修改,直到逻辑错误纠正为止。对于与系统硬件紧密相关的程序,则需对软件和硬件同时进行调试,将程序烧入CPU,然后将CPU 插入系统。发现硬件故障后应排除故障,发现逻辑错误后应修改程序,消除逻辑错误。4.2 硬件调试 硬件调试主要包括两步: 第一步:系统上电之前,根据原理图附录A先仔细检查线路是否连接正确,并核对元器件的型号、规格和安装是否

19、符合要求,应特别注意电源系统的检查,以防止电源的短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线的短路。 第二步:第一步的调试,只是对系统进行初步调试,可以排除一些明显的故障,而硬件故障主要是靠软件和硬件联调来排除。硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中发现和被纠正的。4.3 液晶模块调试 液晶显示器是人机界面最关键的部分,能够使我们更加清楚的读取数据。 在对显示模块进行调试的过程中发现显示不正常,汉字显示与字符显示不同,LCD-1604每行可以显示16个字符,8个汉字,汉字不能分半显示,由于软件编程时,地址分配有误,使得汉字部分无法显示。经过检查,

20、发现问题后,将地址重新分配,显示部分正确。液晶显示模块如图4.1所示:图4.1 液晶显示模块4.4 报警电路调试 本次系统设计采用的是声光报警电路。当温度和湿度其中任何值一个过限后,蜂鸣器都会发出声音。这是写在软件程序里的。但是在加上控制信号,温湿度过限后,蜂鸣器不报警。蜂鸣器的控制端口无控制信号输出。经检查发现程序里面蜂鸣器的控制端口电平设置有误,加湿设备仿真图修改后,蜂鸣器工作正常。报警电路如图4.2所示:图4.2 报警电路结论 本设计综合利用单片机技术、传感器技术、数字电子技术和LCD显示等科学知识,完成了基于单片机控制的温湿度测量和显示报警等的设计。比较系统地介绍了硬件的组成及设计方法

21、。利用单片机C语言完成了系统软件的设计。本设计特点如下: 1. 把传感器技术应用到单片机控制系统中,实现了对环境温湿度的数据采集、读取等。 2. 利用LCD液晶的显示技术完成了环境温度、湿度及显示电路的设计。 3. 外接了蜂鸣器报警模块,在超过设定温湿度上下限时自动报警。 4. 整个系统软硬件搭配合理,设计、开发、维护方便,性价比高。由于单片机经济实用、开发简便,因而在工业控制、农业自动化、家电智能化等领域也占据了广泛的市场。本设计有一定的实用性,但该系统在设计过程中仍有很多漏洞。不过,该产品有很好的可扩展性能,比如,该设备的测量结果不仅能在本地显示,而且可以利用单片机的串行口和RS-232总

22、线通信协议将采集的数据传送到主控机,以进行进一步的存档、处理。主控机负责控制指令的发送,以控制各个从机的温湿度采集,收集测量数据,并对测量结果(包括历史数据)进行整理、显示和存储。主控机与从机之间达到系统整体统一、和谐的效果。 本系统存在的不足与拓展: 1. 设计不足:系统设计中,未能显示实时信息。在一些比较特殊的场合,有时候需要系统显示出各个时间段,比如,早、中、晚的实时信息。而这个系统没有此项功能。 2. 系统拓展: (1) 本系统可以添加无线模块。可以添加中、短程无线通信模块,使得系统能够在比较恶劣、危险等不适合人到达的地方进行工作,这样就提高了系统的实用性; (2) 本系统可以利用串口

23、与PC机相连接,然后将采集的信息在PC机上进行处理,比如可以绘制时间温湿度曲线,也可将信息发布到WAP上,进行远程操控。 致谢 时光飞逝,转眼间在内大的大三生活已经走到了最后的时刻。在实训过程中,老师对我的谆谆教导,我将永远铭记在心,还有同学之间的深厚情谊,将会永远成为我的动力源泉。谨此向他们表示诚挚的谢意。 在实训论文即将全部完成之际,我想向曾经给予我帮助和支持的人表示衷心的感谢! 感谢我的指导老师郭华老师。本设计是在郭老师的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。郭老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微

24、不至的关怀,在此谨向郭老师致以诚挚的谢意和崇高的敬意。 同时,我还要感谢给过我帮助的同学们,正是由于你们的帮助和支持,我才能克服一个又一个的困难和疑惑,直至本论文的顺利完成。感谢同窗之谊和手足之情,我将终生难忘!路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以更好的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学和朋友。学无止境,明天,将是我终身学习另一天的开始! 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们! 最后,再次对关

25、心、帮助我的老师和同学们表示衷心地感谢!参考文献1沈庆阳. 单片机实践与应用. 北京: 清华大学出版社, 20022杜深慧. 温湿度检测装置的设计与实现. 北京: 机械工业出版社, 20043李朝青. 单片机原理及接口技术. 北京: 北京航空航天大学出版社, 20094姜志海, 赵艳雷. 单片机的C语言程序设计与应用. 北京: 电子工业出版社, 2010附 录附录A:系统电路图附录B:源程序#include #include#include#include#include#include#include#include/*主函数*void main() value humi_val,temp_

26、val; unsigned char error,checksum; Temp=30,Humi=85; l1602a_rw=0; s_preres(); welcome(); delay(200); lcd_initial(); while(1) gotoxy(0,0); Print(Temp:); gotoxy(0,1); Print(Humi:); error+=s_measure(unsigned char*)&temp_val.i,&checksum,temp); error+=s_measure(unsigned char*)&humi_val.i,&checksum,humi);

27、humi_val.f=(float)humi_val.i; temp_val.f=(float)temp_val.i; s_cala(&humi_val.f,&temp_val.f); error=0; zhuanhuan(temp_val.f*10); gotoxy(5,0); str4=0xdf; str5=0x43; str6=0; Print(str); zhuanhuan(humi_val.f*10); gotoxy(5,1); str5=%; str6=0; Print(str); gotoxy(12,0); /* zhuanhuan(Temp*10); Print(str); g

28、otoxy(12,1); zhuanhuan(Humi*10); Print(str);*/ alarm(temp_val.f,humi_val.f); delay(800); STH11.h#ifndef _sht11_h_ #define _sht11_h_ /*sht11控制程序*typedef union unsigned int i; float f;value;enumtemp,humi;sbit Data=P27;sbit sck=P26;/*相关宏定义*#define ack 1#define noack 0#define statusreg_w 0x06#define sta

29、tusreg_r 0x07#define measuretemp 0x03#define measurehumi 0x05#define reset 0x1e /*写一个字节*char s_writebyte(unsigned char value) unsigned char i,error=0; for(i=0x80;i0;i/=2) if(i&value) Data=1; else Data=0; sck=1; _nop_(); _nop_(); _nop_(); sck=0; Data=1; sck=1; error=Data; _nop_(); _nop_(); _nop_(); s

30、ck=0; Data=1; return error;/ *读一个字节*char s_readbyte(unsigned char ACK) unsigned char i,val=0; Data=1; for(i=0x80;i0;i/=2) sck=1; if(Data) val=(val|i); sck=0; if(ACK=1)Data=0; else Data=1; _nop_(); _nop_(); _nop_(); sck=1; _nop_(); _nop_(); _nop_(); sck=0; Data=1; return val;/ *转换开始*void s_transtart(

31、void)Data=1;sck=0;_nop_();sck=1;_nop_();Data=0;_nop_();sck=0;_nop_();_nop_();_nop_();sck=1;_nop_();Data=1;_nop_();sck=0;/ *复位前的准备*void s_preres(void) unsigned char i; Data=1; sck=0; for(i=0;i9;i+) sck=1; sck=0; s_transtart();/ *软复位*char s_softres(void) unsigned char error=0; s_preres(); error+=s_wri

32、tebyte(reset); return error;/ *读状态寄存器*char s_readstatusreg( unsigned char *p_value, unsigned char *p_checksum) unsigned char error=0; s_transtart(); error=s_writebyte(statusreg_r); *p_value=s_readbyte(ack); *p_checksum=s_readbyte(noack); return error;/*写状态寄存器*char s_writestatusreg(unsigned char *p_v

33、alue) unsigned char error=0; s_transtart(); error+=s_writebyte(statusreg_w); error+=s_writebyte(*p_value); return error;/*测量温湿度值*char s_measure(unsigned char *p_value, unsigned char *p_checksum,unsigned char mode) unsigned char error; unsigned int i; s_transtart(); switch(mode) case temp :error+=s_w

34、ritebyte(measuretemp);break; case humi :error+=s_writebyte(measurehumi);break; default:break; for(i=0;i100) rh_true=100; if(rh_true0;x-) for(y=125;y0;y-);/*写命令/数据*void lcd_write(bit style,unsigned char input) l1602a_rs=style; l1602a_rw=0; l1602a_data=input; delay(100); l1602a_e=1; delay(100); l1602a_e=0;/*设计显示位置*void gotoxy(unsigned char x,unsigned char y) if(y=0) lcd_write(0,0x80|x); if(y=1) lcd_write(0,0x80|(x-0x40);/*显示字符*void Print(unsigned char *str) while(*str!=0) lcd_write(1,*str); str+; /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论