基于单片机的温湿度控制系统设计有代码.docx
《基于单片机的温湿度控制系统设计有代码.docx》由会员分享,可在线阅读,更多相关《基于单片机的温湿度控制系统设计有代码.docx(53页珍藏版)》请在冰豆网上搜索。
![基于单片机的温湿度控制系统设计有代码.docx](https://file1.bdocx.com/fileroot1/2023-1/10/3ed34421-7d8e-4195-a3f0-f2bd8c2ccfda/3ed34421-7d8e-4195-a3f0-f2bd8c2ccfda1.gif)
基于单片机的温湿度控制系统设计有代码
基于单片机的温湿度控制系统
基于单片机的温湿度控制系统设计
摘要
本文利用8051单片机设计一个温室的温湿度控制系统,对给定的温湿度进行控制并实时显示,其中温湿度信号各有四路,系统采用一定的算法对信号处理以确定采取某种控制手段,在本系统中采用温度优先模式,循环处理。
关键字:
89C518729键盘显示LCD显示ADC0809
1、绪论
1.1课题背景
改革开放以来,人们对生活质量要求显著提高,对美丽的植被和花卉的需求量也急剧上升,这对以种植植被为生计的园林工人是一个机遇,同时也对传统的手工植被种植是一个挑战,而基于单片机的温湿度控制系统对解决这些问题有着非常重大的意义。
前种植植被一般都用温室栽培,为了充分的利用好温室栽培这一高效技术,就必需有一套科学的,先进的管理方法,用以对不同种类植被生长的各个时期所需的温度及湿度等进行实时的监控。
温湿度控制对于单片机的应用具有一定的实际意义,它代表了一类自动控制的方法。
而且其应用十分广泛。
1.2立题的目的和意义
8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。
使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习、掌握,性价比高。
使用8051型单片机设计温湿度控制系统,可以及时、精确的反映室内的温度以及湿度的变化。
完成诸如升温到特定温度、降温到特定温度、在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。
将此系统应用到温室当中无疑为植被的生长提供了更加适宜的环境。
1.3植被栽培技术
植被“设施栽培”,即“保护地栽培”。
它是指在某种类型的保护设施内(如阳畦、温室、大棚等),人为地创造适宜植被生长发育的最佳环境条件,在不同季节内,尤其是不利于植被生长的季节内进行植被栽培的一种措施[1]。
设施栽培是人类利用自然、改造自然的一种创造。
由于设施内的条件是可以人为控制的,使得植被调节的周年生产得以实现。
玻璃温室和塑料薄膜温室出现后,植被生产出现了划时代的变化。
现在人们可以根据自己的意愿,随时生产出所需要的各种植被。
可以说,这是“设施栽培”的功劳。
在不利于植被生长的自然环境中,温室能够创造适宜植被生长发育的条件。
温室环境的调节主要包括日光、温度、湿度三个方面。
·温度:
根据植被生长的适宜温度进行温室温度调节,若低于下限温度则采取升温措施,通常采取电热增温和火力增温等,火力增温比较方便。
若高于上限温度则采取降温措施,通常通过水管降温和风扇降温,风扇降温比较方便。
·日光:
遮荫是调节日照强度最好的办法,其具体做法是加盖遮阳网或草席,这种方法兼有降低温度的效果。
·湿度:
为满足温室植被对湿度的要求,可以在地上、台阶、盆壁洒水,还可以在空中悬挂湿布,以增加水分的蒸发,最好的办法是设置自动喷雾装置,自动调节湿度[9]。
如果湿度过大,容易导致植被病害,可以采用通风的办法来降低湿度,而且最好在室温与气温相差不大的时候进行。
本系统注重温度和湿度的调节,光照强度没有考虑其中。
1.4本系统主要研究内容
本系统所要完成的任务是:
1.4.1人性化的设计。
界限温度值及湿度值能够由用户根据不同植被的各种生长需求由键盘输入并通过显示器显示。
1.4.2能够实时、准确的显示采样温度值与湿度值。
1.4.3通过采集温度及湿度值,准确的判断标准值与当前值之间的差异,及时的启动报警装置(包括警报灯的提示功能以及提示音等)进行报警,并采取相应的方案。
1.4.4能够根据植被在不同时间段内对温湿度的不同要求,用户可随机更改温度及湿度值,以满足用户不同的需求。
2、系统总体分析与设计
2.1系统功能及系统的组成和工作原理
2.1.1.总体方案
·温度监控:
对温室温度进行测量,并通过升温或降温达到植被的最佳温度。
·湿度监控:
对温室湿度进行测量,并通过喷雾或去湿达到植被的最佳湿度。
·控制处理:
当温度、湿度越限时报警,并根据报警信号提示采取一定手段控制。
·显示:
LCD就地显示输入值和相应的温湿度,数码管摆放在生产现场用于显示当前的温湿度。
2.1.2.实施措施
·实际环境温度与给定界限比较,执行加热/制冷措施。
·实际环境湿度与给定界限比较,执行加湿/去湿措施。
·越限报警:
当温湿度越限时声光报警。
·键盘显示:
负责用户的输入及相关数据的显示,其中包括LED和LCD显示。
2.1.3.硬件系统设计
经过上面的总体方案和实施措施的讨论后可以开始着手硬件系统的设计,硬件系统是应用系统的基础、软件系统设计的依据
主机与主要部件的选择:
根据总体功能和性价比及其运行速度等因素的考虑,选用MCS-51系列的89C51为主机,满足上面的要求而且设计方便,不需要再存储扩展。
数据存储片内设有128B,外部有8279的256B,而由于存入的数据是随时更新的且不计小数位,存入8个16进制数字,其总共需要的容量只有16B,已经够用。
对外部模拟量(温度、湿度)采样,选用ADC0809能够满足要求。
·温室温湿度控制系统是以89C51单片机作为中央控制装置,模数转换器ADC0809,风扇,加热设备,加湿设备,排潮设备,键盘显示芯片等,其功能和原理如下:
·89C51作为中央控制装置,负责中心运算和控制,协调系统各个模块的工作。
·四路采样温度信号采样简单平均处理,温度保存为整数。
·四路采样湿度信号采样简单平均处理,温度保存为整数。
·模数转换器ADC0809:
即由模拟信号转换为数字信号。
它共有8个模数转换通道。
模数的转换共有2种方法。
一种是利用INT0中断,当一次转换结束后,ADC0809使INT0产生中断,通知系统转换完毕;另一种使用延时方法,开始转换后系统延时100微秒等待转换完成。
本方案采用延时转换的方法。
·键盘显示芯片:
用8729识别键盘,负责用户的输入及相关的数据的LED显示。
例如选择系统的工作模式,用户输入温度及湿度的界限数据,显示实时的温度及湿度值等等。
·风扇:
负责系统的降温工作。
·加热设备:
负责系统的加热工作。
·喷雾设备:
负责系统的加湿工作。
·排潮设备:
负责系统的去湿工作。
·双色灯,音效模块:
负责系统的报警功能。
如果当前的温度超过用户设定的界限值时系统将自动报警,双色灯在74LS273的控制下有规律的闪烁,同时音效模块发出报警声,通知用户采取相应的措施。
2.2温湿度采样与控制系统
2.2.1.温湿度采样系统
为了更精确的反映温室的温度和湿度,取温湿度各4路信号采样简单平均处理作为温室的温度和湿度。
在分辨率达到的前提下,温湿度的精度为1%。
2.2.2.温湿度控制系统
首先,系统启动后,提示用户输入温度的上限与下限的温度值。
用户输入之后,系统自动求出中间值,根据实际温度的情况采取相应的方案。
如下图2-2-1所示。
下限温度中间温度上限温度
28----32----36
图2-2-1
如果该时刻的实际温度值低于用户给定的下限温度值时,系统立即启动报警装置,且系统处于升温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止升温。
反之,如果实际温度值高于用户设定的上限值时,系统也会立即启动报警装置,且系统处于降温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止降温。
选择中间值作为控制参数,防止升温——降温——升温的死循环,因为温度低于下限时会一直升温,可能导致温度高于上限系统又开始降温,这样系统便一直重复升温——降温——升温过程,导致设备在某一个温湿度点附近频繁的启停,使设备寿命下降,而且没有实际意义。
选择中间值的一定区间,是防止达到中间值时,采取了停止升温或者降温措施,温度还是会持续上升或下降一会儿,这时候温度可能不是正好在中间值处,系统便还是采取升温或者降温的措施,而此时的温度值可能已经是很适合植被生长的需要的温度值。
所以本方案选在中间值的正负一度区间内,认为此区间内都是适合的,不产生任何控制动作变化,这样就能解决设备频繁启停问题。
2.3键盘显示系统
键盘显示系统采用8279芯片控制16键的键盘和8个七段数码管,以实现用户的输入与数据输出。
16个键分别是“0”到“F”,对应的键值是0到15不需要键值的转换。
七段数码管采用共阴极,系统中使用的段码如下表2-3-1所示。
显示
0
1
2
3
4
5
6
7
段码
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
显示
8
9
A
B
C
D
E
F
段码
7FH
6FH
77H
7CH
39H
5EH
79H
71H
表2-3-1
8279初始化时,设定的相关命令字如下:
Z8279EQU08701H;8279状态/命令口地址
D8279EQU08700H;8279数据口地址
LEDMODEQU00H;左边输入八位字符显示
;外部译码键扫描方式,双键互锁
LEDFEQEQU38H;扫描速率
LEDCLSEQU0D1H;清除显示RAM
LEDWR0EQU80H;设定的将要写入的显示RAM地址
系统的连接图如下图2-3-2所示。
图2-3-2
AD0809与89C51连接图:
图2-3-2
2.4报警系统
报警系统由声音报警和警报灯报警组成。
声音报警通过P1.0口接SD口控制系统的音效模块发声,用CPU控制P1.0产生一定频率的方波就可以实现音效模块的发声。
音效模块是一个带有扬声器的放大电路。
如图2-4-1所示。
图2-4-1
2.5硬件电路设计
2.5.1.系统硬件配置
采用总线型结构的设计。
由P0口作数据线,P0口和P2口共同作地址。
2.5.2.主要组件简介
(1)89C51芯片
89C51是Intel公司于80年代初推出的8位嵌入式微控制器(内部数据总线为8位,外部数据总线为8位),它与MCS-96系统中的其它芯片相比,具有性能高、功能全、售价低廉、使用方便(48PINDIP)等优点。
89C51在工业应用方面有许多明显的特点,它具有灵活方便的8位总线外围支持器扩展功能,而在数据处理方面又有8位微机的快速功能。
由于大的高度集成化已把许多常驻用的输入检测输出控制通道都制作在同一块硅片上,大大地灵活了外部连线,增强了系统的稳定性并且速度快(时钟12MHz),非常适合于工业环境下安装使用。
因此本系统CPU选用89C51芯片。
89C51单片机引脚采用40双列直插式封装结构。
89C51系统CPU中的主要组件有:
高速寄存器阵列、特殊功能寄存器(SFR)、寄存器控制器和算术逻辑单元(RALU)。
它与外部通讯是通过特殊功能寄存器SFR或存储器,控制器进行的。
8051系统的CPU的主要特色是体积小,重量轻,抗干扰能力强,售价低,使用方便。
此外,通过SFR还可以直接控制I/O、A/D、PWM、串行口等部件的有效运行。
CPU内部的一个控制单元和两条总线寄存器阵列和EALU连接起来。
这两条总线是:
16位地址总线(A-BUS)和8位数据总线(D-BUS)。
数据总线仅在RALU与寄存器阵列或SFR之间传送数据,地址总线用作上述数据传送的地址总线或用作与寄存器控制器连接的多路复用地址/数据总线[7]。
CPU对片内RAM访问是直接访问和通过寄存器R0,R1间接访问的。
89C51工作时所需的时钟可通过其XTALL输入引脚由外部输入,也可采用芯片内部的振荡器。
其工作频率为6~12MHz。
在本系统中采用11.0592MHz频率。
(2)74LS273地址锁存器
74LS273是带有三态缓冲输出的8D锁存器74LS273;
·D7~D0:
三态门输入端。
·Q7~Q0:
三态门输出端。
·GND:
接地端。
·Vcc:
电源端。
·OE:
三态门使能端。
·G(STB):
8D锁存器控制端。
(3)8279可编程键盘/显示器接口芯片
8279使Intel公司为8位微处理器设计的通用键盘/显示器接口芯片,其功能主要体现在二个方面:
接收来自键盘的输入数据并作预处理;数据显示的管理和数据显示器的控制。
单片机采用8279管理键盘和显示器,可减少软件程序,减轻负担,且显示稳定,程序简单。
8279的引脚功能(采用40线双列直插式封装):
·DB0~DB7:
双向外部数据总线。
用于传送8279与CPU之间的命令、数据和状态。
·CS:
片选信号线,低电平有效。
·A0:
区分信息的特征位。
当A0位置1时,CPU写入8279的信息位命令,CPU从8279读出的信息为8279的状态;当A0为0时,I/O信息都为数据。
·RD,WR:
读和写选通信号线,均为低电平有效。
·IRQ:
中断请求输出线,高电平有效。
·RL7~RL0:
键盘回送线,平时为高电平,只有当某一键闭合时,其中一条线才变低。
·SL7~SL0:
扫描输出线,用于对键盘和显示器进行扫描。
·OUTB3~OUTB0OUTA3~OUTA0:
显示段输出线。
·BD:
显示熄灭控制线,低电平有效。
·RESET:
复位输入线,高电平有效。
·SHIFT,CNTL/STB:
控制输入线,由内部拉高电阴拉成高电平,也可由外部控制按键拉成低电平。
·CLK:
外部时钟输入线,其信号由外部振荡器提供。
·Vcc,GND:
分别为+5V电源和地。
(4)七段LED显示器
LED是单片机应用系统中一种常见的输出设备,通常使用的是七段显示。
这种显示块有共阴极与共阳极两种。
[4]
以共阴极为例:
显示个位“4”
a送0
d,e送0
b,c,f,g则送1
gnd送0
则立刻显示4。
它由8个发光二极管(7段和一个小数点)构成,可用来显示0~9,A、B、C、D、E、F、G(小数点)。
在数码管中,若把各二极管的阴极连在一起称为共阴极数码管;若把各二极管的阴极连接在一起称为共阴极数码管;若把各二极管的阳极连接在一起,则称为共阳极数码管。
在本系统中采用共阴极数码管。
(5)ADC0809芯片[3]
ADC0809是28脚双列直插式封装。
·D7~D0:
8位数字量输出引脚。
·IN0~IN7:
8路模拟量输入引脚。
·Vcc:
+5V工作电压。
·GND:
地。
(6)LCD显示
引脚功能[7]:
·D0~D7双向数据总线。
LCD数据读写方式可以分为8位和4位两种,以8位数据进行读写操作则D0~D7都有效,若以4位方式进行读写操作,则只用到D4~D7
·RS:
寄存器选择控制位。
当RS=0时,并且做写入的动作时,可以写入指令寄存器,若RS=0,且做读取操作时,可以读取忙标准及地址记数器的内容。
若RS=1,责用于读取数据寄存器[7]。
·R/W:
LCD读写控制线。
R/W=0时,LCD执行写入操作,R/W=1时,LCD执行读取操作。
·EN:
启动控制线。
高电平有效。
·VCC:
电源端。
·VO:
亮度调整电压输入控制器。
当输入0V时字符显示最亮。
·GND:
接地。
3、软件系统设计
3.1系统初始化模块
系统初始化模块的主要功能是完成系统的初始化以及设定系统的工作状态,初始化部分包括以下方面的内容:
3.1.1系统启动后,显示器上显示两行,第一行为“WELCOMETOTHESYSTEM”,
第二行显示为“STARTWORK”
3.1.2等待用户输入温度及湿度值。
按“B”键表示开始输入,这时可按温度下限、上限,湿度下限、上限的顺序依次输入,如果输入的顺序错可按“B”键可重新进行输入,直到输入正确;输入完毕后按“C”键确定。
3.1.3系统进入正常工作状态。
系统整体的工作方式如下框图所示
图3-1-1
初始化程序部分的流程图如下图3-1-2所示。
图3-1-2
3.2键盘显示模块
本系统中使用8279芯片完成有关键盘输入和温湿度显示工作。
温度湿度是依次输入的并且依次以下限、上限输入,并且将温湿度的中间数值存入单片机中,在将LED清零后显示(分别在0123位),并依次显示实时的温度湿度数值(显示在4567位)
实际上,在系统初始化的过程中,除了初始化键盘和显示器之外,其中还包括着调用8279键盘显示模块,8279键盘显示模块部分的基本流程如下图3-2-1所示。
图3-2-1
其中显示键值的程序流程图如下:
图3-2-1
3.3采样转换模块
采样转换模块是本系统中的核心模块之一,它负责完成温度和湿的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。
系统每次转换前ADC0809的IN0~IN7送个任意数,表示开始转换,结果是一个数字量,将其转化为#BCD码,。
送显示程序显示,并将数值返回给主函数。
湿度也可以通过此种方法观察变化,得出相应的结论。
为了更精确的反映系统的温度和湿度,本系统对四路采样信号作简单平均处理,并将处理后的数值作为温室的温湿度,其过程如下图。
图3-3-1
实时温湿度显示和温湿度中间数值显示便于我们实时比较和掌握系统工作状况,实时的温度湿度不在要求的区间内则进行升温降温处理。
图3-3-2
3.4温湿度控制模块
温湿度判断控制模块也是系统的核心模块之一,所谓判断控制模块,就是对用户输入的温度和湿度与当前温室内的实际温湿度进行比较,先进行判断,然后再进行控制,控制模块是决定系统将要进行什么工作的。
如温度高于上限时需要降温,低于下限时需要升温,同时还要启动警报等等。
温度判断控制部分的程序整体思路如下如所示:
图3-4-1
上面已经讨论了采取中间值作为控制参数,采取中间值一定区间作为控制区间的原因,那么按照(2.2)的思想,控制程序流程图如下:
图3-4-2
湿度判断控制部分与温度判断控制部分的功能及流程是相同的,便不再赘述了。
3.5报警模块
报警模块具备两项功能,即为报警灯和声音报警。
报警灯模块是完成LED有规律的闪烁,以便从视觉上提醒用户。
LED是由74LS273控制4个双色LED灯组成的,其闪烁规律为:
1向74LS273发送的数据0F0H,则双色LED灯发绿光。
2向74LS273发送的数据0FH,则双色LED灯发红光。
3向74LS273发送的数据0FFH,则双色LED灯熄灭。
向74LS273交替发送0F0H、0FFH,或0FH、0FFH,以实现LED灯红/灭交替或绿/灭交替,这时我们就看到了闪烁的效果。
在LED灯闪烁的同时,声音报警也会同时启动,可采用延时的方式来延长声音报警的声音。
警报灯由4个双色的LED灯组成,一共需要8根数据线,使用74LS273芯片控制。
要实现的功能是使4个双色LED灯有规律的闪烁,当用户输入温度的上下限值后,系统进行实时的采样,并判断出当前温度与用户输入温度之间的差异,如果当前温度低于用户输入的下限温度值,则说明当前温度过低,系统自动启动警报灯,此时警报灯发出绿光并进行有规律的闪烁,同时开始加温,直至加到所需温度值时警报灯熄灭。
反之,如果当前温度高于用户输入的上限温度值,则说明当前温度过高,系统也会自动启动警报灯,但此时警报灯会发出红光并进行有规律的闪烁,同时开始降温,直至降到所需温度值时警报灯熄灭。
图3-5-1
4硬件调试方案
4.1硬件电路的调试
此部分的任务是在系统连接好后,调试各个组件能否正常工作,能否实现软件设计的预期目标。
其步骤如下:
4.1.1按照系统设计,将系统需要的各个组件连接好。
4.1.2根据实验说明书,了解各个组件的工作原理,开始着手调试芯片。
4.1.3调试8279芯片。
按照说明书调用8279.ASM汇编程序,运行,观察现象。
现象正确,说明8279芯片正常,可以使用。
4.1.4调试ADC0809芯片。
按照说明书调用CON_W.ASM汇编程序,运行,观察现象。
现象正确,说明ADC0809芯片正常,可以使用。
4.1.5调试直流电机,按照说明书调用直流电机相应的汇编程序,运行,观察现象。
现象正确,说明直流电机正常,可以使用。
4.2功能模块的调试方案
把各个功能模块编写成单独的源文件进行调试,调试成功以后,再将各部分联合在一起。
整个系统的编写、调试是从8279开始的。
控制8279原理虽然简单,但需要细节却很多,如选择显示寄存器与送段码的顺序,8279的初始化等待时间等。
用户温度输入数据时上限、下限分别在七段数码管的0、1、2、3位置显示,湿度输入数据时上限、下限分别在七段数码管的4、5、6、7位置显示。
读键存储的过程是循环程序。
可循环等待直到用户输入正确并确认为止。
采样转换模块是一个比较重要的模块,在调试的阶段遇到的问题较多,由于它是程序运行的瓶颈,如果这一部分通不过的话,那么程序就无法执行下去,本系统采用的是延时的方法。
温湿度判断控制模块也一个非常重要的模块,由于温湿度对于植被的生长起着决定性的作用,因此,如果这两个因素控制不好,这个系统就失败了,这就需要我认真的考虑这一模块的控制方式,调试阶段比较顺利。
除了以上所提到的模块之外,还有一些模块也很重要,也都需要认真的调试,如报警模块等。
调试了各模块之后,接下来的工作就是将各源程序段连接起来,进行综合调试了,综合调试需要我们特别注意细节部分,这样才能尽可能的减少错误的产生。
结论
虽然这个设计做的比较简单,很多东西都考虑的不是很细,也有一些特别情况没有做,但是用了很多精力用来完成这个论文,鉴于个人水平和时间的关系所以并没有把自己当初设想的所有情况都考虑进去,这两个月的毕业论文让我学会的很多,觉得自己学的太少还有很多需要认真学习,学无止境,所以要更努力。
致谢
此次毕业设计是在我的导师陈勉老师的精心指导及全力支持下完成的。
本系统的设计成功与陈老师的帮助是密不可分的,再加上自身的努力才能圆满地完成预期的目标。
陈老师对新知识,新事物都有自己独到的理解,这深深的影响了我对学习的态度,将使我终生难忘。
他们一丝不茍的工作态度和认真负责的敬业精神同样给了我巨大的收益和鼓舞。
这些都将使我受益匪浅,同时也要感谢我的父母,不是你们我就不可能在大学校园里,也就不可能有这个毕业设计!
最后,我要以最真挚的感情来感谢指导本次毕业设计中的导师,是您们用辛勤的劳动、无私的奉献和渊博的知识换来了我的毕业设计。
同时感谢各位同学对我的帮助,只有我们不断的努力学习,明天才会更加美好,因为机会永远属于那些有准备的人。
参考文献
[1]
[2]周坚,单片机轻松入门[M].北京:
北京航空航天出版社,2002.
[3]孙育才.MCS-51系列单片微型计算机及其应用[M].南京:
东南大学出版社,2004.P231
[4]公孙茂,马宝匍,孙晨.单片机入口接口实例集[M].北京:
北京航空航天出版社,2002.P120
[5]求是科技.PIC单片机典型模块设计和实例导航[M].北京:
人民邮电出版社,2005.
[6]龙泽明,顾立志,王桂莲,陈光军.MCS-51单片机原理及工程应用[M].北京:
国防工业出版社,2005.
[7]胡辉.王晓,戴永成.单片机原理及应用设计[M].北京:
中国水利水电出版社,2005.P6,P181
[8]蔡菲娜.单片微型计算机原理和应用[M]。
杭州:
浙江大学出版社,2003
[9]