一个中断源的中断请求被响应,必须满足什么必要条件?
一个中断源的中断请求被响应,必须满足以下必要条件: (1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。 (2)该中断源发出中断请求,即该中断源对应的中断请求标志为1。 (3)该中断源的中断允许位=1,即该中断被允许。 (4)无同级或更高级中断正在被服务。
一个中断源的中断请求被响应,必须满足以下必要条件: (1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。 (2)该中断源发出中断请求,即该中断源对应的中断请求标志为1。 (3)该中断源的中断允许位=1,即该中断被允许。 (4)无同级或更高级中断正在被服务。
51有5个中断源. 外部中断0定时器/计数器T0外部中断1定时器/计数器T1串行口
CPU是通过测试TCON和SCON中各标志位来确定是否有中断请求的发生以及是哪一个中断源的请求
(1)有中断源发出中断请求。 (2)中断总允许控制位EA=l, CPU开放总中断。 (3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。 (6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。 满足以上条件,则CPU响应响应中断元的中断请求。
单片机一旦响应中断请求,就由硬件完成以下功能: (1) 根据响应的中断源的中断优先级,使相应的优先级状态触发器置1; (2) 执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源; (3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); (4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。 (5)中断返回,程序返回断点处继续执行。 外部中断0(INT0) 0003H定时器T0中断 000BH外部中断1(INT1) 0013H定时器T1中断 001BH串行口中断 0023H
(1)有中断源发出中断请求。 (2)中断总允许控制位EA=l, CPU开放总中断。 (3)申请中断的中断源的中断允许位为1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。 (6)若现行指令为RETI或访问IE或IP指令时,读指令以及紧接着的另一条指令已执行完毕。 外部中断0(INT0) 0003H定时器T0中断 000BH外部中断1(INT1) 0013H定时器T1中断 001BH串行口中断 0023H
(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。 CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。 (2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O即可。 (3)由中断优先级控制寄存器IP控制中断优先级,相应位置1,则设为高级中断,置0则为低级。其中:PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级。