AT89S52单片机中断分为四个阶段:中断采样、中断查询、中断响应、中断返回。执行中断时,必须满足以下三个条件: 自动控制网www.eadianqi.com版权所有
本文来自www.eadianqi.com
图1 中断响应过程 中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行完这条指令后,把响应中断时所置位的优先级激活触发器清0,然后从堆栈中弹出两个字节内容(断点地址)装入程序计数器PC中,CPU就从原来被中断处重新执行被中断的程序。 5. 中断的响应时间 中断响应时间是指从查询中断请求标志位开始到转向中断矢量地址所需的机器周期数。响应中断的时间依中断请求发生的情况不同有长有短,因此,AT89S52单片机发生中断的时间根据中断类型和中断执行的方式不同而不同。 外部中断和的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被查询电路查询。如果产生了一个中断请求,而且满足响应的条件,CPU响应中断,查询中断请求标志位,同时这个周期恰好是指令的最后一个周期,则在这个机器周期结束后,中断请求被CPU 响应,产生一条硬件自动生成的长调用指令LCALL,以使CPU转到相应的服务程序入口。这条指令需两个机器周期,故最少需三个机器周期。 自动控制网www.eadianqi.com版权所有 若在中断查询时正好开始执行RET、RETI或访问IE、IP,则需当前指令完成后再继续执行一条指令,才进行中断响应。RET、RETI用2个机器周期,MUL、DIV 4个机器周期,LCALL 2个机器周期,共需要8个机器周期 因此,在系统中只有一个中断源的情况下,响应时间总是在三个机器周期到八个机器周期之间。 |