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