首页 理论教育 STC15W4K32S4系列单片机中断响应与入口

STC15W4K32S4系列单片机中断响应与入口

时间:2023-11-02 理论教育 版权反馈
【摘要】:首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向相应的中断入口地址,然后现场保护,执行相应的中断服务程序。中断服务程序通常由五部分组成,即中断入口、现场保护、中断服务程序、现场恢复和中断返回。编写中断服务程序应注意以下项目:1)响应中断后,单片机不会自动关闭中断系统。

STC15W4K32S4系列单片机中断响应与入口

中断响应的主要过程,是由硬件自动生成一条长调用指令LCALL addr16。这里的ad-dr16就是程序存储区中相应的中断源的中断入口地址。各中断源的入口地址见表4-1或表6-2。

例如,对于外部中断0的响应,产生的长调用指令为LCALL 0003H。生成LCALL指令后,CPU执行该指令。首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向相应的中断入口地址,然后现场保护,执行相应的中断服务程序。

各中断入口地址间只相隔8个字节,一般情况下难以安排下一个比较大的、完整的中断服务程序。因此,通常是在中断入口地址处放置一条无条件转移指令(AJMP或LJMP),使程序转向到执行在其他地址中存放的中断服务程序。

中断服务程序通常由五部分组成,即中断入口、现场保护、中断服务程序、现场恢复和中断返回。由于累加器A和程序状态寄存器PSW是共享资源,在主程序和其他子程序中一般都需要使用,所以,在执行中断服务程序前,需要对主程序用到的这些共享资源进行现场保护,以免资源冲突,破坏数据。待中断服务完成返回时,需要恢复现场。

不过,在使用C语言编程时,运行环境资源由系统统一调度,不需要用户做现场保护。(www.xing528.com)

编写中断服务程序应注意以下项目:

1)响应中断后,单片机不会自动关闭中断系统。如果用户希望尽快执行处理完该中断程序,不希望出现中断嵌套,则此时必须在进入中断服务程序开始处就关闭其他中断,禁止更高优先权的中断请求暂停当前服务程序的执行。

2)为了保证现场保护和现场恢复能够连续进行、不出差错,可以在现场保护和现场恢复之前,先关闭中断,待现场保护或现场恢复完成后,再按实际要求打开中断允许。

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

我要反馈