中断服务子程序的编写
发布时间:2016/7/15 21:07:10 访问次数:2417
当80C51单片机响应中断请求,跳转到相应的中断处理子程序时,除了断点保护由硬件自动完成外,保护现场、恢复现场、中断返回都需要用户自己编写,E13005中断处理服务子程序的具体内容要根据具体的应用目的来决定。除了以上这些外,还要考虑是否允许中断嵌套,在中断服务子程序中设置EA=l,则打开中断,允许中断嵌套,设置EA=0,则关闭中断,不允许中断嵌套。还需要注意的是,在保护现场和恢复现场指令的执行过程中,如果出现中断则会导致程序混乱,因此保护现场和恢复现场过程中需要关闭全局中断。
在编写中断服务子程序的代码时,要尽量减少任务量,让中断服务子程序能够快速执行完毕,保证实时性。例如,定时/计数器中断时,为了保证定时时间的精确性,我们往往只在定时/计数器中断服务子程序中编写重载初值的代码,而其他一些相关操作都放在主程序执行,这样能最大限度地保证定时时间的精确度。
中断服务子程序的一般结构举例如下:
当80C51单片机响应中断请求,跳转到相应的中断处理子程序时,除了断点保护由硬件自动完成外,保护现场、恢复现场、中断返回都需要用户自己编写,E13005中断处理服务子程序的具体内容要根据具体的应用目的来决定。除了以上这些外,还要考虑是否允许中断嵌套,在中断服务子程序中设置EA=l,则打开中断,允许中断嵌套,设置EA=0,则关闭中断,不允许中断嵌套。还需要注意的是,在保护现场和恢复现场指令的执行过程中,如果出现中断则会导致程序混乱,因此保护现场和恢复现场过程中需要关闭全局中断。
在编写中断服务子程序的代码时,要尽量减少任务量,让中断服务子程序能够快速执行完毕,保证实时性。例如,定时/计数器中断时,为了保证定时时间的精确性,我们往往只在定时/计数器中断服务子程序中编写重载初值的代码,而其他一些相关操作都放在主程序执行,这样能最大限度地保证定时时间的精确度。
中断服务子程序的一般结构举例如下: