微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机中断过程与主程序调用子程序过程的比较

51单片机中断过程与主程序调用子程序过程的比较

时间:11-18 来源:互联网 点击:

到它响应;第2种情况必须等到现行指令执行完,再响应中断,指令周期分为1、2、4TCY三种机器周期,计算机每个TCY出现仅查看一次中断请求,因此,2TCY和4TCY机器指令有可能没有执行完。如果执行指令没执行完就去响应中断,则中断处理返回后,计算机很难把分断开执行的同一条指令连贯起来;第3种情况处理与第2种情况类似,但它除了要把现行的RETI指令或访问IE、IP指令执行完处,还需再执行下一条指令,方能响应中断。利用这个原理,很容易实现单步STEP操作(调试程序时使用)。

中断服务和中断返回又由关(禁止)同级和低级中断、中断请求撤除、保护断点、跳至中断服务程序入口、保护现场、中断处理、恢复现场、开(允许)同级和低级中断、恢复断点(中断返回)等9小步组成。这9步中断服务过程与前面介绍的6步调用子程序过程类似,只是增加了开、关同级和低级中断请求以及中断请求撤除3步,其余6步完全一致。开、关同级和低级中断目的是使不同时来中断请求的同级隐含排队原则无效,此时只能实现高级嵌套低级的两级中断嵌套。在中断处理的返回前清除原中断请求原因是防止同一次中断申请被重复响应。

中断服务过程的前4步是由硬件自动实现的,这点完全不同于调用子程序过程。当然TXD/RXD中断请求与INT0、INT1电平触发中断请求还需用户分别用软件和硬件清除中断请求。MCS-51单片机的中断服务程序入口地址是固定的,它们分别是INT0为0003H、T/C0为000BH、INT1为0013H、T/C1为001BH、TXD/RXD为0023H。断点现场保护与恢复也是通过堆栈推入与弹出或改变工作寄存器区来实现的。

中断处理完后,就应返回断点继续执行主程序,开同级和低级中断、恢复断点2步可用中断返回指令RETI实现,注意子程序返回指令RET只能实现恢复断点,而不能开同级和低级中断。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top