基于单片机仓库温湿度的监测系统设计_第1页
基于单片机仓库温湿度的监测系统设计_第2页
基于单片机仓库温湿度的监测系统设计_第3页
基于单片机仓库温湿度的监测系统设计_第4页
基于单片机仓库温湿度的监测系统设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

内容提要\o"分享到新浪微博"\o"分享到QQ空间":储粮过程中,外界温湿度会对储粮产生很大的影响,为降低储粮过程中由于粮情监测不当而引起的储粮霉变,本课题研究了一种以单片机为核心的温湿监测系统。首先,使用SHT11传感器对粮仓中的温度和湿度进行检测,然后由AT89S52单片机对其进行了分析和处理。在所收集到的温度和湿度超出预定值时,单片机就会发送一个控制信号,使温度和湿度达到一个预定值,然后在温湿度超出一个报警阀值时,就会自动启动一个蜂鸣器警报。系该系统的硬件和软件都按照模块化方式进行设计。该系统的硬件部分主要有:蜂鸣器报警电路、继电器输出电路、最小系统电路、液晶屏显示电路、传感器测量电路。软件部分有温湿度显示子程序、温湿度读取子程序、主程序模块、温湿度上下限调整子程序、温湿度异常处理子程序。采用Protues软件实现了硬件电路的设计,采用Keil软件对其进行了模块化的编程,再结合二者进行了可视化仿真。经过测试分析,该系统能够满足提出的功能要求和技术指标,也可推广至其他对温湿度有较高要求的场所。关键词:温湿度;单片机;SHT11;自动控制;模块化Abstract:Whenfoodisstoredinawarehouse,theambienttemperatureandhumiditywillaffectit.Inordertoreducethegraindegradationcausedbypoorregulation,asmallgraintemperatureandhumiditymonitoringsystembasedonunitwasdesigned.ThesystemfirstusesSHT11graintemperatureandhumiditysensor,whichusesAT89S252unittodisplaythecurrentvalue.Whenthedefaultvalueisexceeded,asingledevicecontrolsignalisusedtocollecttemperatureandhumidity.Ifthetemperatureandhumidityexceedthemodulardesignmethodofthesystemusinghardwareandsoftware.Thehardwarecircuitmainlyincludesminimumsystemcircuit,sensor,LCDdisplaycircuit,soundalarmcircuitandrelayoutputinterface.Softwaredesignincludesmainprogrammingmodule,temperatureandhumiditydisplaysubroutine,temperatureandhumiditydeviationprocessingandtemperatureandhumiditycontrol.UseProustsoftwaretodesignhardwarestrategy,useKeilsoftwaretomodularizeit,andthencombineitwithvisualsimulation.Testattujaanalysoitujärjestelmävastaaesitettyjätoiminnallisiavaatimuksiajateknisiävaatimuksia.Sevoidaanmyöslaajentaamuihinlämpötila-jakosteusvaatimuksiin.KEYWORDS:SHT11;Automaticcontrol;modul;Temperatureandhumidity;Singlechipmicrocomputer目录TOC\o"1-2"\h\u26080基于单片机仓库温湿度的监测系统设计 (四)主要元器件选型在选择元器件时,应注意如下几个问题:(1)可以达到系统的性能需求,选择的元件在准确性和稳定性上要符合粮仓的实际情况。(2)在符合技术要求的前提下,优先选择具有高价格比的元件,以减少生产成本。(3)所选用的元器件应具备一定的互换性,并尽可能地选用已被广泛应用的元件,以减少开发的风险。(4)各元器件之间的连接应尽量简化,以提高系统的抗干扰能力与稳定性。1、单片机在选用单片机的时候,首先要看它是否能够完全符合功能需求和技术规范,而作为温度、湿度监测系统的核心,单片机与温湿度传感器之间不仅要传递数据,还要对数据信息进行分析、处理,所以,为了确保系统的实时性,必须对MCU的控制速率和准确性提出一些要求。此外,还应考虑到周边设备的接线问题,如:输入、输出端口的数目是否符合系统的需要,以及是否能够对周边设备进行正常的驱动。其次,从软件的角度来看,对内存的需求,与之配套的开发工具是否完备,编写软件的难度是否高。另外,还有一个问题,那就是它的性价比高,货源充足。AT89S52系列单片机是由爱特梅尔公司以MCS-51芯片为基础,并结合本公司的技术特点,研制而成的一种具有较高性能的单片机。该芯片通过了高标准的环境测试,可以在恶劣的环境下运行,因而被广泛应用于各种电子系统。由于该系统在比较恶劣的粮仓环境下也可以很好的满足需要,因此经过充分的考虑,选用AT89S52单片机为核心。它的主要功能特征列于表2-1中:表2-1AT89S52主要功能特性 主要功能特性8位字长中央处理器工作电压4~5.5V8KB的系统内可编程FlashROM全静态工作频率:0~33MHz256字节内部RAM全双工串行口通道兼容80C51指令系统和引脚低功耗和省电模式定时监视器(看门狗)8个中断源2个数据寄存器指针三级加密位3个16位定时/计数器32位可编程I/O口AT89S52配备了40个引脚,这些引脚的图示可以在图2-3中找到,并使用了双列直插式的封装方式REF_Ref21069\r\h[6],以下是各个引脚的功能介绍:图2-3AT89S52引脚图(1)主电源引脚VCC(40脚)是一个供电端子,其供电电压范围是4.0~5V;GND(20脚)是用于接地的端口。(2)晶振引脚XTAL1(19脚)和XTAL2(18脚)是晶振的引脚。当它们使用内部时钟时,可以在这两个引脚之间连接一个石英晶体振荡器。接着,这两个引脚分别连接一个微调电容并接地,从而产生所需的时钟信号。在利用外部时钟进行操作时,系统会从XTAL1端口进行输入,导致XTAL2的引脚处于悬空状态REF_Ref12744\r\h[7]。(3)复位引脚RESET(9脚)作为单片机的复位引脚,必须连续输入两个或更多的机器周期的高电平信号,这样单片机才能恢复到其初始状态。初始状态即:单片机的程序计数器和特殊功能寄存器全部置0,所有的输入输出引脚置1REF_Ref16424\r\h[8]。(4)输入/输出引脚AT89S52共有4个8位的输入/输出端口,它们是P0口(39~32脚)、P1口(1脚~8脚)、P2口(21脚~28脚)以及P3口(10脚~17脚)。各引脚可以独立地输入和输出,还可以结合使用实现同步的输入和输出。而P3端口引脚则具有第二种作用[9],如表2-2所示,对其进行了更多的说明。表2-2P3引脚第二功能P3引脚 第二功能信号第二功能P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0P3.3INT1外部中断1P3.4T0定时器0输入P3.5T1定时器1输入P3.6外部RAM写选通P3.7外部RAM读选通2、温湿度传感器在温湿度探测方面,前期受技术条件的制约,无法实现温湿度同步测量,且周边电路需进行复杂的信号调理、校准、校准等环节,且测试精度难以得到保障。SHT11将传感技术与CMOS技术相结合,在芯片中加入了二线串行接口、冗余校验寄存器、模/数转换器、信号放大器等设备,能够将温湿度数字量直接输出,极大地降低了周边的硬件电路。它具有免标定、自校准、数字输出、无需调理,使用非常方便。还加强了芯片的传感器的信号强度,从而改善了整体的抗干扰能力,能够确保长时间的使用。同时,为了确保同一传感器的功能的互换性与一致性,在芯片上很少有标定数据。SHT11的工作电压为:2.4V~5.5V;温度精度:±0.4;湿度精度:±3%RH;这两种方案都可以达到该系统的设计要求REF_Ref21333\r\h[10];SHT11是一种与单片机相连的电路,它仅需要把4根引脚连在一起,即第1引脚(GND)接地,第4引脚VDD接电源,第2引脚(DATA)串行数据,第3引脚SCK时钟输入。其它NC引脚(NotConnected)意味着未连接。图2-4为SHT11传感器引脚图。图2-4SHT11传感器引脚图3、液晶显示屏基于单片机的嵌入式系统通常采用液晶显示屏、LED、数码管作为显示器件REF_Ref21405\r\h[10]。一般情况下,一个数字管是7到8个发光二极管,它可以显示英文、汉字,甚至是图片。液晶显示器的英文名称是LiquidCrystalDisplay,一般简称LCD。它以其体积小、功耗低、质量轻等优点,被广泛地用于计算器和电子仪器等测试设备中,并逐步发展为各类嵌入式电子设备的理想显示器。LCD一般分为字符显示屏、点阵图形显示屏、段位显示屏。在这些当中,字符式LCD因其价格低廉、使用简便、外观美观、显示内容广泛等优势,逐渐替代了一般的数字显像管。而在本系统中使用的LCD1602是一种字符式液晶显示器,它是一种用于显示文字、数字和某些特定的符号的液晶显示器,它的显示范围仅限于两条线,每行可以容纳16个地址,这个芯片中的字符数足以将本系统的温湿度值显示出来。在显示温湿度界面上,将所检测到的温度以“Temp:”的英文缩写形式显示在第一行,同时将所检测到的湿度以“Humi:”的英文缩写形式显示在第二行。在按键输入调节温湿度范围的情况下,“H”被表示为上限,而“L”则被表示为下限。LCD1602的主要特征包括:1.显示能力为16个字符×2行;2.正常操作电压范围为4.5至5伏特,最佳电压为5伏特;3.字符尺寸为2.95×4.35(宽×高)mmREF_Ref5624\r\h[10]。选用典型16引脚LCD1602,并配有背景光,如有需要,可调节显示器的亮度。每个引脚的描述见表2-3:表2-31602字符型LCD引脚引脚编号符号说明引脚编号符号说明1VSS电源地9DB2数据总线22VDD电源正极10DB3数据总线33VL液晶显示偏压信号11DB4数据总线44RS数据/指令寄存器选择(H/L)12DB5数据总线55R/W读/写选择(H/L)13DB6数据总线66E使能信号14DB7数据总线77DB0数据总线015BLA背光电源线8DB1数据总线116BLK背光地线4、温湿度调节设备固态继电器是一种能够按照一定的输入信号进行工作,其灵敏度非常高,它可以通过使用较少的电量和较小的电流作为输入信号,直接对大功率执行机构进行驱动,与数字逻辑电路相兼容,可以发挥出更多的功能。该继电器无电火花,无机械损耗,抗潮湿,抗霉性能好,使用更可靠、更安全。在家用电器、医疗设备、仪表、照明系统等领域有着广泛的应用前景。本论文利用固态继电器的诸多优势,对库房温湿度监测系统进行了研究,采用施耐德公司生产的交流固体继电器SSR作为主控元件,对温度、湿度进行控制REF_Ref6786\r\h[11]。在该系统中,可以使用继电器来反应温度和湿度,在温湿度超出预设值时,由单片机进行分析判定,并输出一个低电平,从而使三极管接通,从而使继电器工作,接通对应的装置,启动增湿、除湿、降温、加热,若温湿度恢复到设定范围,则停止输出电平信号,使继电器断开。谷物的储存环境一般都需要较低的温度和湿度,所以该系统的作用是对粮仓内部进行降温除湿,以避免霉变和腐败。同时,对谷物的加热和增湿,也是以保存谷物的原有质量为目的。粮仓的加热可采用热风或灯光进行,本课题使用了铝箔玻璃纤维加热片,加热均匀,节能省电,价格低廉,易于安装,既能对粮仓进行加热干燥,又能防霉防潮防寒。另外,还可以将一些耐热的作物,比如小麦,加热到一定的温度,就可以将这些不耐热的害虫给消灭掉。冷却使用的是一台蒸发冷风机,它可以起到换气、加湿、除尘、通风、降温的功能,它的主体结构是电机与水帘,它利用水分的蒸发吸热来带走热量,与常规的空调相比,它的耗电量可以达到8/7,是一种新型的节能、环保的设备。除湿机用于除湿,占地10-20平米,用于吸附和排出库房内的湿气,使仓库保持干燥。加湿使用增湿器,适当提高仓容湿度,改善谷物质量。三、系统硬件电路设计(一)硬件电路设计原则与硬件开发环境元器件选定后,就是要按照元器件的引脚作用,对其进行硬件设计,使其与周边设备构成一个整体。在设计硬件电路时,应从两个方面进行考虑。首先要考虑对单片机的扩展,单片机的界面数量有限,外设驱动能力弱,内存容量小,很难适应一个复杂的系统。其次是对端口进行配置,按照需要对各个模块进行分区。扩展和配置系统应符合下列条件:(1)尽可能地使用某些典型电路外围,降低错误率,实现系统的规范化。(2)在进行硬件电路设计的时候,一定要将软件设计的实施过程也纳入其中,学习如何利用硬件软件化等方式来增强系统的可靠性,降低硬件的费用。(3)在硬件方面,采用了电容滤波器,提高了系统的抗干扰能力。(4)考虑单片机对负载的驱动及与周边设备性能的匹配。Protues是目前嵌入式系统设计领域使用最为广泛,功能最为全面的仿真开发平台之一,其数据库包含有例如PIC、8051、AVR这些主流单片机模块。Proteus不但可以用于电子电路原理图的设计,还可以对单片机外围电路或其他无单片机参与的电路进行仿真REF_Ref30512\r\h[12]。将原理图画在Proteus上,写进Keil编译完成的代码文件里,就可以看到Proteus上仿真工作状态及工作过程了REF_Ref22515\r\h[13]。采用软件技术突破了传统的单片机应用系统设计的局限。即使没有实体的硬件设备,也可以通过保护程序和KeilmuVision5来实现对MCU应用系统的实时仿真和开发,从而大大减少了实际应用系统的开发时间,同时还可以减少系统的开发费用REF_Ref32546\r\h[14]。(二)硬件电路该系统的硬件电路有:LCD显示电路、单片机最小系统电路、报警电路、传感器数据采集电路、温湿度调节电路、按键输入电路。1、单片机最小系统电路单片机最小系统是由一个最简单的电路构成,它能使一个单片机正确地执行一个程序指令。下面是一些基本的情况:(1)电源:驱动电子电路工作正常,所选AT89S52需5V电源,因此40脚连接加5V,20脚接地。在完整单片机应用系统下,为避免模块间的互相干扰,可以采用分模块供电方式。(2):接通一个高电平,指示在这个时候,程序内存指令被执行。(3)振荡电路:它给单片机提供了一系列幅值和频率都比较稳定的脉冲,利用这一系列的脉冲,使系统的各个部分保持同步。AT89S52的18、19引脚是晶体振荡器的引脚,它所连接的是11.0592MHz的晶体振荡器,它还需要另外两个30pF的电容,以确保晶振的振动,保持振荡信号的稳定性REF_Ref10692\r\h[15]。(4)复位电路:作为一个辅助电路,用于从外部重新启动单片机,它可以在单片机启动时自动完成复位,或者在单片机死机或程序飞走时,手动复位并重新启动REF_Ref12628\r\h[16]。大部分的RC充放电路是由电容和电阻构建的,在其上电的过程中,单片机的复位端口会产生一个数十毫秒的复位电平。图3-1展示了最小系统的电路设计。图3-1最小系统电路图2、传感器数据采集电路该系统采用SHT11温湿度传感器来收集温湿度数据,并通过I2C界面与单片机进行连接,数据传输需要两个引脚来完成。将两只脚(DATA)连接到P2.4上,并将三只脚(SCK)连接到P2.3上,作为数据和时钟的传输线。此外,有1只脚是接地的,而4只脚连接了2.4至5.5V的电源。图3-2展示了单片机与SHT11硬件连接图。图3-2单片机与SHT11硬件连接图3、液晶显示电路LCD1602液晶模块负责将温湿度传感器收集到的数据转换为可以直观查看的数据格式。从之前的单片机描述来看,P0口并没有内置的上拉电阻,因此无法输出高电平,所以需要连接外部的上拉电阻。在P2口的P2.5、P2.6、P2.7上分别连接RS、RW、E引脚。请将VDD引脚连接到电源,并确保VSS与VEE引脚都接地。我们选择了RESPACK-8排阻作为上拉的电阻,并连接到P0界面。图3-3展示了LCD1602液晶显示电路。图3-3LCD1602液晶显示电路4、报警电路根据蜂鸣器内部是否存在振荡源,蜂鸣器可以被分类为有源蜂鸣器和无源蜂鸣器[17]。这套系统采用了低成本的无源蜂鸣器,它不仅可以调整声音的频率,还可以通过改变输入信号的占空比来调整声音的强度。单片机产生的电流非常微小,仅为几十毫安,这使得直接驱动蜂鸣器变得困难。所以,为了控制三极管的导通和截止,需要添加一个NPN三极管,将单片机的引脚P1.4连接到三极管的基极。这样,单片机只需输出一个较小的电流,就可以控制集电极到发射极的大电流,然后使用放大的电流来驱动蜂鸣器。经过仔细研究电路设计指南,我们确定了限流电阻为200欧姆。图3-4展示了一个报警电路。图3-4报警电路5、按键电路按键部通过单片机对与按键相连的界面状态进行读取,并在主循环中持续地检测其端口电平,从而确定键控键有没有被按下,并用于设定系统参数。在微处理系统中,经常使用按键作为命令输入和数据输入,以及设置某些人为参数。在该系统中,需要对温湿度界面进行切换,并增减限制值,为降低硬件损耗,可通过软件编程来完成一次多功能,所以仅需要使用3个单独的按键,把按键S0、S1、S2分别接到P1.5、P1.6、P1.7引脚,因为使用按键配置较低,所以外接上拉电阻阻值取较低值。参考电路设计说明书,上拉阻电阻的阻值为200欧姆。图3-5中所示为按键的电路。在设定了湿度和温度的范围后,键S0和LCD显示出温度和湿度的最小设置,在S0被按压的情况下,可以先设定最大的温度,按下按键S1使最高温度设置降低,按下按键S2使最高温度设置降低,按下按键S2使最高温度设置升高。再按压该键S0,可设定最低温度,再一次按压,则转换至最大湿度设置,直至返回至温湿度获取显示页。图3-5按键电路6、温湿度调节电路温湿度监控系统不仅具备监测环境温湿度和设定温湿度上下限的两项主要功能,还需根据不同的越线温湿度状况做出相应的调整和处理。存在四种主要的情形:温度低于其最低点,温度高于其最高点,湿度低于其最低点,而湿度则高于其最高点。面对这四种场景,我们选择了最基础的控制策略,并使用四个固态继电器来分别操控加湿器、除湿器、冷风机、加热片。鉴于单片机的输出驱动能力相对较弱,直接操控固态继电器变得困难,因此选择使用PNP三极管来增强单片机的输出电流。单片机的P1端口被用来驱动继电器,并与PNP三极管的基极连接,而控制设备则连接到继电器的常规触点上。当超出设定的上下限,相应的端口被设置为低电平状态,这时三极管开始导通,驱动继电器启动,常开触点闭合,电路也随之导通,相应的设备便开始运行。通过在三极管电路上并联LED指示灯,并加入限流电阻,我们能够更为清晰地观察到设备的运行状态。(三)电路原理总图组合各模块,便构造出一个完整的应用系统。在Protues平台上,我们采用标号连线的方法,给不同引脚标注相同的符号,象征两个引脚间的连接关系,这样一来就不必把整个电路都连接到单片机引脚上。此种设计方式符合模块化设计思想,不仅电路设计清晰而且易于理解。图3-6给出了总电路的原理图。图3-6电路原理总图四、系统软件设计(一)编程语言的选择及编程软件在以单片机作为核心的嵌入式系统中,通常会采用汇编语言和C语言进行软件开发。汇编语言写的代码往往简短,执行速度快,并可以直观地对硬件进行操作,但同时也要求开发者必须详细了解单片机的硬件结构,否则会很难理解复杂的汇编语言程序。另一方面,随着计算机技术的不断成熟,使用C语言来编写单片机应用系统的程序已经成为了主流,在单片机应用系统的开发中,C语言编程已成为主流REF_Ref15117\r\h[18]。C语言具有很强的方便性和灵活性,可以将已有的模块程序移植过来,而无需对MCU的硬件有很深的理解,就可以直接操作硬件。而且,它还可以通过模块化的方式来实现,这样,一个功能模块就能完成一种功能,这就极大地提高了开发的速度。C51编译器是一种符合行业规范、通用于MCU的C语言程序开发工具。该系统支持多种8051系列MCU,具备中断点仿真、内存可视化仿真及汇编等多种功能。通过对程序进行编译,可以观察到特定的警告和错误信息,并能显示出程序中的语法错误。在保持汇编器高效快速的特点的基础上,实现了对目标程序的高效、高效的自动生成。所以选用了KeilC51作为系统的软件设计工具REF_Ref22313\r\h[19]。该系统的主要工作是在KeilC51开发环境下,使用C语言来编写源程序,对已写好的源程序进行编译处理,再把产生的HEX写到MCU中以供调试与仿真。(二)主程序模块该系统的编程方式是按照“化整为零”的方式来进行的,根据不同的功能模块,分别编写相应的模块,然后按照顺序进行各模块的调试仿真,当仿真软件的调试无误之后,再由主程序来调用各个功能模块。按照所需完成的功能,将该程序分为:温湿度异常处理程序、上下限温湿度阀值调整子程序、温湿度读取子程序、温湿度显示子程序。在主程序中,首先要给某些参数赋初始值,其中包含了软件初始设定的湿度、温度的极值。贮粮时,贮粮环境水分越小、气温越低,越有利于贮粮。因此,该系统的初始温度设定为25℃、最低5℃、最大相对湿度25%、最低湿度5%。接着,对LCD1602和SHT11进行初始化,进入while主循环,检查有无“设置”键,若未按下,启动温度和湿度探测功能,并对所探测到的数据进行处理和对比,若不在所述范围之内,就进行相应的处理;当“设置”按钮被按下时,就会出现一个修改初始默认值的功能,从而改变初始的默认值;修改完成后,点击“设置”,回到温度和湿度的显示界面。图4-1显示了主程序流程图。图4-1主程序流程图(三)温湿度显示子程序LCD1602显示字符时,首先要注意三个问题:(1)字符产生:当程序仅需要定义要显示的常数,就会在编译后产生一种标准ASCII码,当写到LCD上时,可以在ROM中找到相应的字符库,然后再将其显示出来。(2)显示模式的初始化设置:按需要调整文字与光标的显示效果。(3)确定预显示字符位置:显示的区域涵盖了从第一行的00H至0FH的十六个地址,以及第二行的40H至4FH的十六个地址。在编程过程中,只有在预显示位置地址上加上80H,才能得到预显示位置的指令代码。该系统的显示模式如下:在检测界面上,第一行的第一列开始展示一个类似“Temp:023.0C”的温度提示,而第二行的第一列则开始展示一个类似“Humi:018.6%RH”的湿度提示;在按键输入的界面上,第一行的显示是“Temp:H:20CL:10C”,而第二行的显示则是“Humi:H:20%L:10%”。显示模式设置:按显示模式指令表写入如下设置指令:“38H”指定显示的字符个数及数据传输界面的个数;“06H”使光标向右移动了1位,也就是地址+1;“06H”表示打开显示器,但不显示光标;“01H”清屏当前画面。每写入一条指令前,首先要检查LCD忙不忙,LCD忙标志位BF连接D7口线,该系统连接单片机P0.7引脚。当发现P0.7的引脚电平是低电平“0”时,则说明LCD不忙,并执行写入命令;当发现P0.7的引脚电平是高电平“1”时,则说明LCD在忙着并一直等着。LCD驱动程序流程图如图4-2所示。图4-2LCD1602驱动程序流程图LCD显示子程序首先根据流程图定义了“lcd_init()”初始化函数;然后定义了“check_busy()”检测忙函数、“lcd_write_com(com)”写地址函数、“lcd_write_date(date)”写数据函数。基于这些基本函数,就可编写单个字符显示函数lcd_write_char(add,dat)及字符串显示函数lcd_write_str(add,*dat)。(四)温湿度读取子程序图4-3为SHT11工作时序图。使SHT11执行数据采集过程如下:启动、写入控制字、读出测量结果。图4-3SHT11工作时序图(1)启动传输从时序图上看,传感器SHT11的起动方法是在SCK值1时控制单片机把DATA端口电平从高到低,SCK通过一个循环,然后把DATA端口电平从低到高。运行结束后传感器启动测量。所以在SHT11子程序中需要定义一个启动函数transstart()来启动传输,如图4-4所示。图4-4启动函数程序(2)SHT11连接复位当单片机启动时,它首先会控制DATA数据线发送一个8位的测量指令,其中前三位代表固定的地址码000,而后五位则是命令的代码。表4-1展示了SHT11的命令代码。表4-1SHT11命令代码命令地址码命令代码温度测量00000011湿度测量00000101读状态寄存器00000111写状态寄存器00000110在发送了8位数据之后,在SCK的第9个上升边缘前,将DATA线降低,这意味着传感器已经接到了测量的指令REF_Ref22855\r\h[20]。在完成第九个时钟后,传感器开始进行测量工作。所以,在这个程序里,我们设置了一个名为s_connectionreset()的连接复位函数。图4-5复位函数程序(3)读出测量结果每当读取一个字节时,单片机需要将DATA电平拉至较低的位置,以确保成功接收到该字节。(五)温湿度异常处理子程序首先对SHT11温湿度传感器进行初始化,然后读取相应的温湿度读数,最后执行判读操作。在环境温度超过预定的最大温度25°C的情况下,继电器1会自动关闭,而冷风机则开始工作。若环境温度持续上升,超过了设定的最大温度5°C,蜂鸣器会每隔600ms发出警报;在环境温度低于预定的最小温度10°C的情况下,继电器2会自动关闭,而加热片则开始工作。如果环境温度继续下降至预设的最低温度5°C以下,蜂鸣器将每600ms发出警报;当环境湿度大于预设湿度最大值25%RH时,继电器3闭合,除湿器工作,若环境湿度继续升高,高于预设最高湿度值5%RH时,蜂鸣器每间隔600ms报警;在环境湿度低于预定的最低湿度5%RH的情况下,继电器4会自动关闭,而加湿器则开始工作。若环境湿度持续下降至低于设定的最低湿度5%RH,蜂鸣器将每600ms发出警报;详细的操作步骤请参考图4-6:图4-6温湿度异常处理子程序流程图在程序中设置了延迟函数delay,使用for语句来实现系统延时,对于本系统中使用的无源蜂鸣器,只要在与其相连的MCU端口上设置“1”、“0”以及延时,就能生成高、低电平的方波,从而使蜂鸣器振荡并发出声音;由于该系统中使用的各个键在断开与闭合过程中可能产生的接触抖动,还可以利用延迟函数进行软件去消抖;在LCD1602上初始化设定时,通过延迟来保证初始化成功。所以,延迟函数被单独的模块调用。(六)温湿度上下限调整子程序启动键,当探测到“设置”键S0被按下时,进入一个修改温湿度预置方式,第一个设定值是最大的温度,这个模式用“加”S1、“减”S2来调整最高和最低温度,再按“设置”键S0,设定最低温度,再按一次设定键,设定最大湿度,再按一次设定键,设定最大湿度,接着设定最低湿度。再一次点击“设置”键,将返回温、湿度显示界面。图4-7温湿度上下限调整子程序流程图。图4-7温湿度上下限调整子程序流程图五、系统调试与分析在完成了软硬件设计之后,首先对硬件电路的连接进行了检查,确定了其可行性之后,再对显示温湿度子程序、主程序、温湿度异常处理程序、上限温湿度阀值调节子程序、读出温湿度子程序进行编译并调试,以检验各个模块是否符合系统的功能需求及技术标准,如果功能符合,则需要对软件进行调试和重新测试,以提高系统的性能。(一)温湿度偏差分析写好了软件,然后用KEIL对其进行了编辑,确认无误后,就会把电路打开,然后双击AT89S52,就会弹出一个如图5-1所示的界面,在这里,你可以把该软件编译出来的HEX文件写进去,然后进行可视化仿真。图5-1单片机程序写入图在温、湿度都在设定范围之内时,通过调整Protues中的SHT11元件上的“↑”、“↓”,即可对储粮区的温湿状况进行仿真,从而得到如图5-2所示的显示界面。图5-2温湿度变化仿真图观察结果显示,温湿度调节设备的相应指示灯并未亮起,继电器也未启动,蜂鸣器也没有发出声音,仿真的环境湿度设置为19%RH,温度设置为18°C。液晶显示屏的温度设置为18.1°C,而湿度则是19.5%RH。温度的误差范围是0.1°C,而湿度的误差范围是0.5%。该系统规定温度的精确度应低于1°C,而湿度的精确度则应低于+5%RH。在多次调整SHT11以仿真粮仓环境的温湿度变化后,显示出的温湿度数据也相应地发生了变化,从而满足了系统误差的要求,并成功地通过了测试。(二)按键输入功能调试点击“设置”按键,观测LCD屏幕从普通的温度和湿度显示界面,转换为如图5-3所示的设置界面。图5-3温湿度设置界面显示屏的首行显示“Temp:H:20CL:10C”,这表示我们能观察到的温度范围,即最高温度为20℃,最低温度为10℃。在下一行,“Humi:H:20%L:10%”,显示的是相对湿度的范围,即最高相对湿度为20%RH,最低相对湿度为10%RH。通过按“设置”键,我们可以开始调整这些参数。按下“设置”键第一次,我们可以通过“加”和“减”键来更改温度的上限。再按一次“设置”键,我们会切换到温度的下限值,也可以通过“加”和“减”键进行修改。第三次按下“设置”键,我们开始修改湿度的上限值。第四次按下“设置”键,我们可以修改湿度的下限值。第五次按下“设置”键后,我们就返回到温湿度显示界面,以查看已做出的所有更改。(三)自动控制功能调试在调节SHT11传感器以仿真粮仓温湿度变化的过程中,首先需要将温度和湿度均调节到超过其上限值,但小于报警阈值。在完成这一步骤后,可以通过图5-4所示的界面进行观测。图5-4温湿度超上限可以观察到蜂鸣器没有发出警报,但是代表除湿的黄色指示灯和代表冷却的绿色指示灯都亮了起来,同时,对除湿机和致冷器进行控制的继电器也同时工作,表明该设备已经被激活。接着,将温度和湿度设置为低于下限,也没有超出警报门限,观测界面显示为图5-5,代表潮湿的蓝灯和代表升温的红灯都亮了起来,同时,对加热片与加湿机进行控制的继电器也都正常工作。通过试验表明,该保护装置能够实时响应超限温度和湿度,达到了系统的设计要求。图5-5温湿度超下限(四)报警功能调试初始温度和湿度设置为10-20℃,相对湿度为10%-20%。报警阈值的设置为小于最小设定值5个,大于最大设定值5个。也就是湿度低于5%、温度低于5℃、湿度高于25%、温度高于25℃的情况下,蜂鸣器发出警报。图5-6、5-7、5-8、5-9为四种情况。图5-6温度小于5℃图5-7湿度小于5%RH图5-8温度大于25℃图5-9湿度大于25%RH能够观察到,在超出报警阈值时,LCD屏幕上的温度、湿度均能正常显示,而对应的继电器则会启动常开触头,接通温湿度调整装置回路,从而启动装置的运行。与此同时,还能听见蜂鸣器发出哔哔的警报声,这意味着现在的湿度和温度都超出了设置的范围,这是靠设备自己很难调整的,必须要有人的参与。六、总结与展望本文重点研究了小型粮仓的温湿度监控系统的设计,首先,深入研究了温湿度控制系统的架构以及主要元件的选用。其中,详细阐述了LCD1602显示屏、SHT11传感器、AT89S52单片机的技术指标与功能特性,这些元件在实现粮仓温湿度监控系统中起到了关键作用。在此基础上,根据各功能模块进行了硬件电路的设计和子程序的编写,为了提高系统的可靠性和实用性,整个系统设计过程中都遵循着一定的规范。同时,不论从硬件电路设计、软件编程,还是系统功能测试,都采用模块化的设计思想,大大提高了系统的可维护性。通过试验,该系统可以实现自动控制、报警、温度显示、按键输入等多种功能。随着通信、传感器技术的不断进步,检测精度不断提高,监测也变得更加智能化和便捷。该系统是为农户搭建的小型粮仓而设计的,由于粮仓面积小,对温度、湿度的实时要求不高,所以使用了一种简单的单片机和硬件界面,并进行了简单的比对控制。若进一步扩展到对温、湿度要求更高时,则可以利用PID算法

温馨提示

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

评论

0/150

提交评论