《单片机中断使用》由会员分享,可在线阅读,更多相关《单片机中断使用(24页珍藏版)》请在金锄头文库上搜索。
1、主要内容主要内容 中断系统中断系统 外部中断应用举例外部中断应用举例2024/8/191中断系统概述中断系统概述 与上对比,单片机中也有同样的问题。与上对比,单片机中也有同样的问题。CPU正正 在执行原程序,突然,被意外事情打断,转去执行在执行原程序,突然,被意外事情打断,转去执行 新程序。新程序。CPU执行新程序结束后,又回到原程序中执行新程序结束后,又回到原程序中 继续执行。这样的过程就叫继续执行。这样的过程就叫 。中断中断 某同学正在教室写作业,忽然被人叫出去,回来某同学正在教室写作业,忽然被人叫出去,回来某同学正在教室写作业,忽然被人叫出去,回来某同学正在教室写作业,忽然被人叫出去,回
2、来 后,继续写作业。这就是生活中中断的例子。后,继续写作业。这就是生活中中断的例子。后,继续写作业。这就是生活中中断的例子。后,继续写作业。这就是生活中中断的例子。 2024/8/192对突发事故,做出紧急处理。对突发事故,做出紧急处理。根据现场随时变化的各种参数、信息,做出实时监根据现场随时变化的各种参数、信息,做出实时监控。控。 CPUCPU与外部设备并行工作与外部设备并行工作, ,以中断方式相联系以中断方式相联系, ,提高提高工作效率。工作效率。解决快速解决快速CPU与慢速外设之间的矛盾。与慢速外设之间的矛盾。在多项外部设备同时提出中断请求情况下,在多项外部设备同时提出中断请求情况下,C
3、PUCPU能能根据轻重缓急响应外设的中断请求。根据轻重缓急响应外设的中断请求。 中断的作用中断的作用2024/8/193“五源中断,两级管理五源中断,两级管理” 五个中断源:五个中断源: 入口地址入口地址 外部中断外部中断0(/INT0) 0003H T0溢出中断溢出中断 000BH 外部中断外部中断1(/INT1) 0013H T1溢出中断溢出中断 001BH 串口中断串口中断 0023H “五源中断五源中断”2024/8/194中断源的中断请求,如何通知中断源的中断请求,如何通知CPU?利用中断请求标志位来通知!利用中断请求标志位来通知!标志位在标志位在TCON、SCON两个寄存器中两个寄
4、存器中2024/8/195TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1 T1的溢出中断标志的溢出中断标志 硬件置硬件置1,硬件清,硬件清0TR1 T1的启动和停止控制位的启动和停止控制位TF0 T0的溢出中断标志。(同的溢出中断标志。(同TF1,只是针对只是针对T0的)的)IE1 外部中断外部中断1(/INT1)请求标志。请求标志。 外部有中断请求时,硬件使外部有中断请求时,硬件使IE1置置1,硬件清,硬件清0。IE0 外部中断外部中断0(/INT0)请求标志。请求标志。IT1 外部中断外部中断1(/INT1)触发类型控制位。触发类型控制位。 IT1 = 0 ,低电平触发。低
5、电平触发。IT1 = 1 IT1 = 1 , 下降沿触发。下降沿触发。 IT0 外中断外中断0(/INT0)触发类型控制位,用法同触发类型控制位,用法同IT1。 中断标志位中断标志位2024/8/196SCON RI TIRB8TB8RENSM2SM1SM0TI 串口发送中断标志位。串口发送中断标志位。 发送完数据,硬件使发送完数据,硬件使TI置置1,软件清,软件清0(CLR TI) RI 串行口接收中断标志位。串行口接收中断标志位。 硬件置硬件置1,软件清,软件清0。 中断标志位中断标志位2024/8/197在中断源与在中断源与在中断源与在中断源与CPUCPU之间有二级中断允许控制逻辑电路,
6、类似开关,其之间有二级中断允许控制逻辑电路,类似开关,其之间有二级中断允许控制逻辑电路,类似开关,其之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由中第一级为一个总开关,第二级为五个分开关,由中第一级为一个总开关,第二级为五个分开关,由中第一级为一个总开关,第二级为五个分开关,由IEIE控制。控制。控制。控制。 IEEX0ET0EX1ET1 ES EAEA 总控制位总控制位 “” 未定义位未定义位ES 串口控制位串口控制位 ET1 T1中断控制位中断控制位 EX1 /INT1控制位控制位 ET0 T0中断控制位中断控制位 EX0 /INT0控制位控制位
7、若为若为“1”,开关接通,允,开关接通,允许许例如例如 SETB EA若为若为“0”,开关断开,不,开关断开,不允许允许例如例如 CLR IE.7两级管理两级管理中断屏蔽中断屏蔽2024/8/198为什么要有为什么要有中断优先级中断优先级?CPU同同一一时时间间只只能能响响应应一一个个中中断断请请求求。若若同同时时来来了了两两个个或或两两个个以上中断请求,就必须有先有后以上中断请求,就必须有先有后 ! 为此将为此将5个中断源分成高级、低级两个级别,高级优先,由个中断源分成高级、低级两个级别,高级优先,由IP控制。控制。 IPPX0PT0PX1PT1 PSP S 串口的中断优先级别串口的中断优先
8、级别PT1 定时定时 / 计数器计数器T1的中断优先级别的中断优先级别PX1 外部中断外部中断1 的中断优先级别的中断优先级别PT0 定时定时 / 计数器计数器T0的中断优先级别的中断优先级别PX0 外部中断外部中断0 的中断优先级别的中断优先级别该位是该位是“1”时,为高级优先级时,为高级优先级该位是该位是“ 0”时,为低级优先级时,为低级优先级两级管理两级管理中断优先级中断优先级2024/8/199同一级中的同一级中的5个中断源的优先顺序是:个中断源的优先顺序是: /INT0中断中断 T0溢出中断溢出中断 /INT1中断中断 T1溢出中断溢出中断 串口中断串口中断 高高低低出厂前已由厂家固
9、化顺序出厂前已由厂家固化顺序事先约定事先约定中断优先原则:(概括为四句话)中断优先原则:(概括为四句话)1、低级不打断高级、低级不打断高级2、高级不睬低级、高级不睬低级3、同级不能打断、同级不能打断4、同级、同时中断、同级、同时中断,事先约定事先约定。 2024/8/1910日常生活中日常生活中的中断与的中断与单片机单片机中断的比较:中断的比较: 某同学某同学 单片机单片机 过程说明过程说明正在看书正在看书 执行主程序执行主程序有人找出去有人找出去 中断信号中断信号 中断请求中断请求暂停看书暂停看书 暂停执行主程序暂停执行主程序 中断响应中断响应书中作记号书中作记号 当前当前PCPC入栈入栈
10、保护断点保护断点出去做事出去做事 执行中断程序执行中断程序 中断服务中断服务回来继续看回来继续看 返回主程序返回主程序 中断返回中断返回2024/8/1911响应条件响应条件-CPU-CPU要响应中断需满足下列条件:要响应中断需满足下列条件: 无同级或高级中断正在服务;无同级或高级中断正在服务; 当前指令周期结束,如果查询中断请求的机器当前指令周期结束,如果查询中断请求的机器 周期不是当前指令的最后一个周期,则不行;周期不是当前指令的最后一个周期,则不行; 若现行指令是若现行指令是RETIRETI、RETRET或或访问访问IEIE、IPIP指令,则指令,则需要执行到当前指令及下一条指令方可响应
11、。需要执行到当前指令及下一条指令方可响应。MCS-51中断的响应过程中断的响应过程 2024/8/1912响应过程响应过程-单片机响应中断后,自动执行下列操作:单片机响应中断后,自动执行下列操作: 置位中断优先级有效触发器,即关闭同级和低级置位中断优先级有效触发器,即关闭同级和低级 中断:中断: 调用入口地址,断点入栈,相当于调用入口地址,断点入栈,相当于LCALLLCALL指令;指令; 进入中断服务程序。进入中断服务程序。 2024/8/1913响应时间响应时间-从查询中断请求标志位到转向中断服务入从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。口地址所需的机器周期数。(1 1)
12、最快响应时间最快响应时间以外部中断的电平触发为最快。以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周从查询中断请求信号到中断服务程序需要三个机器周期:期:1 1个周期(查询)个周期(查询)2 2个周期(长调用个周期(长调用LCALLLCALL)2024/8/1914(2 2)最长时间最长时间若当前指令是若当前指令是RETRET、RETIRETI和和IPIP、IEIE指令,紧接着下指令,紧接着下一条是乘除指令发生,则最长为一条是乘除指令发生,则最长为8 8个周期:个周期:2 2个周期执行当前指令(其中含有个周期执行当前指令(其中含有1 1个周期查询)个周期查询)4 4个
13、周期乘除指令个周期乘除指令2 2个周期长调用个周期长调用8 8个周期。个周期。2024/8/1915中断返回中断返回中断处理程序的最后一条指令是中断处理程序的最后一条指令是RETIRETI,它使它使CPUCPU结束中断处理程序的执行,返回到断点处,结束中断处理程序的执行,返回到断点处,继续执行主程序。继续执行主程序。2024/8/1916 CPU CPU响应中断后,应撤除该中断请求标志,否响应中断后,应撤除该中断请求标志,否则会再次中断。则会再次中断。对定时计数器对定时计数器T0T0、T1T1的溢出中断,的溢出中断,CPUCPU响应中断响应中断后,硬件自动清除中断请求标志后,硬件自动清除中断请
14、求标志TF0TF0和和TF1TF1。对边沿触发的外部中断对边沿触发的外部中断INT1INT1和和INT0INT0,CPUCPU响应中响应中断后硬件自动清除中断请求标志断后硬件自动清除中断请求标志IE0IE0和和IE1IE1。MCS-51中断请求的撤销中断请求的撤销2024/8/1917对于串行口中断,对于串行口中断,CPUCPU响应中断后,没有用硬件响应中断后,没有用硬件清除中断请求标志清除中断请求标志TITI、RIRI,即这些中断标志,即这些中断标志 不会不会自动清除,必须用软件清除,这是在编串行通信中自动清除,必须用软件清除,这是在编串行通信中断服务中应该注意的。断服务中应该注意的。对电平
15、触发的外部中断,对电平触发的外部中断,CPUCPU在响应中断时也不在响应中断时也不会自动清除中断标志,因此,在会自动清除中断标志,因此,在CPUCPU响应中断后应响应中断后应立即撤除立即撤除INT1INT1或或INT0INT0的低电平信号。的低电平信号。MCS-51中断请求的撤销中断请求的撤销2024/8/1918主要内容主要内容 中断系统中断系统 外部中断应用举例外部中断应用举例2024/8/1919符号符号符号符号 名名名名 称称称称 中中中中 断断断断 引引引引 起起起起 原原原原 因因因因 入口地址入口地址入口地址入口地址INT0INT0INT0INT0 外部中断外部中断外部中断外部中
16、断0 0 0 0 P3.2P3.2P3.2P3.2引脚的低电平或下降引脚的低电平或下降引脚的低电平或下降引脚的低电平或下降沿信号沿信号沿信号沿信号 0003H0003H0003H0003HINT1INT1INT1INT1 外部中断外部中断外部中断外部中断1 1 1 1P3.3P3.3P3.3P3.3引脚的低电平或下降沿引脚的低电平或下降沿引脚的低电平或下降沿引脚的低电平或下降沿信号信号信号信号 0013H0013H0013H0013HT0T0T0T0定时器定时器定时器定时器0 0 0 0中断中断中断中断 定时计数器定时计数器定时计数器定时计数器0 0 0 0计数回零溢出计数回零溢出计数回零溢出
17、计数回零溢出 000BH000BH000BH000BHT1T1T1T1定时器定时器定时器定时器1 1 1 1中断中断中断中断 定时计数器定时计数器定时计数器定时计数器1 1 1 1计数回零溢出计数回零溢出计数回零溢出计数回零溢出 001BH001BH001BH001BHTI/RI TI/RI TI/RI TI/RI 串行口中断串行口中断串行口中断串行口中断 串行通信完成一帧数据发送串行通信完成一帧数据发送串行通信完成一帧数据发送串行通信完成一帧数据发送或接收引起中断或接收引起中断或接收引起中断或接收引起中断 0023H0023H0023H0023H2024/8/1920注意注意 用户对中断的控
18、制和管理,实际是对用户对中断的控制和管理,实际是对4 4个与中断有个与中断有关的寄存器关的寄存器IEIE、TCONTCON、IPIP、SCONSCON进行设置。这几个进行设置。这几个寄存器在单片机复位时是清零的,因此必须根据需寄存器在单片机复位时是清零的,因此必须根据需要对这几个寄存器的有关位进行预置。要对这几个寄存器的有关位进行预置。2024/8/1921注意注意 开中断总控开关开中断总控开关EAEA,置位中断源的中断允许位。,置位中断源的中断允许位。 INT0 INT0、INT1INT1应选择中断触发方式。应选择中断触发方式。多个中断源中断,应设定中断优先级,预置多个中断源中断,应设定中断
19、优先级,预置IPIP。编写中断服务程序,保护现场和恢复现场。编写中断服务程序,保护现场和恢复现场。若要在执行当前中断程序时禁止更高优先级中断,若要在执行当前中断程序时禁止更高优先级中断,可以采可以采 用软件关用软件关CPUCPU中断或禁止某中断源中断,中断或禁止某中断源中断,在中断返回前再开放中断。在中断返回前再开放中断。2024/8/1922外部中断应用举例外部中断应用举例89C5189C51的的P1P1口接一个数码管,利用开关产生口接一个数码管,利用开关产生外部中断外部中断0 0请求信号,用数码管显示中断的次数。请求信号,用数码管显示中断的次数。2024/8/1923程序设计程序设计ORG
20、 0000HORG 0000HLJMP MAINLJMP MAINORG 0003HORG 0003HLJMP INIT0LJMP INIT0ORG 0040HORG 0040HMAIN:MAIN: SETB IT0SETB IT0 SETB EX0 SETB EX0 SETB EA SETB EA MOV P2,#0FFH MOV P2,#0FFH MOV R0,#00H MOV R0,#00H MOV DPTR,#LED MOV DPTR,#LEDLOOP:LOOP: CJNE R0,#09H,RE CJNE R0,#09H,REMOV R0,#00HMOV R0,#00HRE:RE:AJMP LOOPAJMP LOOPINIT0:INIT0: INC R0INC R0 MOV A,MOV A,R0R0 MOVC A,A+MOVC A,A+DPTRDPTR MOV P2,A MOV P2,A RETI RETILEDLED:DB :DB 0C0C0H,0H,0F90F9H,H,0A0A4H,4H,0B00B0H,H,9999H,H,9292H,H,8282H,H,0D80D8H,H,9090H,8H,88 8H HENDEND2024/8/1924