图15 调控子程序流程图
系统启动后,提示用户输入温度的上限与下限的温度值。用户输入之后,系统自动求出中间值,根据实际温度的情况采取相应的方案。如果该时刻的实际温度值低于用户给定的下限温度值时,且系统处于升温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止升温。反之,如果实际温度值高于用户设定的上限值时,且系统处于降温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止降温。
选择中间值作为控制参数,防止升温——降温——升温的死循环,因为温度低于下限时会一直升温,可能导致温度高于上限系统又开始降温,这样系统便一直重复升温——降温——升温过程,导致设备在某一个温湿度点附近频繁的启停,使设备寿命下降,而且没有实际意义。
选择中间值的一定区间,是防止达到中间值时,采取了停止升温或者降温措施,温度还是会持续上升或下降一会儿,这时候温度可能不是正好在中间值处,系统便还是采取升温或者降温的措施,而此时的温度值可能已经是很适合植被生长的需要的温度值。所以本方案选在中间值的正负一度区间内,认为此区间内都是适合的,不产生任何控制动作变化,这样就能解决设备频繁启停问题。
3.6 解耦模块设计
解耦模块设计流程图如图16所示:
图16 解耦子程序设计流程图
3.7 报警子程序设计
报警模块的目的是提醒用户检查系统故障。当用户输入设定值的上下限后,系统进行实时的采样,并判断出当前采样值与用户输入设定值间的差异,如果当前采样值跳出设定值区间,系统调用调控模块并计时,当在一定时间内还未到达预设区间就产生报警,提醒用户检查控制模块是否出现故障,其程序流程图如图17所示:
图17 报警子程序流程图
3.8 温湿度采样子程序设计
采样转换模块是本系统中的核心模块之一,它负责完成温度和湿的测量及模拟量转换为数字量的全过程,这也是它为什么重要的原因。系统每次转换前ADC0809的IN0~IN7送入任意数,表示开始转换,结果是一个数字量,将其进行标度变换转化为BCD码。送存储器存储。湿度也可以通过此种方法得出。
标度变换:目的是要把实际采样的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区显示。对一般线性仪表来说,标度变换公式为:
(13)
式中:A0为仪表测量的下限;Am为仪表测量的上限;AX为实际的测量值;N0为仪表下限所对应的数字量;Nm为仪表上限所对应的数字量;NX为测量所得到的数字量。
为了更精确的反应系统的温度和湿度,本系统对八路采样信息做简单平均处理,并将处理后的数值作为温室的温湿度,其过程如图18,19所示: AT89C51单片机大棚温湿度控制系统设计+电路图+流程图(8):http://www.youerw.com/zidonghua/lunwen_1835.html