2 系统组成与工作原理
2.1 系统的硬件总体结构框图
本系统为一个全自动的温室大棚温湿度巡回检测与控制系统,由以下几部分组成:AT89C51单片机,温湿度传感器,8255并行口电路A/D转换器变送器,驱动电路报警和显示电路组成,其接口部分包括单片机外扩展的数据存储器6264一片和地址锁存器74LS373,系统的组成如图2.1.1所示:
显示报警驱动设备接口电路AT89C51A/D转换器湿度变送器湿度传感器数据存储器图2.1.1 系统硬件总体结构框图
温度传感器 文中按模块分别对各单元电路进行电路设计,然后进行硬件电路集成。单片机是控制系统的核心部分。八通道温湿度传感器由八选一模拟选择开关循环选通,被选中的温湿度传感器信号由信号处理及放大电路进行处理之后送入A/D转换器,再由单片机控制A/D转换器进行温湿度数据的采集,而后对温湿度原始数据进行处理,根据处理结果驱动声光报警电路和执行数码管。看门狗采用硬件看门狗电路,防止程序在运行过程中“跑飞”, 保证系统运行的稳定、可靠。
2.2 系统的工作原理
在应用程序的作用下,首先对8255进行初始化,设定工作方式0。PA口、PB口、PC口均为输出口,PA口、PB口为显示输出,PC口为报警和相关设备驱动口。由于工艺决定,进入大棚之前已经将湿度控制在安全限以内,测量过程是“先测温湿度后测湿度”,首先对温湿度进行采样,每一个温湿度点采样5次,计算平均值作为采样值送入显示和存储的相应单元进行存储和传感器的编号和温湿度的显示,然后判断温湿度是否超过设定温湿度,如果温湿度超标则报警,并根据传感器的位置判断启动通风设备还是加热设备,如果不超标就继续检测下一个点的温湿度,直到整个大棚的多个点温湿度全部测试完成,然后计算和显示大棚的平均温湿度,最后对8个点的湿度进行测量并且显示。湿度也是按照每个点测量5次然后取平均值的方法计算,来减少干扰因素带来的误差,8个点的湿度测量完成后计算并显示大棚的平均湿度。同样与设定的湿度值比较如果超标就报警,并启动风扇进行通风处理。然后系统返回再进行温湿度和湿度的巡回测量和显示。
3
3 系统主要硬件电路模块设计
3.1 AT89C51单片机结构组成
根据系统的功能需求,选择目前市场上性价比较高的AT89C51单片机(见图2-4)作为该系统的控制核心。
1、CPU的结构
CPU是单片机内部的核心部分,是单片机的指挥和执行机构,它决定了单片机的主要功能特性。从功能上看,CPU包括两个基本部分:运算器和控制器。下面说明控制器和运算器。
1)运算器
运算器包括算术逻辑运算部件ALU、累加器ACCC、B寄存器、暂存寄存器TMP1和TMP2、程序状态寄存器PSW、BCD码运算调整电路等。
2)控制器
控制器包括程序计数器PC、指令寄存器IR、指令译码器ID等。 2、时钟电路
AT89C51芯片内部有一个高增益反向放大器,用于构成振荡器。反向放大器的输入端为XTAL1,输出端为XTAL2。在TXAL1和XTAL2两端跨接由石英晶体及两个电容构成的自激振荡器,如图3.1所示。电容器C1和C2通常都取30pF左右,选用不同的电容量对振荡频率有微调作用。但石英晶体本身的标定频率才是单片机振荡频率的决定因素。其振荡频率范围是1~12MHz。
C1XTAL1石英晶体MCS--51XTAL2 C2图3.1 时钟电路
本设计考虑系统的独立完整性,选用内部时钟方式,石英震荡频率选用12MHZ,ALE
信号频率为2MHZ。
3、I/O口结构:
AT89C51单片机有4个8位并行I/O接口,记作P0、P1、P2和P3,每个端口都是8位准双向口,共占32根引脚。每一条I/O线都能独立地用作输入或输出。每个端口都包括一个锁存器(即特殊功能寄存器P0~P3),一个输出驱动器和输入缓冲器,作输出时数据可以锁存,作输入时数据可以缓冲,但是这四个通道的功能完全不同。
4 、程序存储器及数据存储器 1)程序存储器
对AT89C51芯片来说,片内有4K字节ROM/EPROM,片外可扩展60K字节EPROM,片内和片外程序存储器统一编址。
在程序存储器中,有6个地址单元被保留用于某些特定的地址,如下表3.1所示。
4
表3.1 AT89C51的复位、中断入口地址
入口地址 0000H 0003H 000BH 0013H 001BH 0023H
说明 复位后,PC=0000H 外部中断 入口 定时器T0溢出中断入口 外部中断 入口 定时器T1溢出中断口 串行口中断入口
2)数据存储器
AT89C51数据存储器空间也分为内片和外片两大部分,即片内数据存储器RAM和片外数据存储器RAM。如何区别片内、片外RAM空间呢?片内数据存储器最大可以寻址256个单元,片外最大可扩展64K字节RAM,并且片内使用的是MOV指令,片外64K ROM空间专门为MOVX指令所用。
5 、定时器
AT89C51单片机的内部有两个16位可变成定时器0(T0)和定时器1(T1),它们都有定时或是事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
它们具有计数和定时两种工作方式以及四种工作模式。定时器T0具有方式0、方式1、方式2和方式3四种工作方式。T1具有方式0、方式1和方式2三种工作方式。
6、中断系统
AT89C51单片机有五个中断请求源。其中,两个外部中断源;两个片内定时器/计数器(T0、T1)的溢出中断源TE0和TF1;一个片内串行口接受或发送中断源RI或TI。这些中断请求分别由单片机的特殊功能寄存器TCON和SCON的相应位锁存。当几个中断源同时向CPU请求中断,要求CPU提供服务的时候,就存在CPU优先响应哪一个中断请求,于是一些微处理器和单片机规定了每个中断源的优先级别。
3.2 AT89C51的复位电路
AT89C51单片机通常采用上电自动复位和开关手动复位两种方式。
本设计采用上电复位电路,电路图如图3.2所示。所谓上电复位,是指单片机只要一上电,便自动地进入复位状态。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。
+5V10KΩC1100pFC210uFC310uF1RESET 图3.2 复位电路
5
3.3 数据存储器的扩展
AT89C51片内还有28字节的数据存储器RAM,主要用工作寄存器、堆栈、软件标志和数据缓冲器。对于简单的测控系统,用它存放运算的中间结果,容量是够用的。但是对于大量数据采集处理系统,则需要在片外扩展RAM。由于本设计采用大量温湿度传感器,所以一片AT89C51芯片是不够用的,所以要对AT89C51的数据存储器进行扩展,因此,选用RAM6264数据存储器一片。6264可以直接和存储器的地址线并联,数据地址线也同样可以并联连接。
6264的写选通信号WE连接到AT89C51的WR上,读选通信号OE连接到AT89C51的RD上,这样单片机就能把程序采集来的数据。经过变换最终转换成数字温湿度量存放到6264中,也可以从6264中读取数据,具体的连接如下图3.3所示:
8255A中的控制寄存器很少,所以初始化程序设计简单。对于方式0,如果不要设定C口的联络信号,则只需要设置方式控制字;如果要设定C口的某些位为联络信号,则只需设置C口的位置/复位控制字。对于方式1和方式2,因为都要用到控制信号,所以必须设置两个控制字,即设置方式选择控制字和C口复位控制字。
8255有40个引脚,下面根据功能分类说明。
29301110VO3VO4VO5VO6VO7OE1A1OEA11A9A8OE2WEVCC6264GNDVO2VO1VO0A0A1A2A3A4A5A6A7A12NCPSENALE/PTXDRXDWRRDRESETX2X1P27P26P25P24P23P22P21P20P7P6P5P4P3P2P1P0P07P06P05P04P03P02P01P00EA/VPT0T1INT0INT1P17P16P15P14P13P12P11/TP10/T1617OE91819311415121387654321A10OEA11A9A8A0A1A2A3A4A5A6A7A12191615129652A7A6A5A4A3A2A1A08Q7Q6Q5Q4Q3Q2Q1QCOC111AT89C51A12A11A10A9A88D7D6D5D4D3D2D1DP6P5P4P3P2P1P01817141387432827262524232221323334353637383974LS373 图3.3 AT89C51与地址6264的连接
1)数据线
数据线有D7~D0,PA7~PA0,PB7~PB0,PC7~PC0,均为双向三态,其中D7~D0与CPU数据总线相连,用于传递CPU与8255之间的命令和数据;PA7~PA0,PB7~PB0,PC7~PC0,分别与A、B、C三个端口相对应,用于8255A与外设之间的传送数据。
2)寻址线
寻址线CS、A1和A0,用于选择8255的三个端口和控制寄存器。 CS:片选信号,输入,低电平有效。有效时表示选中本片。
A1和A0:输入,通常与系统地址总县的A1和A0对应相连。当CS有效时,A1和A0的四种组合00、01、10、11分别选择A、B、C、口和控制寄存器,所以一片8255A共有4个I/O地址。
6