【单片机】4.4 响应中断请求的条件

本文详细介绍了单片机响应中断请求的条件,包括总中断允许、中断请求标志、中断允许位及无同级或更高级中断。还阐述了中断响应过程,涉及程序存储区中断入口地址和中断服务程序的跳转。最后讨论了中断响应被封锁的三种情况,如处理中断、执行特定指令等。

中断响应的条件

  • 中断请求被响应,必须满足以下必要条件
    (1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1
    (2)该中断源发出中断请求,即对应的中断请求标志为“1”
    (3)该中断源的中断允许位为1,即该中断被允许。
    (4)无同级更高级中断正在被服务。
  • 当CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。

中断响应的过程

  • 首先由硬件自动生成一条长调用指令LCALL addr16”。就是程序存储区中相应的中断入口地址
  • 例如,对于外部中断1的响应,硬件自动生成的长调用指令为
				LCALL    0013H
  • 首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。
  • 各中断源服务程序的入口地址(也称中断矢量)是固定的 ,如表4-2所示。
  • 两个中断入口间只相隔8字节,难以安放一个完整的中断服务程序。因此,通常在中断入口地址处放置一条无条件转移指令,使程序执行转向中断服务程序入口。

中断响应被封锁的情况

  • 中断响应是有条件的,当遇到下列三种情况之一时,中断响应被封锁:
  1. CPU正在处理同级或更高优先级的中断。
  2. 所查询的机器周期不是当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性
  3. 正在执行的指令是RETI或是访问IE或IP的指令。因为按照AT89S52中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。
  • 如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值