在每个机器周期的S5P2 期间, 端的电平被所存到TCON的IE0位,CPU在下一个机器周期 才会查询这些值。这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令 “LCALL”,使程序转入中断矢量入口。调用本身要用 2个机器周期,这样,从 外部中断请求有效到开始执行中断服务程序的第一条指令,至少需要3个机器周 期,这是最短的响应时间。
如果遇到中断受阻的情况,这中断响应时间会更长一些。例如,当一个同级或更高级的中断 服务程序正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一
条指令还没有进行到最后一个机器周期,附加的等待时间为1~3个机器周期;如果正在执行
的是RETI 指令或者访问IE或IP的指令,则附加的等待时间在5个机器周期内。 若系统中只有一个中断源,则响应时间为3~8个机器周期。 16、中断响应过程中,为什么通常要保护现场?如何保护?
答:因为一般主程序和中断服务程序都可能会用到累加器,PSW寄存器及其他一些寄存器。 CPU在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一 旦中断返回,将会造成主程序的混乱。因而在进入中断服务程序后,一般要先保护现场,然 后再执行中断处理程序,在返回主程序以前再恢复现场。 保护方法一般是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压入堆栈。在保护 现场和恢复现场时,为了不使现场受到破坏或者造成混乱,一般规定此时CPU 不响应新的中 断请求。这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后 开中断。如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开中断,恢复 现场之前关中断。 17、清叙述中断响应的CPU操作过程,为什么说中断操作是一个 CPU的微查询过程? 答:在中断响应中,CPU要完成以下自主操作过程:
a. 置位相应的优先级状态触发器,以标明所响应中断的优先级别 b. 中断源标志清零(TI、RI 除外)
c. 中断断点地址装入堆栈保护(不保护PSW) d. 中断入口地址装入PC,以便使程序转到中断入口地址处
在计算机内部,中断表现为 CPU 的微查询操作。89C51 单片机中,CPU 在每个机器周期的 S6 状态,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的 S1 状态中,响应最高级中断请求。
但是以下情况除外: a. CPU正在处理相同或更高优先级中断
b. 多机器周期指令中,还未执行到最后一个机器周期
c. 正在执行中断系统的SFR操作,如RETI 指令及访问IE、IP等操作时, 要延后一条指令
18、在中断请求有效并开中断状况下,能否保证立即响应中断?有什么条件? 答:在中断请求有效并开中断状况下,并不能保证立即响应中断。这是因为,在计算机内部, 中断表现为 CPU 的微查询操作。89C51 单片机中,CPU 在每个机器周期的 S6 状态下,查询 中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1 状态中,响 应最高级中断请求。
- 10 -