8031单片机CPU响应中断源请求详细过程及程序示例
扫描二维码
随时随地手机看文章
MCS-51的CPU在每一个机器周期顺序检查每一个中断源,在每一机器周期的状态周期S6采样并按优先级顺序处理所有被激活了的中断请求,如果没有被下述条件所阻止,将在下一个机器周期的状态周期S1响应激活了的最高级中断请求。
(1)CPU正在处理相同的或更高优先级的中断。
(2)现行的机器周期不是所执行指令最后一个机器周期。
(3)正在执行的指令是RETI或是访问IE或IP的指令(CPU在执行RETI或访问IE、IP的指令后,至少需要再执行一条指令才会响应新的中断请求。
如果上述条件中有一个存在,CPU将丢弃中断查询的结果。
CPU响应中断时,先置相应的优先级状态触发器(该触发器指出CPU开始处理的中断优先级别),然后执行一个硬件子程序调用,使控制转移到相应的入口,中断请求源申请标志清0(T1和RI除外),硬件把程序计数器PC的内容压入堆栈,把中断子程序(即中断服务程序)的入口地址(中断向量)送入程序计数器PC。
8031单片机各个断源的中断服务程序入口地址是固定不变的,如下表所示。CPU从相应的中断服务程序入口地址开始执行程序。
图片1
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0
ORG000BH
AJMPT0
ORG001BH
AJMPINT1
ORG0023H
AJMPES
CPU从相应的中断服务程序入口地址开始执行程序,直到RETI为止。RETI指令表不中断服务程序的结束,CPU执行该指令时、一方面把响应中断时所置位的优先级状态触发器清0;另—方面从栈顶弹出断点地址(两个字节)送到程序计数器PC,CPU从原来中断处更新执行被中断的程序。