首页 理论教育 HCS08单片机中断处理实践

HCS08单片机中断处理实践

时间:2023-11-19 理论教育 版权反馈
【摘要】:HCS08单片机的中断模型如图6-4所示,主要由中断相关控制寄存器的状态位组成。图6-4 HCS08单片机的中断模型当CPU接收到一个有效的中断请求时,它在完成当前的指令以后响应此中断。2)将CCR中的I位置位来屏蔽中断。3)取出当前等待的最高优先级的中断向量。当CPU响应中断时,CCR的I位会自动置位以防止其他的中断进入而打断当前的ISR。需注意的是,在从ISR返回之前,引起中断的状态标志位必须要被清零。

HCS08单片机中断处理实践

HCS08单片机的中断模型如图6-4所示,主要由中断相关控制寄存器的状态位组成。如果一个中断源模块发生了中断事件,对应的中断状态标志位就会立刻置1,当模块的局部中断允许位为l(即允许中断时),就会向CPU产生中断请求,但此刻的中断请求仍未被真正送至CPU,只有在CCR寄存器中的全局中断屏蔽位(CCR寄存器的I位)为0的情况下,该中断请求才允许送至CPU响应。

系统复位之后,MCU的总中断允许位默认为l,并屏蔽了所有的可屏蔽中断源,所以用户程序应该在该位清零允许CPU响应中断请求之前,做好模块的初始化设置。

978-7-111-50417-7-Chapter06-8.jpg

图6-4 HCS08单片机的中断模型

当CPU接收到一个有效的中断请求时,它在完成当前的指令以后响应此中断。中断的执行过程是自动顺序执行,其包括以下步骤。

1)在堆栈中保存CPU寄存器。(www.xing528.com)

2)将CCR中的I位置位来屏蔽中断。

3)取出当前等待的最高优先级中断向量

4)用从中断向量地址处取得的前3个字节的程序信息来填充指令队列。

当CPU响应中断时,CCR的I位会自动置位以防止其他的中断进入而打断当前的ISR。通常状态下,当CCR恢复到进入ISR前堆栈保留的值,I位会回复到0。中断服务程序由RTI指令结束,并用先前保存在堆栈中的值来恢复CCR、A、X及PC寄存器中的值。

需注意的是,在从ISR返回之前,引起中断的状态标志位必须要被清零。通常的做法是将该状态标志在ISR的开始位置就清零,以便在中断服务期间同一中断源能够产生另一次中断请求。

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

我要反馈