首页 理论教育单片机基础:中断处理程序

单片机基础:中断处理程序

【摘要】:具体中断处理程序的流程如图6-2所示。4.中断处理主体中断处理主体是响应此中断的功能程序。6.恢复现场将保护在堆栈中的数据弹出来恢复现场,必须按照先进后出的原则编写程序,保证现场的正确恢复,恢复时弹出的数量必须和保护时压栈的数量相等,否则将导致自动恢复的断点错误。8.返回此时CPU自动将压入到堆栈的断点地址弹回到程序计数器PC,从而使CPU继续执行刚才被中断的程序。

响应任意一个中断后,都需要对断点和现场进行保护,中断返回时必须恢复断点和现场,而断点的保护和恢复由硬件自动完成(即自动工作方式,将当前PC自动压入堆栈进行断点保护,将堆栈保护的断点送给PC完成断点恢复)。因此在中断处理程序中开始必须保护好现场,中断响应完成后返回前必须恢复好现场,它是用户程序必须完成的内容(即指令工作方式,中断处理程序中编写现场保护和恢复程序),以便返回时程序能正确执行。具体中断处理程序的流程如图6-2所示。

1.关中断

在低优先级中断保护现场前要将中断关掉,以防止现场没保护好却响应了高优先级中断而破坏了现场。

2.保护现场

一般是用堆栈指令将原程序中用到的寄存器、存储单元等的内容压入堆栈保护起来。因为中断发生的随机性,所以要按照最极端的情况考虑保护的内容,保护的内容一定要全面。

3.开中断

现场保护好后开中断,允许响应高优先级中断即中断嵌套

4.中断处理主体

中断处理主体是响应此中断的功能程序。

5.关中断

在低优先级中断恢复现场前要将中断关掉,以防止现场没恢复好却响应了高优先级中断而破坏了现场。

6.恢复现场

将保护在堆栈中的数据弹出来恢复现场,必须按照先进后出的原则编写程序,保证现场的正确恢复,恢复时弹出的数量必须和保护时压栈的数量相等,否则将导致自动恢复的断点错误。(www.chuimin.cn)

7.开中断

现场恢复好后开中断。

8.返回

此时CPU自动将压入到堆栈的断点地址弹回到程序计数器PC,从而使CPU继续执行刚才被中断的程序。

可以看出:中断优先级别高的(即IP的对应位设为1)在保护现场和恢复现场时无需关中断和开中断,中断嵌套只能出现在中断主体程序中。

【例6-2】外部中断1的优先级设为0,且主程序中有20H、R0、DPTR、PSW、A的内容需要保护,编制相应的程序。

【程序】

图6-2 中断处理程序流程图