基于51单片机的三层电梯系统设计 下载本文

基于单片机的三层电梯系统设计

当CPU正在处理某些中断请求时,如果出现了一个更高级优先级的中断请求,那么CPU将中断当前中断操作,进而去执行优先级更高的中断操作。当优先级较高的中断响应完之后,再去执行刚才被暂停的中断。这种高优先级中断源能中断低优先级中断源的中断过程,称为中断嵌套[8]。

AT89C51单片机内部有5个中断源,提供两种中断优先级。并且,每一个中断源的优先级都可以由编程进行设定。单片机内部设有中断允许寄存器IE,用来控制控制是否响应中断源的中断请求。单片机中断源的优先级顺序可以由中断优先级寄存器IP设定。表2.6为AT89C51的中断优先级。

表2.6 AT89C51的中断优先级

中断源 外部中断0 定时器0中断 外部中断1 定时器1中断 串行中断 同级内部优先级顺序 最高级 ↓ 最低级 TCON为定时器/计数器0和1的控制寄存器,用来控制定时器/计数器的工作方式,同时也暂存T0或者T1的溢出中断申请标志以及外部中断请求标志。TCON寄存器共8位,每位定义如图2.5。

图2.5 TCON控制寄存器

SCON为串行通信中断控制寄存器。共8位,其中低两位用来表示串行接口的中断标志。如图2.6。

12

基于单片机的三层电梯系统设计

图2.6 SCON

在单片机的中断系统中,设有IE中断允许寄存器。共8位,用来控制是否响应中断。各位定义如图2.7。

图2.7 IE中断允许寄存器

IP为单片机内部的8位特殊功能寄存器,用来控制单片机的中断优先级。因为单片机内部存在两个中断优先级,因而可以使用编程的方法设计中断优先级,来实现中断嵌套[8]。IP各位功能见表2.7。

表2.7 IP中断优先级控制寄存器

位 字节地址B8H PX0 PT0 PX1 PT1 PS 7 6 5 4 PS 3 PT1 2 PX1 1 PT0 0 PX0 外部中断0优先级设定位 定时/计数器T0优先级设定位 外部中断1优先级设定位 定时/计数器T1优先级设定位 串行口优先级设定位 2.1.3 AT89C51单片机定时器/计数器

定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信

13

基于单片机的三层电梯系统设计

号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。

定时器/计算器包含4个8位计数器。其中TH1和TL1两个8位计数器组成T1计数器;TH0和TL0组成T0计数器。基本结构如图2.8。

当作为定时器使用时,输入的时钟为单片机的晶体振荡器输出频率的12分频,即计算机的机器周期。当对外部事件计数时,需接到外部输入引脚P3.4和P3.5。外部事件发生时,产生电平变化,单片机采集到变化,就会自动加1计数。电平变化是指引脚上的电平由高到低的变化。

AT89C51单片机中的定时器/计数器有四种工作方式。需要TMOD和TCON两个特殊功能寄存器选择和控制。其工作方式及控制由编程实现[8]。

图2.8 定时器/计数器结构

(1) 定时/计数器控制寄存器TCON 见表2.8

表2.8定时器/计数器控制寄存器TCON

TCON T1 T1 T0 T0 INT1 INT1 INT0 INT0 中断标志 运行标志 中断标志 运行标志 中断标志 触发方式 中断标志 触发方式 位名称 位地址 TF1 8FH TR1 8EH TF0 8DH TR0 8CH IE1 8BH IT1 8AH IE0 89H IT0 88H

①TCON.7 TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向CPU发出定时器1的中断请求,进入

14

基于单片机的三层电梯系统设计

中断服务程序后,由硬件自动清0。在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。

② TCON.6 TR1:定时器1运行控制位。由软件置1或清0来启动或关闭定时器1。当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。

③ TCON.5 TF0:定时器0溢出标志位。其功能及操作情况同TF1。 ④TCON.4 TR0:定时器0运行控制位。其功能及操作情况同TR1。

⑤其他四个在中断说明。

(2)定时/计数器工作方式控制寄存器TMOD 见表2.9

表2.9定时/计数器工作方式控制寄存器TMOD

高4位控制T1 择 G C / T M1 M0 G C / T M1 M0 低4位控制T0 门控位 计数/定时方式选工作方式选择 门控位 计数/定时方式选择 工作方式选择 ① M1M0 —— 工作方式选择位 见表2.10

表2.10 MIMO 工作方式选择位

M1M0 0 0 0 1 1 0 1 1 工作方式 方式0 方式1 方式2 方式3 功能 13位计数器 16位计数器 两个8位计数器,初值自动装入 两个8位计数器,仅适用T0 ② C/T —— 计数/定时方式选择位

C/T=1,计数工作方式,对外部事件脉冲计数,用作计数器。 C/T=0,定时工作方式,对片内机周脉冲计数,用作定时器。 ③ GATE —— 门控位

GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。

GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。只有当 INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。

TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。 (3)定时/计数器工作方式 ① 工作方式0

13位计数器,由TL0低5位和TH0高 8位组成,TL0低5位计数满时不向TL0第6位进位,而是向TH0进位,13位计满溢出,TF0置“1”。最大计数值

15