当CPU正在执行某一程序时,若有中断响应,则CPU会转而执行中断服务程序。当中断服务程序执行完毕后,CPU会自动返回原来的程序继续执行。中断的执行条件包括:
1. 总中断已打开,相应中断也允许。
2. 中断源申请了中断,即有中断请求了,并且单片机允许中断时。
3. CPU在执行当前指令的最后一个时钟周期去查询INTR引脚,若查询到中断请求信号有效,同时在系统开中断(即IF=1)的情况下,CPU向发出中断请求的外设回送一个低电平有效的中断应答信号,作为对中断请求INTR的应答,系统自动进入中断响应周期。
因此,中断程序的执行时机主要取决于中断请求的触发和系统的中断允许状态。在中断请求被检测并确认后,系统会关闭中断,保存当前状态,然后跳转到中断服务程序的起始地址开始执行。执行完成后,CPU会自动返回到原程序的位置,恢复中断前的状态。