温室大棚温湿度控制系统
2.2.5 单片机的CPU
MCS-51单片机的CPU由运算器、控制器和若干个特殊功能寄存器组成,运算器可以加、减以及各种逻辑运算,还可以进行乘除运算。控制器在单片机内部协调各功能部件之间的数据传送、数据运算等操作,并对单片机外部发出若干控制信息。
CPU中使用的特殊功能寄存器ACC、B、PSW、SP和DPTR。ACC就是累加器,在指令中一般写为A。在做乘除运算时,B寄存器用来存放一个操作数,也用来存放运算后的一部分结果;若不作乘除操作时,则B可用做通用寄存器。
程序状态字寄存器PSW相当于一般微处理器中的状态寄存器,其中各位的定义如表2所示。
表2 PSW状态寄存器 D7 CY D6 AC D5 F0 D4 RS1 D3 RS0 D2 OV D1 - D0 P
其中各位的意义如下:
CY(PSW.7):高位进位标志位。常用“C”表示。 AC(PSW.6):辅助进位标志。 F0(PSW.5):用户标志位。
RS1(PSW.4)、RS0(PSW.3):寄存器组选择控制位。8051共有4个8位工作寄存器,分别命名为R0~R7。用户通过改变RS1和 RS0的状态可以方便地决定R0~R7的实际物理地址。RS1和 RS0与寄存器区的对应关系如表3所示。
表3 RS1、RS2与工作寄存器组的关系 RS1 0 0 1 1 RS0 0 1 0 1 寄存器组 0 1 2 3 RAM中的地址 00H-07H 08H-0FH 10H-17H 18H-1FH OV(PSW.2):溢出标志位。 -(PSW.1):保留位,无定义。
16 48页) 第8页(共
硬件设计
P(PSW.0):奇偶校验位,在每一个指令周期中,若累加器(A)中的“1”的位个数是奇数个则P=1,偶数个则P=0
单片机的内存空间
从物理地址空间看,89C51有4个存储器地址空间,片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,其存储情况如下:
(1)内部程序存储器(ROM)4K字节。 (2)外部程序存储器(EPROM)64K字节。 (3)内部数据存储器(RAM)256字节。 (4)外部数据存储器(EPRAM)64K字节。
表4 C51单片机的特殊功能寄存器地址及符号表示 特殊功能寄存器符号 *ACC *B *PSW SP DPL、DPH *IE *IP *P0 *P1 *P2 *P3 PCON *SCON SBUF *TCON TMOD TL0、TH0 TL1、TH1 片内RAM地址 E0H F0H D0H 81H 82H、83H A8H B8H 80H 90H A0H B0H 87H 98H 99H 88H 89H 8AH、8BH 8CH、8DH 17 48页) 第9页(共
名称 累加器 乘法寄存器 程序状态字寄存器 堆栈指针 数据指针(低8位和高8位) 中断允许寄存器 中断优先级寄存器 P0口锁存器 P1口锁存器 P2口锁存器 P3口锁存器 电源控制及波特率选择寄存器 串行口控制寄存器 串行数据缓冲器 定时器控制寄存器 定时器方式选择寄存器 定时器0低8位、高8位 定时器1低8位、高8位 温室大棚温湿度控制系统
89C51单片机的片内RAM虽然字节数虽然不很多,但却起着很重要的作用。256个字节被分为两个区域:11~7FH是真正的RAM区,可以读写各种数据;80~FFH是专用寄存器(SFR)区。对于51系列单片机安排里21个特殊功能寄存器。每个寄存器均为8位(一个字节),所以实际上这128个字节并未全部利用。表4所示为89C51单片机特殊功能寄存器地址及符号表。表中带*号的为可位寻址的特殊功能寄存器。
2.2.6 单片机的中断系统
单片机与外部设备交换信息一般采用两种方式,即查询方式和中断方式。中断方式具有CPU效率高,适合于实时控制,将从现场采集到的数据通过中断方式及时传送给CPU,经过处理后就可立即做出响应,实现现场控制。而采用查询方式就很难做到及时采集、实时控制。从面向用户的角度来看,8051单片机的中断系统就是由如下几个殊功能寄存器组成:
·定时器控制寄存器TCON ·中断允许寄存器IE ·中断优先级寄存器IP ·串行口控制器SCON
89C51单片机是一个多中断源系统。有5个中断源,即两个外部中断,两个
外部中断、两个定时器/计数器中断和一个串行口中断。
(1)定时器控制寄存器TCON 表5 TCON控制位的分布
控制位 D7 TF1 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 IT0 ·TF1(TCON.7):计时器 1溢出标志,当计时溢出时,由硬件设定为 1,在执行相对的中断服务程序后则自动清 0。
·TR1(TCON.6):计时器1启动控制位,可以由软件来设定或清除。TR1时启动计时器工作,TRl=0 时关闭。
·TF0(TCON.5):计时器 0溢出标志,当计时溢出时,由硬件设定为 1,在执行相对的中断服务程序后则自动清 0。
18 48页) 第10页(共
硬件设计
·TR0(TCON.4):计时器 0启动控制位,可以由软件来设定或清除。TR0=1时,启动计时器工作,TR0=时关闭。
·IE1(TCON.3):外部中断 1工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清 0。
·IT1 (TCON.2):外部中断 1工作形式选择,IT1=1时,由下降缘产生外部中断,IT1=0时,则为低电位产生中断。
·IE0(TCON.1):外部中断 0 工作标志,当外部中断被检查出来时,硬件自动设定此位,在执行中断服务程序后,则清 0。
·IT0 (TCON.0):外部中断 0工作形式选择,IT1=1时,由下降缘产生外部中断,IT1=0时,则为低电位产生中断。
(2)串行口控制寄存器SCON
表6 SCON控制位的分布 控制位 D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI · SM0、SM1为串行口的工作方式选择位
表7 串行口工作方式
SM0 0 0 1 1 SM1 0 1 0 1 工作方式 方式0:移位寄存器方式 方式1:8位UART,波特率可变 方式2:9位UART,波特率为fosc/64或fosc/32 方式3:9位UART,波特率可变 ·SM2 (SCON.5):允许方式 2 或方式 3 多机通讯控制位。在方式 2 或方式 3 时,如SM2=1,REN=1,则从机处于只有接收到 RB8=1(地址帧)才激发中断请求标志RI=1,向主机请求中断处理。被确认为寻址的从机复位SM2=0,才能接收 RB8=0 的数据帧;在方式 1 时,如 SM2=l,则只有在接收到有效停止位时才置位中断请求标志位RI=1;在方式0时,SM2应为 0。
·REN(SCON.4):REN,允许/禁止串行接收控制位。由软件置位REN=1为允许串行接收状态,可启动串行接收器RXD,开始接收信息。软件复位REN=0,则禁止接收。
19 48页) 第11页(共
温室大棚温湿度控制系统
·TB8(SCON.3):在方式2或方式3,它为要发送的第 9位数据,按需要由软件置位。
(3)中断允许寄存器IE 表8 IE控制字 控制位 D7 EA D6 - D5 - D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0 ·EA(IE.7):EA=0时,所有中断停用(禁止中断)。EA=1时,各中断的产生由个别的允许位决定。
·-(IE.6、IE`5):保留位,无定义。
·ES(IE.4):允许串行端口的中断(ES=1允许,ES=0禁止)。 ·ET1(IE.3):允许计时器 1中断(ET1=1允许,ET1=0 禁止)。 ·EX1(IE.2):允许外部中断 INT1的中断(EX1=1允许,EX1=0 禁止)。 ·ET0(IE.1):允许计时器 0中断(ET0=1允许,ET0=0 禁止)。 ·EX0(IE.0):允许外部中断 INT0的中断(EX0=1允许,EX0=0 禁止)。 (4)中断优先级寄存器IP 表9 IP控制字 控制位 D7 - D6 - D5 - D4 PS D3 PT1 D2 PX1 D1 PT0 D0 PX0 ·-(IP.7):保留位,无定义。 ·-(IP.6):保留位,无定义。 ·-(IP.5):保留位,无定义。
·PS(IP.4):设定串行端口的中断优先次序。 ·PT1(IP.3):设定时/计时器 1的优先次序。 ·PX1(IP.2):设定外部中断 INT1的优先次序。 ·PT0(IP.1):设定计时器 0的优先次序。 ·PX0(IP.0):设定外部中断 INT0的优先次序。
上述每位IP.*=1时,则定义为高优先级中断,IP.*=0 时,则定义为低优先级中断。如果同时有两个或两个以上优先级相同的中断请求时,则由内部按查询优
20 48页) 第12页(共