2020/5/7主要内容◆中断系统◆外部中断应用举例2020/5/7中断系统概述与上对比,单片机中也有同样的问题。CPU正在执行原程序,突然,被意外事情打断,转去执行新程序。CPU执行新程序结束后,又回到原程序中继续执行。这样的过程就叫。中断某同学正在教室写作业,忽然被人叫出去,回来后,继续写作业。这就是生活中中断的例子。2020/5/7※对突发事故,做出紧急处理。※根据现场随时变化的各种参数、信息,做出实时监控。※CPU与外部设备并行工作,以中断方式相联系,提高工作效率。※解决快速CPU与慢速外设之间的矛盾。※在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。中断的作用2020/5/7“五源中断,两级管理”五个中断源:入口地址外部中断0(/INT0)0003HT0溢出中断000BH外部中断1(/INT1)0013HT1溢出中断001BH串口中断0023H“五源中断”2020/5/7中断源的中断请求,如何通知CPU?利用中断请求标志位来通知!标志位在TCON、SCON两个寄存器中2020/5/7TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1——T1的溢出中断标志硬件置1,硬件清0TR1——T1的启动和停止控制位TF0——T0的溢出中断标志。(同TF1,只是针对T0的)IE1——外部中断1(/INT1)请求标志。外部有中断请求时,硬件使IE1置1,硬件清0。IE0——外部中断0(/INT0)请求标志。IT1——外部中断1(/INT1)触发类型控制位。IT1=0,低电平触发。IT1=1,下降沿触发。IT0——外中断0(/INT0)触发类型控制位,用法同IT1。中断标志位2020/5/7SCONRITIRB8TB8RENSM2SM1SM0TI——串口发送中断标志位。发送完数据,硬件使TI置1,软件清0(CLRTI)RI——串行口接收中断标志位。硬件置1,软件清0。中断标志位2020/5/7在中断源与CPU之间有二级中断允许控制逻辑电路,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。IEEX0ET0EX1ET1ES————EAEA——总控制位“—”——未定义位ES——串口控制位ET1——T1中断控制位EX1——/INT1控制位ET0——T0中断控制位EX0——/INT0控制位若为“1”,开关接通,允许例如SETBEA若为“0”,开关断开,不允许例如CLRIE.7两级管理——中断屏蔽2020/5/7为什么要有中断优先级?CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后!!!为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。IPPX0PT0PX1PT1PS——————PS——串口的中断优先级别PT1——定时/计数器T1的中断优先级别PX1——外部中断1的中断优先级别PT0——定时/计数器T0的中断优先级别PX0——外部中断0的中断优先级别该位是“1”时,为高级优先级该位是“0”时,为低级优先级两级管理——中断优先级2020/5/7同一级中的5个中断源的优先顺序是:/INT0中断T0溢出中断/INT1中断T1溢出中断串口中断高低出厂前已由厂家固化顺序——事先约定中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。2020/5/7日常生活中的中断与单片机中断的比较:某同学单片机过程说明正在看书执行主程序有人找出去中断信号中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点出去做事执行中断程序中断服务回来继续看返回主程序中断返回2020/5/7响应条件----CPU要响应中断需满足下列条件:①无同级或高级中断正在服务;②当前指令周期结束,如果查询中断请求的机器周期不是当前指令的最后一个周期,则不行;③若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。MCS-51中断的响应过程2020/5/7响应过程--单片机响应中断后,自动执行下列操作:①置位中断优先级有效触发器,即关闭同级和低级中断:②调用入口地址,断点入栈,相当于LCALL指令;③进入中断服务程序。2020/5/7响应时间--从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。(1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)+2个周期(长调用LCALL)2020/5/7(2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。2020/5/7中断返回—中断处理程序的最后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。2020/5/7CPU响应中断后,应撤除该中断请求标志,否则会再次中断。※对定时计数器T0、T1的溢出中断,CPU响应中断后,硬件自动清除中断请求标志TF0和TF1。※对边沿触发的外部中断INT1和INT0,CPU响应中断后硬件自动清除中断请求标志IE0和IE1。MCS-51中断请求的撤销2020/5/7※对于串行口中断,CPU响应中断后,没有用硬件清除中断请求标志TI、RI,即这些中断标志不会自动清除,必须用软件清除,这是在编串行通信中※对电平触发的外部中断,CPU在响应中断时也不会自动清除中断标志,因此,在CPU响应中断后应立即撤除INT1或INT0的低电平信号。MCS-51中断请求的撤销2020/5/7主要内容◆中断系统◆外部中断应用举例2020/5/7符号名称中断引起原因入口地址INT0外部中断0P3.2引脚的低电平或下降沿信号0003HINT1外部中断1P3.3引脚的低电平或下降沿信号0013HT0定时器0中断定时计数器0计数回零溢出000BHT1定时器1中断定时计数器1计数回零溢出001BHTI/RI串行口中断串行通信完成一帧数据发送或接收引起中断0023H2020/5/7注意用户对中断的控制和管理,实际是对4个与中断有关的寄存器IE、TCON、IP、SCON进行设置。这几个寄存器在单片机复位时是清零的,因此必须根据需要对这几个寄存器的有关位进行预置。2020/5/7注意※开中断总控开关EA,置位中断源的中断允许位。※INT0、INT1应选择中断触发方式。※多个中断源中断,应设定中断优先级,预置IP。※编写中断服务程序,保护现场和恢复现场。※若要在执行当前中断程序时禁止更高优先级中断,可以采用软件关CPU中断.或禁止某中断源中断,在中断返回前再开放中断。2020/5/7外部中断应用举例89C51的P1口接一个数码管,利用开关产生外部中断0请求信号,用数码管显示中断的次数。2020/5/7程序设计ORG0000HLJMPMAINORG0003HLJMPINIT0ORG0040HMAIN:SETBIT0SETBEX0SETBEAMOVP2,#0FFHMOVR0,#00HMOVDPTR,#LEDLOOP:CJNER0,#09H,REMOVR0,#00HRE:AJMPLOOPINIT0:INCR0MOVA,R0MOVCA,A+DPTRMOVP2,ARETILED:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0D8H,90H,88HEND