1、完整word版基于单片机的环境温湿度检测系统1. 引言1.1 温室控制系统设计背景中国农业的发展必须走现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制.例如:空气的温度、湿度、二氧化碳含量、土壤的含水量等。在农业种植问题中,温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的。以蔬菜大棚为代表的现代农
2、业设施在现代化农业生产中发挥着巨大的作用.大棚内的温度和湿度参数,直接关系到蔬菜和水果的生长。国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件。而当今大多数对大棚温度、湿度的检测与控制都采用人工管理,这样不可避免的有测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。因此,为了实现高效农业生产的科学化并提高农业研究的准确性,推动我国农业的发展,必须大力发展农业设施与相应的农业工程,科学合理地调节大棚内温度、湿度,使大棚内形成有利于蔬菜,水果生长的环境
3、,是大棚蔬菜和水果早熟、优质、高效益的重要环节1。 影响作物生长发育的环境条件主要包括:温度、湿度、光照、CO2浓度、土壤等.所有这些环境条件之间是相互作用、相互联系、相互耦合的,某个控制变量发生改变,会影响其它控制变量的变化。作物的生长发育是所有这些环境条件综合作用的结果。温度和湿度一直是人类关注的对象,这两种环境因素时刻影响着人们的生产和生活,下面主要就温度和湿度对作物的影响进行简略说明。 (1)温度 温室内气温、地温对作物的光合作用、呼吸作用、根系的生长和水分、养分的吸收有着显著的影响,因此影响作物生长发育的环境条件中,以温度最为敏感,也最为重要,对温室环境控制的研究也是最先从温度控制开
4、始的。不同种类的作物对温度的要求是不同的,同一作物在不同发育阶段对温度的要求亦有所不同,而且在同一发育期阶段内对温度的要求也会随着昼夜变化而呈周期性地变化.一般说来在白天作物进行光合作用需要的温度较高,晚上维持呼吸作用所需的温度要低一些。 作物生长发育适宜的温度,随种类、品种、生育阶段及生理活动的变化而变化。为了增加光合产物的生成,抑制不必要的呼吸消耗,在一天中,随着光照强度的变化,实行变温管理是一种很有效的管理方法1。 (2)湿度 温室内作物对水分的要求体现为对温室内空气湿度和土壤湿度的要求。空气湿度用相对湿度来表示,因为相对湿度更能反应事实。根据有关研究记载,除了阴雨天以外,温室内午后过低
5、的空气湿度会导致作物发生光合作用的午休现象,因此空气相对湿度的大小直接影响到作物的光合作用,这时就需要增加温室内的空气湿度。当温室内的空气湿度较高时,可能会诱发一些病虫害.温室中空气湿度的管理包括增湿和降湿。 土壤湿度对作物的影响也很大。如果土壤中水分过剩,湿度过高,导致土壤中的氧气含量减少,作物根部呼吸困难,进而危害作物的生长发育。相反,当土壤中含水量减少时,作物根部吸收的水分就相应的减少,从而阻碍作物的生长,严重时作物出现萎蔫现象.不同的作物对湿度的要求不同,即使是同一种类在不同发育阶段对湿度的要求也不尽相同. 土壤湿度的管理就是把包括渗灌、滴灌、微灌等灌溉技术应用到温室中来.传统的大水漫
6、灌既浪费水资源,又容易使土壤发生板结,提高了室内湿度。在温室中应用渗灌技术具有灌水均匀,提高地温,保持土壤疏松,降低室内湿度,减轻病害发生,生育期提前等优点。 从很久以前人类就想出各种方法控制温度和湿度,以满足人们生产生活的需要。从古代人们通过扇子、雨伞、毛巾等试图去控制温度和湿度到今天高科技发展迅速的社会所发明出的各种工具,如风扇、空调、加热器等,表明人类一直努力去控制这两种和人类密切相关的环境因素。现代科技的发展,使得温度和湿度的控制更容易,更高效,特别是传感器和单片机的应用,使得温度和湿度控制系统性能有了根本性的提高,精度更高,而且实现了自动化2。 人们使用温度计、湿度计来采集温度和湿度
7、,通过人工操作加热、加湿、通风和降温设备来控制温湿度,这样不但控制精度低、实时性差,而且操作人员的劳动强度大。即使有些用户采用半导体二极管作温度传感器,但由于其互换性差,效果也不理想。在某些行业中对温湿度的要求较高,特别是在大型的电力系统中,由于温度过高或过低引起的元器件失效或由于环境湿度过高而引起的漏电事故时有发生。对电力系统的可靠运行造成影响,甚至危及到电力系统局部及操作人员的安全。为了避免这些故障,需要在电力设备柜体内安装控温、除湿设备。1。2 本设计的内容及意义1.2。1 本设计的主要内容 本设计以STC89C51单片机的温度、湿度测量和控制系统为核心来对温湿度进行实时巡检。单片机能独
8、立完成各自功能,同时能根据主控机的指令对温度进行定时采集。测量结果不仅能在本地显示,而且可以利用单片机的串行口和 RS232总线通信协议能把温室中的温度、湿度等参数及时上传至上位机,并与设定值进行比较,与设定值不符时采取相应的处理措施,以实现恒温恒湿环境。 在设计的过程中充分考虑到性价比和精度,在选用低价格、通用元件的的基础上,尽量满足设计要求,并使系统具有高的精度。本控制系统以单片机的控制为核心,实时监测环境的温度和湿度,并设定了这两个参数的上下限定值,并具有相应的报警系统,当超过设定的限定值时,单片机控制报警系统进行报警,而且同时驱动继电器打开相应的开关使相应的执行机构运行。当参数值恢复到
9、设定值范围内时,单片机控制执行机构停止运行。从而使环境的温湿度在一定的范围内得到控制。本设计主要内容包括以下几个方面:(1)掌握STC89C51单片机的主要功能和特性,以其为核心设计控制系统。(2)设计简单的人机对话接口系统,如键盘、显示、报警等.(3)利用RS232实现单片机与上位机的通信。(4)实现系统的可靠性和抗干扰性。(5)选择适合的传感器,设计相应的信号采集和处理电路。1.2.2本设计的意义 传统的方法,人们主要采用温度计、湿度计来采集温度值和湿度值,通过人工操作加热、加湿、通风和降温设备来控制温湿度。但是由于温度计、湿度计精度比较低,以及人工读数的人为因素等原因,温湿度检测不仅速度
10、慢,精度低,实时性差,而且操作人员的劳动强度大。随着科技的发展,采用各种传感器、模数转换器、报警器等组成的温湿度监测系统的出现,可对环境内的各个测点进行巡回检测,检测速度、精度有了一定的提高,降低了劳动强度,但由于所采用的传感器灵敏度比较低、稳定性比较差,致使检测精度、系统可靠性还不够理想,同时在农业生产和农业科研过程中的很多场合需要对上面提到的物理量进行精确的检测和控制。由于现在基本沿用人工的测控方法,这就不可避免的存在着劳动强度大、繁琐、测量精度低,并且由于检测报警不及时,给生产和科研工作造成了一定的损失2. 近年来,随着单片机功能的日益强大和计算机的广泛应用,人们对参数监测的准确性、稳定
11、性要求也越来越高。本设计就是针对此问题,设计相对精度高、性能稳定的、的温度湿度控制装置。该仪器可广泛应用于大棚、仓库、体育场等领域.2. 温室控制系统总体设计2。1 测控系统的设计要求 (1) 能够实时采集与显示室内环境温度、湿度等参数。主要参数的监测范围和检测精度如表2。1所示:表2.1 主要环境参数参数名检测范围检测精度温度30+500。5相对湿度10100RH3。0%RH (2) 能够根据每天各个阶段以及季节等的外部环境变化通过键盘输入改变对参数的设置,以满足不同的要求达到最佳效益; (3) 声音报警功能; (4) 根据检测到的信号,实时控制执行机构的开启与关断. (5) 自带+5 V和
12、+12 V直流稳压电源。2.2 设计目标本设计是基于STC89C51单片机的温湿度智能控制采集系统,主要完成一下主要任务: (1)选择STC89C51单片机,了解其基本特性和功能,使用STC89C51实现对温湿度的智能控制。 (2)使用温度传感器测量环境的温度,进行数据的采集并传送到单片机进行数据处理,实现范围为30+50温度采集和控制. (3)使用湿度传感器对现场环境湿度数据采集,由单片机进行数据处理和控制,实现范围为10%100%RH的湿度控制。 (4)采用串行总线RS-232实现单片机和上位机通讯. (5)设计人机对话接口,键盘、显示和报警系统。 (6)设计执行机构电路,使单片机能自动控
13、制执行机构工作。 使系统完成特定功能的同时,要保证系统的可靠性和稳定性,使系统能够长期稳定的工作。还要尽量实现系统的低成本、低功耗和高精度。2.3 测控系统的组成及控制原理本设计是以STC89C51单片机为核心的自动控制系统,硬件系统由键盘输入电路、LCD显示电路、传感器和A/D转换电路、和执行电路、报警电路等组成。硬件系统原理框图如图2。1所示:键盘输入温度传感器湿度传感器A/D转换MCUSTCT89C51LCD显示报警电路图2。1 测控系统硬件组成原理框图 传感器一般输出的为模拟量,需要通过A/D转换,转换为单片机能够接收的数字信号,若模拟信号太弱,还需经过运算放大器放大信号.键盘输入的是
14、系统参数的上、下限极限值,若检测到的信号值出现不在此极限区间的情况,单片机就会驱动蜂鸣器产生报警,此时就需要执行机构控制室内环境相应的改变,使得环境参数重新回到设定的理想区间.3. 硬件设计 硬件元器件的选择,必须考虑到功能的实现、器件的适时性、价格和通用性等几个方面。在电路的设计中,在实现所要求功能的基础上,尽量使电路简单。3.1 单片机的选择及其特性 计算机的产生加快了人类改造世界的步伐,但是它毕竟体积庞大。单片机(微控制器)就是在这种情况下诞生的.微控制器,亦称单片机或者单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(1/0)
15、等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。它的结构与指令功能都是按照工业控制的要求设计的,在智能控制系统中,微控制器得到了广泛的应用。 单片机目前己被广泛地应用于家电、医疗、仪器仪表、工业自动化、航空航天等领域。市场上比较流行的单片机种类主要有Intel公司、Atmel公司和Philip公司的8951系列单片机,Motorola公司的M6800系列单片机,Intel公司的MCS96系列单片机,Microchip公司的PIC系列单片机等。各个系列的单片机各有所长,在处理速度、稳定性、I/O能力、功耗、功能、价格等方面各有优劣。这些种类繁多的单片机家族,给我们单片机的选择也提供了
16、很大的余地。本设计选用STC89C51单片机,它是一种低功耗、低价格,高性能8位微处理器3。3。2 STC89C51系列单片机介绍 STC89C51 是美国ATMEL 公司生产的低电压,高性能CMOS 8 位单片机,片内含4k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,与标准MCS51 指令系统及8051产品引脚兼容,片内置通用8 位中央处理器(CPU)和Flash 存储单元,功能强大的STC89C51 单片机适合于许多较为复杂控制应用场合。3.2.1 STC89C51基本特
17、性STC89C51系列单片机主要性能参数如下:与MCS51产品指令和引脚完全兼容4k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作:0Hz24MHz三级加密程序存储器256字节内部RAM32个可编程I/O口线3个16位定时/计数器8个中断源可编程串行UART通道低功耗空闲和掉电模式。STC89C51 提供以下标准功能:4k字节Flash 闪速存储器,256字节内部RAM,32 个I/O 口线,3 个16 位定时/计数器,一个6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路.同时,STC89C52 可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方
18、式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 3.2.2 STC89C51单片机的内部组成结构STC89C51单片机的内部结构如图3.1所示:图3。1 STC89C51单片机的内部结构3。2。3 STC89C51的引脚功能引脚功能说明如图3。2:Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程
19、序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。图3.2 STC89C52单片机封装图P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与STC89C51 不同之处是,P1。0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1
20、。0/T2)和输入(P1。1/T2EX),参见表3。1.表3。1 引脚P1.0和P1。1的第二功能引脚号功能特性P1。0T2(定时计数器2外部计数脉冲输入),时钟输出P1。1T2EX(定时计数器2捕获重装载触发和方向控制Flash 编程和程序校验期间,P1 接收低8位地址.P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 在访问外部程序存储器或16 位地址的外部数据存储
21、器(例如执行MOVX DPTR 指令)时,P2口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。 P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低的P3口将用上拉电阻输出电流(IIL). P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3。2所示:表3。2 引脚P3口的第二功能端口引脚号第二功能P3.
22、0RXD(串行输入口)P3。1TXD(串行输出口)P3。2/INTO(外中断0)P3.3/INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3。6/WR(外部数据存储器写选通)P3。7/RD(外部数据存储器读选通)此外,P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位.ALE/PROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时
23、钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲.对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG). 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活.此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。此期间,当访问外部数据存储器,将跳过两次PSEN信号
24、.EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000HFFFFH),EA 端必须保持低电平(接地).需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端4。3.2.4 STC89C51的存储器 中断寄存器: STC89C51有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP
25、寄存器中6个中断源的每一个可定为2个优先级. 数据存储器: STC89C51有256个字节的内部RAM,80HFFH高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM还是访问特殊功能寄存器.如果指令是直接寻址方式则为访问特殊功能寄存器。例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2 口)地址单元。MOV 0A0H,data间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中
26、,R0 的内容为0A0H,则访问数据字节地址为0A0H,而不是P2口(0A0H)。MOV R0,data堆栈操作也是间接寻址方式,所以,高128 位数据RAM 亦可作为堆栈区使用。定时器0和定时器1:STC89C51的定时器0和定时器1的工作方式与STC89C51的相同.定时器2: 定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。波特率发生器:当T2CON中的TCLK 和RCL
27、K 置位时,定时/计数器2 作为波特率发生器使用.如果定时/计数器2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能.若RCLK 和TCLK 置位,则定时器2工作于波特率发生器方式。 波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16位数值重新装载,该数值由软件设置。中断:STC89C51 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断.这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止.IE 也有一个
28、总禁止位EA,它能控制所有中断的允许或禁止。定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志5。STC89C51的直流参数有一定的温度适用范围,见表3.3: 表3。3 T=40+85 和 Vcc=5.0V2
29、0下的直流参数符号参数条件最小值最大值单位输入低电压(Except EA)-0.50.2VCC-0.1V输入低电压-0。50.2VCC-0.3V输入高电压(Except XTAL1,RST)0。2VCC+0.9VCC+0。5V输入高电压(XTAL,RST)0.7VCCVCC+0.5V输出低电压(P1,2,3)I=1。6mA0。45V输出低电压(P0,ALE/PSEN)I=32mA0。45V输出高电压I=-25uA0。75VCCV输出高电压I=-300uA0。75VCCV逻辑0输入电流(P1,2,3)V=0。45V-50uA逻辑1到0转换电流(P1,2,3)V=2V650uARST复位下拉电阻5
30、0300K引脚电容1MHz,pF消耗电流Active Mode,12MHz25mAFlash存储器的编程:STC89C51单片机内部有4k字节的Flash PEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。STC89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息,见表3.4。表3。4 顶面标记及签名字节Vpp=1
31、2VVpp=5V顶面标记AT89C52XxxxyywwAT89C52xxxx5yyww签名字节(030H)=1EH(031H)=52H(032H)=FFH(030H)=1EH(031H)=52H(032H)=05H STC89C51的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。图3.5 STC89C51编程电路程程序序校验:如果加密位LB1、LB2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图3.5的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。编程方法:(1)在地址
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1