卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真
④ALE/PROG:地址锁存信号输出/编程脉冲PROG 输入引脚(在CPU访问片外数据存储器或片外I/O设备时,此引脚输出地址锁存信号ALE。在不对片外数据存储器或I/O设备操作时,此引脚为低电平。ALE可驱动8个LSTTL电路输入端);
⑤PSEN/:外部程序存储器的读选通信号输出引脚(在从外部程序存储器取指令/常数期间,每个机器周期两次出现PSEN/负脉冲。CPU用此负脉冲选通信号程序存储器,把一个指令字节读至寄存器锁存,PSEN/可以驱动8个LSTTL输入);
⑥EA:访问程序存储器控制信号(当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器);
⑦P0口:P0口为一个8位漏级开路双向I/O口,每个引脚可吸收8TTL门电流(当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高);
⑧ P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流(P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收);
⑨P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流(当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号); ⑩P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流(当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号)[6-7];
P3口也可作为AT89C51的一些特殊功能口,如表2.1所示:
表2.1 P3口管脚及功能
7
卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真
端 口 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
管 脚 RXD TXD INT0 INT1 T0 T1 WR RD
备选功能 串行输入口 串行输出口 外部中断0 外部中断1 记时器0外部输入 记时器1外部输入 外部数据存储器写选通道 外部数据存储器读选通道
上述4个I/O口,各有各的用途,在一般情况下,P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号,P3口根据需要常用于第二功能,真正可供用户使用的I/O口是P1口和一部分来用做第二功能的P3口端线。
(3)存储空间配置和功能:AT89C51单片机的存储器组织结构可以分为三个不同的存储空间,分别是:
①64KB程序存储器(ROM),包括片内ROM和片外ROM; ②64KB外部数据存储器(外RAM);
③256KB(包括特殊功能寄存器)内部数据存储器(内RAM);
(4)三个不同的存储空间用不同的指令和控制信号实现读写功能操作:
①ROM空间用MOVC指令实现只读功能操作,用PSEN信号选通读外ROM;
②外RAM空间用MOVX指令实现读写功能操作,用RD信号选通读外RAM,用WR信号选通写外RAM;
③内RAM(包括特殊功能寄存器)用MOV指令实现读写和其它功能操作;
(5)程序存储器(ROM):ROM空间共64KB ,其中60KB在片外。地址范围为1000H~FFFFH,无论片内片外,ROM地址空间是统一并且不重叠。对于有内ROM的AT89C51,EA应接高电平,复位后先从内ROM0000H开始执行程序,当PC值超出内ROM4KB空间时,会自动转向片外ROM1000H依次执行程序;
读ROM是以程序计数器PC作为16位地址指针,依次读取相应的地址ROM中的指令和数据,每读一个字节,(PC)+1→PC,这是CPU自动形成的。但是有些指令有修改PC的功能,例如转移类指令和MOVC指令,CPU将按修改后的PC16位地址读ROM。
读外ROM的过程:CPU从PC中取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存
8
卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真
器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外ROM16位地址输入端,当PSEN信号有效时,外ROM将相应地址存储单元中的内容送至数据总线(P0口),CPU读入后存入指定单元。
需要指出的是,64KB中有一小段范围是单片机系统的专用单元,0003H~0023H是五个中断源中断服务程序入口地址,用户不能安排其它内容。单片机复位后,(PC)=0000H,CPU从地址为0000H的ROM单元中读取指令和数据。从0000H到0003H只有3个字节,根本不可能安排一个完整的系统程序,而单片机又是依次读ROM字节的,因此,这3个字节只能用来安排一条跳转指令,跳转到其它合适的地址范围执行真正的主程序。 (6)外部数据存储器(外RAM):外部数据存储器共64KB,读写外RAM用MOVX指令,控制信号是P3的WR和RD。
读写外RAM的过程:外RAM16位地址分到由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外RAM16位地址输入端,当信号有效时,外RAM将相应地址单元中的内容送至数据总线(P0口),CPU读入后存入指定单元。或当信号有效时,外RAM将数据总线(P0口分别传送)上的内容写入相应地址存储单元中。
外部数据存储器主要用于存放数据和运算结果。一般情况下,只有在内RAM不能满足应用时,才接外RAM。其最大容量可达64K字节,外部数据存储器和内部数据存储器的功能基本相同,但前者不能用于堆栈操作。
必须注意,由于数据存储器与程序存储器全部64K地址重叠,且数据存储器的片内外的低字节地址重叠。所以,对片内、片外数据存储器的操作使用不同的指令。对片内RAM读写数据时,无读写信号(RD,WR)产生;对片外RAM读写数据时,有读写信号产生。同样对程序存储器和数据存储器的操作也是靠不同的控制信号PSEN、RD、WR来区分的。
另外,在片外数据存储器中,数据区和扩展的I/O口是统一编址的,使用的指令也完全相同。因此,在系统设计时,必须合理的进行外部RAM和I/O口的地址分配,并保证译码的唯一性[8],如表2.2所示:
表2.2
端 口 P3.5 P3.6
管 脚 T2 WR
9
备选功能 定时器T2外部输入 外部数据存贮器写选通道
卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真
P3.7 RD 外部数据存储器读选通道
2.1.2单片机复位电路
当AT89C51系列单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。本系统的复位电路如图3.1所示:
图2.2 单片机复位电路
2.1.3时钟电路
由2个22pF的电容和一个12MHz的晶体振荡器构成。在引脚XTAL1和XTAL2外接晶体振荡器,就构成了内部震荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生震荡时钟脉冲。内部震荡方式的外部电路如图2.3所示:
图2.3 晶振电路
2.2输入通道
2.2.1多功能农田温度自动环境监测系统温度传感器测温模块设计
温湿度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度和湿度。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过
10
卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真
A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成本较高。近年来,随着科学技术的发展,特别是现代仪器的发展,微型化、集成化与数字化正在成为传感器的一个重要发展方向。该环境监测系统的温度传感器的选择有两种方案,下面为两种方案的对比与选择:
方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现在应用较多的有铂、铜、镍等热电阻,其主要的特点为精度高、测量范围大、便于远距离测量。铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。铜电阻的温度系数比铂电阻的温度系数大,价格低,也易于提纯和加工。但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50~180℃测温。
方案二:采用DS18B20,温度测量范围从-55℃~+125℃,-10~+85℃时测量精度为±0.5℃,测量分辨率为0.0625℃,电源电压范围从3.3V~5V 。它支持“一线总线”的数字方式传输,可组建传感器网络。而且,无需进行线性校正,使用非常方便,接口简单,成本低廉。与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。它具有体积小、接口方便、传输距离远等特点,内含寄生电源,其系统有如下特点:①使用电压为3V~5V,不需要备份电源,可通过信号线供电;②送串行数据,不需要外部元件;③零功耗等待;④仅适用一条口线;⑤系统的抗干扰性好,适合于恶劣环境的现场温度测量,如环境控制、设备过程控制、测温类消费电子产品等[9-10]。
综合比较方案一与方案二,成本相差不多,方案二具有更高的抗干扰能力和测量精度,电路结构简单,所以选择方案二作为本设计的温度传感器。
美国DALLAS半导体公司生产的DSl8B20温度传感器为代表的新型单总线数字式温度传感器,具有耐磨耐碰,体积小,附加功能强大,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。它相对于传统温度传感器具有精度高、稳定性好、电路简单、控制方便等特点,并且具有把温度信号直接转换为串行数字信号的功能。以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。本论文的温度传感器亦将采用数字温度传感器DS18B20。 (1)DS18B20的结构
DS18B20温度传感器的引脚有三个接口:一个接地口,一个电源电压接口,一个单数
11