【摘要】:8051 CPU在每个机器周期顺序检查每一个中断源,在机器周期的S6采样并按优先级顺序处理所有被激活了的中断请求,如果没有被下述条件所阻止,将在下一个机器周期的状态P1响应激活了的最高中断请求。如果存在上述条件之一,CPU将丢弃中断查询结果。由此可见,用户的中断服务程序末尾必须安排一条返回指令RETI,CPU现场保护和恢复必须由用户的中断服务程序实现。
8051 CPU在每个机器周期顺序检查每一个中断源,在机器周期的S6采样并按优先级顺序处理所有被激活了的中断请求,如果没有被下述条件所阻止,将在下一个机器周期的状态P1(S1)响应激活了的最高中断请求。
①CPU正在处理相同的或更高优先级的中断。
②现行的机器周期不是所执行指令的最后一个机器周期。
③正在执行的指令是RETI或是访问IE或IP的指令。CPU在RETI或访问IE、IP的指令后,至少需要再执行一条指令才会响应新的中断请求。
如果存在上述条件之一,CPU将丢弃中断查询结果。
处理机响应中断时,先置相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一个硬件子程序调用,把程序的入口地址送给程序计数器PC,各中断源服务程序的入口地址为:
中断源 入口地址(www.xing528.com)
外部中断0 0003H
定时器/计数器T0 000BH
外部中断1 0013H
定时器/计数器T1 001BH
串行口中断 0023H
处理程序从该地址开始一直执行到RETI指令为止,RETI指令是中断服务程序结束的标志,CPU执行完这条指令后,清零响应中断所置位的优先级状态触发器,然后将从堆栈中弹出顶上的两个字节送到程序计数器PC,CPU从原来中断处重新执行被中断的程序。由此可见,用户的中断服务程序末尾必须安排一条返回指令RETI,CPU现场保护和恢复必须由用户的中断服务程序实现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。