数据存储片内设有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
1
图2-2-1
如果该时刻的实际温度值低于用户给定的下限温度值时,系统立即启动报警装置,且系统处于升温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止升温。反之,如果实际温度值高于用户设定的上限值时,系统也会立即启动报警装置,且系统处于降温状态,直到实际温度达到用户输入的上下限温度的中间值一定区间内时停止降温。
选择中间值作为控制参数,防止升温——降温——升温的死循环,因为温度低于下限时会一直升温,可能导致温度高于上限系统又开始降温,这样系统便一直重复升温——降温——升温过程,导致设备在某一个温湿度点附近频繁的启停,使设备寿命下降,而且没有实际意义。
选择中间值的一定区间,是防止达到中间值时,采取了停止升温或者降温措施,温度还是会持续上升或下降一会儿,这时候温度可能不是正好在中间值处,系统便还是采取升温或者降温的措施,而此时的温度值可能已经是很适合植被生长的需要的温度值。所以本方案选在中间值的正负一度区间内,认为此区间内都是适合的,不产生任何控制动作变化,这样就能解决设备频繁启停问题。
2.3 键盘显示系统
键盘显示系统采用8279芯片控制16键的键盘和8个七段数码管,以实现用户的输入与
数据输出。16个键分别是“0”到“F”,对应的键值是0到15不需要键值的转换。七段数码管采用共阴极,系统中使用的段码如下表2-3-1所示。
显示 段码 显示 段码 0 3FH 8 7FH 1 06H 9 6FH 2 5BH A 77H 3 4FH B 7CH 4 66H C 39H 5 6DH D 5EH 6 7DH E 79H 7 07H F 71H 表2-3-1
8279初始化时,设定的相关命令字如下:
Z8279 EQU 08701H ;8279 状态/命令口地址 D8279 EQU 08700H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 38H ;扫描速率 LEDCLS EQU 0D1H ;清除显示 RAM
LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 系统的连接图如下图2-3-2所示。
图2-3-2
AD0809与89C51连接图:
图
2-3-2
2.4 报警系统
报警系统由声音报警和警报灯报警组成。声音报警通过P1.0口接SD口控制系统的音效模块发声,用CPU控制P1.0产生一定频率的方波就可以实现音效模块的发声。音效模块是一个带有扬声器的放大电路。如图2-4-1所示。
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~OUTB0 OUTA3~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
1