AT89S51的中断允许与中断优先级的控制

出处:eefocus 发布于:2018-03-12 09:29:30

  实现控制和控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。
  中断允许寄存器IE
  的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)用字节操作指令

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!