MCS-51的中断响应过程解析

发布时间:2024-03-21  

中断响应的条件:
讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1“,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。。。。很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。

了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU将封锁对中断的响应:
1、CPU正在处理一个同级或更高级别的中断请求。
2、现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。
3、当前正执行的指令是返回批令(REti)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。


中断响应过程
CPU每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:
(1)CPU正处理相同级别或更高级别的中断;
(2)正在执行指令,还未到最后一个机器周期;
(3)正在执行的指令是RETI或访问IP、IE指令,则执行完上述指令后,再执行一条指令后,才会响应新中断。
响应过程:(假设已使某中断请求标志置1)
(1)先使相应优先级状态触发器置1;
(2)执行一个硬件子程序的调用,
1)硬件清零相应中断请求标志(TI、RI除外)
2)将当前PC内容压入堆栈——保护断点;
3)将中断服务子程序入口地址送PC——转移。
返回过程:(RETI执行后)
(1)使相应优先级状态触发器清0。
(2)从堆栈中弹出栈顶的两个字节内容送PC——恢复断点。
(3)CPU接着中断处继续执行原程序。
注意:
1)保护断点与保护现场以及恢复断点与恢复现场的区别。
2)外部中断响应时间在3 ~ 8个机器周期之间。
利用外部中断实现单步操作。
CPU响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,PC是程序指针,CPU取指令就根据PC中的值,PC中是什么值,就会到什么地方去取指令,所以程序就会转到中断入口处继续执行。这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了8个单元,如0003-000B,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了吗?


一个完整的主程序看起来应该是这样的:
ORG 0000H
LJMP    START
ORG 0003H
LJMP    INT0    ;转外中断0
ORG 000BH
RETI    ;没有用定时器0中断,在此放一条RETI,万一 “不小心“产生了中断,也不会有太大的后果。
中断程序完成后,一定要执行一条RETI指令,执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。注意:CPU所做的保护工作是很有限的,只保护了一个地址,而其它的所有东西都不保护,所以如果你在主程序中用到了如A、PSW等,在中断程序中又要用它们,还要保证回到主程序后这里面的数据还是没执行中断以前的数据,就得自己保护起来。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    MCS-51的中断响应过程解析;中断响应的条件:讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算......
    中断和异常(2024-07-31)
    向量地址跟芯片的设计有关,这个跳转的过程是CPU强制执行的;但是异常处理是由用户通过代码实现的,可以在向量表定义的地址上,放置一个跳转指令,实现用户自定义的异常处理功能。   5 异常中断响应过程     6 异常中断......
    。 CPU处理事件的过程,称为CPU的中断响应过程中断响应和处理过程 能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。 中断源向CPU提出的处理请求,称为中断请求(或中断......
    ,如果采用中心对齐计数模式3,即在向上计数和向下计数过程中都可以产生比较事件,CCR在(0,ARR)之间取值时,发生4次中断响应就不难理解了。 经过前面的分析,我们知道发生0次、2次、4次中断响应......
    条件 CPU开中断,即中断允许寄存器IE中的中断允许总控制位EA = 1;中断源发出中断请求;中断源的中断允许位为1;没有同级或者高级的优先级中断正在执行; 中断响应的过程 由硬件根据中断......
    通道的抢先优先级和子优先级(IP[28],在 NVIC 寄存器组中) 设置允许 TIME2 中断通道。在 NVIC 寄存器组的 ISER 寄存器中的一位。 ②中断响应过程 当 TIME2 的 UIE 条件成立(更新,上溢......
    做PWM输出。 启动时计数器从0开始计数,与RCR对应的计数器值为3。请问在0~ARR范围内调整CCR1的值时,整个工作周期内进入基于比较事件的中断响应次数可能是下面哪些选项? A:1 B:2 C:3......
    该程序执行相应操作。 2.5 中断响应过程 中断源发出中断请求。 判断处理器是否允许中断,以及该中断源是否被屏蔽。 中断优先级排队。 处理器暂停当前程序,保护断点地址和处理器的当前状态,根据中断......
    )。 3、数码管原理:   4、中断系统:中断发生——中断响应和中断服务——中断返回。(中断嵌套) 5、优点:1.分时操作;2.实时响应;3.可靠性高。 6、80C51单片机的中断......
    (EXTI2_3_IRQn);//关闭中断响应 EXIT_Sign=1;//表示收到报警信号 } 主循环代码像下面书写才能让程序正常运行:【略去了其它代码】 while (1......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>