MCS51中断
--ujslili
1.响应中断条件
1.开中断;EA=1;中断源的IE也为1
2.有中断申请
3.当前并未执行任何中断服务子程序,或者当前中断优先级低
4.当前机器周期恰是当前执行指令的最后一个机器周期,当前指令周期已结束
5.不是RET,IRET,对IE,IP的写
2.中断源
3.中断寄存器
为什么又增加了一种沿触发方式呢?
因为使用电平触发方式时,如果 P3.2 脚上申请中断的低电平持续时间很长,在执行完一遍中断服务子程序之后,该低电平仍未撤销,那么还会引起下一次中断申请,甚至若干次中断申请,直至 P3.2 脚上的电平变高时为止。
如果CPU响应了这个中断,则应该清除标志位IE0
-
对于边沿触发方式,此时硬件能够自动清IE0
扫描二维码关注公众号,回复: 12406336 查看本文章 -
对于电平触发方式,只有外部中断申请信号变成高电平,才能够自动清除中断标志位。如果CPU暂时不能够响应中断,则 IE0始终为1,表示中断申请有效。
就是中断标志位一直都是1。正常都是用边沿触发。
4.中断响应
为什么响应时间是3-8个机器周期呢?
3个机器周期
- 第一个周期:查询中断请求标志位。
- 第二三个周期:LCALL指令需要2个周期
所以1+2=3个机器周期
8个机器周期
-
两个周期:执行 RET、RETI;有一个查询也在这个里边。
-
四个机器周期:后面跟着的指令假如是 MUL、DIV
乘除指令,(四个机器周期) -
两个周期:执行LCALL;
5.中断请求的撤出
6.中断编程
--仅供参考,如有不对敬请指正