当前位置:首页 > 单片机 > 单片机
[导读]实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。

实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。

中断允许寄存器IE

AT89S51的CPU对各中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的字节地址为A8H,可进行位寻址,其格式如下图所示。

 

中断允许寄存器IE对中断的开放和关闭实现两级控制。所谓两级控制,就是有一个总的开关中断控制位EA(IE.7位),当EA=O时,所有的中断请求被屏蔽,CPU对任何中断请求都不接受,因此称EA为系统中断允许总开关控制位;当EA=1时,CPU开放中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。

IE中各位的功能如下:

(1)EA:中断允许总开关控制位。

EA=0,所有的中断请求被屏蔽。

EA=1,所有的中断请求被开放。

(2)ES:串行口中断允许位。

ES=0,禁止串行口中断。

ES=1,允许串行口中断。

(3)ET1:定时器/计数器Tl的溢出中断允许位。

ET1=0,禁止Tl溢出中断。

ETl=1,允许Tl溢出中断。

(4)EXl:外部中断1中断允许位。

EXl=0,禁止外部中断1中断。

EXl=1,允许外部中断1中断。

(5)ET0:定时器/计数器T0的溢出中断允许位。

ET0=0,禁止T0溢出中断。

ET0=1,允许T0溢出中断。

(6)EX0:外部中断0中断允许位。

EX0=0,禁止外部中断0中断。

EX0=1,允许外部中断0中断。

AT89S51复位以后,IE被清0,所有的中断请求被禁止。IE中与各个中断源相应的位可用指令置1或清0,即可允许或禁止各中断源的中断申请。若使某一个中断源被允许中断,除了IE相应的位被置1外,还必须使EA位置1。

改变IE的内容,可由位操作指令来实现(即SETB bit;CLR bit),也可用字节操作指令实现。

举例如下:例1、若允许片内2个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE的相应程序段。

(1)用位操作指令来编写如下程序段:

 

(2)用字节操作指令来编写:上述的两段程序对IE的设置是相同的。

 

中断优先级寄存器lP

AT89S51的中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现两级中断嵌套。所谓两级中断嵌套,就是AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套的过程如下图所示。

 

关于各中断源的中断优先级关系,可以归纳为下面两条基本规则:

(1)低优先级可被高优先级中断,高优先级不能被低优先级中断。

(2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被其他中断源的中断请求所中断。

AT89S51的片内有一个中断优先级寄存器lP,其字节地址为B8H,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级的设置,IP寄存器的格式如下图所示。

 

中断优先级寄存器IP各位的含义如下:

(1)PS:串行口中断优先级控制位。

PS=1,串行口中断为高优先级。

PS=O,串行口中断为低优先级。

(2)PT1:定时器Tl中断优先级控制位。

PTl=1,定时器Tl中断为高优先级。

PTl=0,定时器Tl中断为低优先级。

(3)PX1:外部中断1中断优先级控制位。

PXl=1,外部中断1中断为高优先级。

PXl=0,外部中断1中断为低优先级。

(4)PT0:定时器T0中断优先级控制位。

PT0=1,定时器T0中断为高优先级。

PT0=0,定时器T0中断为低优先级。

(5)PX0:外部中断0中断优先级控制位。

PX0=1,外部中断0中断为高优先级。

PX0=0,外部中断0中断为低优先级。

中断优先级控制寄存器IP的各位都可由用户程序置1和清0,用位操作指令或字节操作指令可更新IP的内容,以改变各中断源的中断优先级。

AT89S51复位以后,IP的内容为0,各个中断源均为低优先级中断。

下面简单介绍AT89S51的中断优先级结构。AT89S51的中断系统有两个不可寻址的“优先级激活触发器”其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止;另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。

在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序见下表。

 

同级中断的查询次序

由此可见,各中断源在同一个优先级的条件下,外部中断O的中断优先权最高,串行口中断的优先权最低。

例2、设置IP寄存器的初始值,使AT89S51的两个外中断请求为高优先级,其他中断请求为低优先级。

(1)用位操作指令

 

(2)用字节操作指令

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

当多个同级别中断同时发出中断请求时,单片机中断系统将按照自然优先级别进行中断排序,并首先响应其中自然优先级别最高的中断。

关键字: 中断优先级 单片机 中断系统

AT89S51最小系统制做

关键字: at89s51 最小系统

AT89c51与AT89S51单片机的区别

关键字: at89c51 at89s51 单片机

AT89S51的由来及与C51的区别

关键字: at89s51 C51 区别

AT89S51芯片的日渐流行,对我们单片机初学者来说是一个大好消息。因为做个AT89S51编程器非常容易,而且串行编程模式更便于做成在线编程器,给频繁烧片,调试带来了巨大的方便。

关键字: at89s51 编程器

串行口工作于方式2和方式3时,被定义为9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1位停止位。

关键字: at89s51 串行口 方式2 方式3

串行口的工作方式0为同步移位寄存器输入/输出方式。这种方式并不是用于两个AT8 9 S51单片机之间的异步串行通信,而是用于串行口外接移位寄存器,以扩展并行I/O口。

关键字: at89s51 串行口 工作方式0

1.访问程序存储器的控制信号AT89S51单片机访问片外扩展的程序存储器时,所用的控制信号有以下3种。(1) ALE——用于低8位地址锁存控制。(2) PSEN(的反)——...

关键字: at89s51 操作时序 程序存储器

AT89S51单片机受引脚数的限制,PO口兼用数据线和低8位地址线,为了将它们分离出来,需要在单片机外部增加地址锁存器。目前,常用的地址锁存器芯片有74LS373、74LS573等。

关键字: at89s51 锁存器 外部地址

在实际的单片机应用系统设计中,往往既需要扩展程序存储器,又需要扩展数据存储器(I/O接口芯片中的寄存器也作为数据存储器的一部分),如何把片外的两个64KB地址空间分配给各个程序存储器、数据存储器芯片,并且使程序存储器和数...

关键字: at89s51 地址空间 存储器
关闭
关闭