1、2018/7/21,主要内容, 中断系统, 外部中断应用举例,2018/7/21,中断系统概述,与上对比,单片机中也有同样的问题。CPU正 在执行原程序,突然,被意外事情打断,转去执行 新程序。CPU执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫 。,某同学正在教室写作业,忽然被人叫出去,回来 后,继续写作业。这就是生活中中断的例子。,2018/7/21,对突发事故,做出紧急处理。 根据现场随时变化的各种参数、信息,做出实时监控。 CPU与外部设备并行工作,以中断方式相联系,提高工作效率。 解决快速CPU与慢速外设之间的矛盾。 在多项外部设备同时提出中断请求情况下,CPU能根据轻重
2、缓急响应外设的中断请求。,中断的作用,2018/7/21,“五源中断,两级管理”,五个中断源: 入口地址外部中断0(/INT0) 0003HT0溢出中断 000BH外部中断1(/INT1) 0013HT1溢出中断 001BH串口中断 0023H,“五源中断”,2018/7/21,中断源的中断请求,如何通知CPU?利用中断请求标志位来通知!,标志位在TCON、SCON两个寄存器中,2018/7/21,TCON,中断标志位,2018/7/21,SCON,中断标志位,2018/7/21,在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。
3、,IE,若为“1”,开关接通,允许 例如 SETB EA 若为“0”,开关断开,不允许 例如 CLR IE.7,两级管理中断屏蔽,2018/7/21,为什么要有中断优先级?,P S 串口的中断优先级别 PT1 定时 / 计数器T1的中断优先级别 PX1 外部中断1 的中断优先级别 PT0 定时 / 计数器T0的中断优先级别 PX0 外部中断0 的中断优先级别,该位是“1”时,为高级优先级 该位是“ 0”时,为低级优先级,两级管理中断优先级,2018/7/21,同一级中的5个中断源的优先顺序是:,中断优先原则:(概括为四句话) 1、低级不打断高级 2、高级不睬低级 3、同级不能打断 4、同级、同
4、时中断,事先约定。,2018/7/21,2018/7/21,响应条件-CPU要响应中断需满足下列条件: 无同级或高级中断正在服务; 当前指令周期结束,如果查询中断请求的机器 周期不是当前指令的最后一个周期,则不行; 若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。,MCS-51中断的响应过程,2018/7/21,响应过程-单片机响应中断后,自动执行下列操作: 置位中断优先级有效触发器,即关闭同级和低级 中断: 调用入口地址,断点入栈,相当于LCALL指令; 进入中断服务程序。,2018/7/21,响应时间-从查询中断请求标志位到转向中断服务入口地址所
5、需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)2个周期(长调用LCALL),2018/7/21,(2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。,2018/7/21,中断返回中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。,2018/7/21,CPU响应中断后,应撤除该中断请求标志,否则会再次中断。 对定时计数
6、器T0、T1的溢出中断,CPU响应中断后,硬件自动清除中断请求标志TF0和TF1。 对边沿触发的外部中断INT1和INT0,CPU响应中断后硬件自动清除中断请求标志IE0和IE1。,MCS-51中断请求的撤销,2018/7/21,对于串行口中断,CPU响应中断后,没有用硬件清除中断请求标志TI、RI,即这些中断标志 不会自动清除,必须用软件清除,这是在编串行通信中断服务中应该注意的。 对电平触发的外部中断,CPU在响应中断时也不会自动清除中断标志,因此,在CPU响应中断后应立即撤除INT1或INT0的低电平信号。,MCS-51中断请求的撤销,2018/7/21,主要内容, 中断系统, 外部中断
7、应用举例,2018/7/21,2018/7/21,注意,用户对中断的控制和管理,实际是对4个与中断有关的寄存器IE、TCON、IP、SCON进行设置。这几个寄存器在单片机复位时是清零的,因此必须根据需要对这几个寄存器的有关位进行预置。,2018/7/21,注意, 开中断总控开关EA,置位中断源的中断允许位。, INT0、INT1应选择中断触发方式。,多个中断源中断,应设定中断优先级,预置IP。,编写中断服务程序,保护现场和恢复现场。,若要在执行当前中断程序时禁止更高优先级中断,可以采 用软件关CPU中断或禁止某中断源中断,在中断返回前再开放中断。,2018/7/21,外部中断应用举例,89C5
8、1的P1口接一个数码管,利用开关产生外部中断0请求信号,用数码管显示中断的次数。,2018/7/21,程序设计,ORG 0000H LJMP MAIN ORG 0003H LJMP INIT0 ORG 0040H MAIN:SETB IT0SETB EX0SETB EAMOV P2,#0FFHMOV R0,#00HMOV DPTR,#LED LOOP:CJNE R0,#09H,RE,MOV R0,#00H RE: AJMP LOOP INIT0:INC R0MOV A,R0MOVC A,A+DPTRMOV P2,A RETI LED:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0D8H,90H,88H END,