首页 理论教育 C51单片机中断响应过程简析

C51单片机中断响应过程简析

时间:2023-11-17 理论教育 版权反馈
【摘要】:CPU响应中断请求后,就立即转入执行中断服务程序。同时,中断服务程序完成后,就需把保存的现场内容从堆栈中弹出,恢复寄存器和存储单元的原有内容,这就是现场恢复。在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。

C51单片机中断响应过程简析

CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述。

1.保护现场

中断是在执行其他任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原来的程序时,知道原来的程序在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份——即保护现场。

如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会使程序运行紊乱,程序跑飞,自然使单片机不能正常工作。

汇编语言中一般用如下语句保护现场:

PUSH ACC

PUSH PSW

PUSH DPH

PUSH DPL

而在C语言中程序会自动保护现场。在使用中不用对现场进行人为保护和恢复。(www.xing528.com)

2.中断服务程序

既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。

3.中断返回

执行完中断服务程序后,必然要返回,中断返回就是程序从中断服务程序转回到原工作程序上来。同时,中断服务程序完成后,就需把保存的现场内容从堆栈中弹出,恢复寄存器和存储单元的原有内容,这就是现场恢复。在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。在汇编语言中典型的中断返回语句如下(恢复现场的语句与保护现场的语句遵循后进先出规则):

POP DPL恢复现场

POP DPH

POP PSW

POP ACC

RETI返回

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈