历史上的今天
返回首页

历史上的今天

今天是:2025年03月09日(星期日)

正在发生

2018年03月09日 | AT89S51的中断允许与中断优先级的控制

2018-03-09 来源:eefocus

  实现中断允许控制和中断优先级控制分别由特殊功能寄存器区中的中断允许寄存器IE和中断优先级寄存器IP来实现的。下面介绍这两个特殊功能寄存器。
  
  中断允许寄存器IE
  
  AT89S51的CPU对各中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的字节地址为A8H,可进行位寻址,其格式如下图所示。
  870
  中断允许寄存器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)用位操作指令来编写如下程序段:
  880
  (2)用字节操作指令来编写:上述的两段程序对IE的设置是相同的。
  881
  中断优先级寄存器lP
  
  AT89S51的中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现两级中断嵌套。所谓两级中断嵌套,就是AT89S51正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套的过程如下图所示。
  882
  关于各中断源的中断优先级关系,可以归纳为下面两条基本规则:
  
  (1)低优先级可被高优先级中断,高优先级不能被低优先级中断。
  
  (2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被其他中断源的中断请求所中断。
  
  AT89S51的片内有一个中断优先级寄存器lP,其字节地址为B8H,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级的设置,IP寄存器的格式如下图所示。
  890
  中断优先级寄存器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的中断系统有两个不可寻址的“优先级激活触发器”其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止;另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。
  
  在同时收到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。这相当于在同一个优先级内,还同时存在另一个辅助优先级结构,其查询顺序见下表。
  891
  同级中断的查询次序
  
  由此可见,各中断源在同一个优先级的条件下,外部中断O的中断优先权最高,串行口中断的优先权最低。
  
  例2、设置IP寄存器的初始值,使AT89S51的两个外中断请求为高优先级,其他中断请求为低优先级。
  
  (1)用位操作指令
  900
  (2)用字节操作指令

推荐阅读

史海拾趣

意瑞(COSEMITECH)公司的发展小趣事

随着业务的不断发展和市场的不断扩大,意瑞半导体也积极寻求外部投资和战略合作。公司先后获得了得彼投资、架桥投资、深创投等机构超2亿元的股权投资,为公司的持续发展提供了有力的资金保障。此外,意瑞半导体还积极参与各种行业活动和展览,与业界同仁进行深入交流和合作,共同推动半导体行业的发展。

以上五个故事素材可以根据需要进一步扩展和细化,以形成完整的、具有吸引力的电子行业意瑞半导体公司的发展故事。

Churod Electronics Co Ltd公司的发展小趣事

随着国内市场的饱和,中汇瑞德开始将目光投向海外市场。为了更好地服务全球客户,公司在美国设立了子公司,并在全球范围内建立了销售网络。同时,公司还积极参与国际展会和交流活动,与国际同行建立了广泛的合作关系。这些举措不仅拓展了公司的业务范围,也提升了公司的国际影响力。

辰颐电子公司的发展小趣事

随着公司业务的不断发展,辰颐电子开始积极拓展市场。他们通过参加各种行业展会、举办产品发布会等方式,加强与客户的沟通和交流,提升品牌知名度和影响力。同时,公司还注重线上线下的渠道建设,通过电商平台、实体店等多种方式,将产品推向更广阔的市场。这些努力使辰颐电子在市场中树立了良好的品牌形象和口碑。

ABLIC公司的发展小趣事

2020年4月,ABLIC成为MinebeaMitsumi集团的一员。这一合作对于ABLIC来说具有重要意义。MinebeaMitsumi集团作为一家在电子元器件领域具有强大实力的企业,为ABLIC提供了更广阔的发展空间和资源支持。通过融入MinebeaMitsumi集团的“八矛战略”,ABLIC的模拟半导体业务得到了进一步提升,其在集团内部的地位也愈发重要。

General Electronic Devices公司的发展小趣事
提供稳定的直流电压。
Bestar Electric公司的发展小趣事

为了进一步提升竞争力,Bestar Electric开始整合产业链资源。公司通过与供应商建立长期合作关系,确保原材料的稳定供应;同时,公司还涉足电子产品的组装和制造领域,实现了产业链的垂直整合。此外,公司还积极探索多元化发展路径,涉足相关领域,如智能家居、物联网等,以拓展新的增长点。

问答坊 | AI 解惑

多个实用电器产品电路图

十几个实用电器产品电路图,有兴趣的工程师看看…

查看全部问答>

北航单片机视频教程   哈哈!!

北航单片机视频教程多媒体教程 下面是用户共享的文件列表,安装eMule后,您可以点击这些文件名进行下载  [北航单片机视频教程].1K2K.rm 161.9MB  [北航单片机视频教程].3K4K.rm 161.9MB  [北航单片机视频教程].5K6K.rm 162.5M ...…

查看全部问答>

PROTEL软件使用的误区及几个不易搞清的概念

PROTEL软件使用的误区及几个不易搞清的概念…

查看全部问答>

请教:LM3S8962端口字节输出问题

我用的是LM3S8962芯片,端口位组合输出一个字节的数据实在是太慢了,有没有可能端口直接字节输入和输出,如何操作呢? 我看过有些这个芯片的开发板驱动图形液晶屏,我觉得应该也是至少字节操作吧。…

查看全部问答>

紧急求助:WinCE如何管理内存的?

我在看“Windows CE程序设计(第一版)”书上的很多内容很是不了解。 有如下问题,请大家勿必解答,本人感激不尽!! 第一个问题: ===================================== 书上说:WinCE创造一个独立的被所有程序共享的4GB虚拟地址空间。 ...…

查看全部问答>

本人想学ARM9,如果要移埴VXWORK,要学什么编程语言?

除了ARM9的指令集,压缩指令集外,要用C语言,还要用C++语言吗?移埴VXWORK时要用什么语言编写??…

查看全部问答>

LED电路板灌胶

我们要为一个欧洲客户设计多数量LED(几百个)组成的大面积的LED矩阵泛光灯。因为是特殊用途的工业用灯,需要极高的抗震动,抗跌落,抗冲击性能。仅依靠将LED点焊在电路板上将其固定,无法满足要求。国外一个做法是将LED电路板灌胶。这样全部LED就 ...…

查看全部问答>

弱弱问句,香水城楼主是ST技术支持吗?

我是在今年广州STM研讨会了解STM的,刚好手头有一项目想用STM32。了解后感觉STM32还可以,只是技术支持吃不透,本人第一次使用32位类ARM芯片,可能有时问下相对弱智问题。只是不了解STM技术支持是代理商支持的,还是本身STM有技术支持呢?象TI ...…

查看全部问答>

target name 配置目标机服务器

小弟菜鸟一个,,请求高人指点,我现在想用串口加载vxworks映像,在配置target server时,Target Name/IP这一项填写什么?也就是目标机的名字或者IP地址是怎么定下的?目标机一直都连接不成功。。。。小弟,感激不尽…

查看全部问答>

请教模电知识

如附件图6.7.5,1.为什么说图为电流反馈运算放大电路,它的反馈在那边? 2.为什么说同相端电流=—反相端电流?(我理解:虽然同相端和反相端的电压相同,但T1和T3,T2和T4都具有电流放大作用,输入电流经T1放大到T1的发射极,再到T3的基极再放大 ...…

查看全部问答>