第5章 MCS-51单片机的中断系统.ppt
本章介绍的主要内容本章介绍的主要内容 中断的基本概念中断的基本概念 中断的系统结构中断的系统结构 中断的响应过程中断的响应过程 中断的应用编程中断的应用编程 在在CPU和外设交换信息时,存在着快速和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。突发事件,为此,计算机中通常采用中断技术。中断中断 CPU和外设并行工作,当外设数据准备好和外设并行工作,当外设数据准备好(或或有某种突发事件发生有某种突发事件发生)时向时向CPU提出请求,提出请求,CPU暂暂停正在执行的程序转而为该外设服务停正在执行的程序转而为该外设服务(或处或处 理紧理紧急事件急事件),处理完毕再回到原断点继续执行原程序。,处理完毕再回到原断点继续执行原程序。中断源中断源 引起中断的原因引起中断的原因,中断申请的来源,中断源中断申请的来源,中断源 可以是可以是I/O设备、故障、时钟、调试中人为设置。设备、故障、时钟、调试中人为设置。中断优先级中断优先级 当有多个中断源同时当有多个中断源同时 向向CPU申请中断时,申请中断时,CPU优先响应最需紧急处理的中断请求,处理完毕再响优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的应优先级别较低的,这种预先安排的响应次序。,这种预先安排的响应次序。中断的嵌套中断的嵌套 在中断系统中,高优先级的在中断系统中,高优先级的 中断请求能中断正中断请求能中断正在进行的较低级的中断源处理,在进行的较低级的中断源处理,本章将讨论本章将讨论MCS51系列单片机的中断系统。系列单片机的中断系统。5.1 5.1 中断系统结构中断系统结构 8XX51有有5个中断源,个中断源,3个在片内,个在片内,2个在片外个在片外,它们在程序存贮器中有固定的中断入口地址,它们在程序存贮器中有固定的中断入口地址,当当CPU响应中断时,硬件自动形成这些地址,由此响应中断时,硬件自动形成这些地址,由此进入中断服务程序;进入中断服务程序;5个中断源有两级中断优先个中断源有两级中断优先级,可形式中断嵌套;级,可形式中断嵌套;8XX51有有5个中断源,其符号、名称、产生个中断源,其符号、名称、产生条件及中断服务程序的入口地址如表条件及中断服务程序的入口地址如表5.1。符号符号 名名 称称 中中 断断 引引 起起 原原 因因 中断服务中断服务程序入口程序入口INT0INT0 外部中外部中断断0 0 P3.2 P3.2引脚的低电平或下降引脚的低电平或下降沿信号沿信号 0003H0003HINT1INT1 外部中外部中断断1 1P3.3P3.3引脚的低电平或下降沿引脚的低电平或下降沿信号信号 0013H0013HT0T0定时器定时器0 0中断中断 定时计数器定时计数器0 0计数回零溢出计数回零溢出 000BH000BHT1T1定时器定时器1 1中断中断 定时计数器定时计数器1 1计数回零溢出计数回零溢出 001BH001BHTI/RI TI/RI 串行口中串行口中断断 串行通信完成一帧数据发送串行通信完成一帧数据发送或接收引起中断或接收引起中断 0023H0023H表表 5.1二、中断控制的有关寄存器二、中断控制的有关寄存器 (1)(1)中断的允许和禁止中断的允许和禁止中断控制寄存器中断控制寄存器IEIE IE IE寄存器的各位对应相应的中断源,如果允许寄存器的各位对应相应的中断源,如果允许该中断源中断则该位置该中断源中断则该位置1 1,禁止中断则该位置,禁止中断则该位置0 0。EA EA -ES ES ETIETI EX1 EX1 ET0 ET0 EX0 EX0中断总控中断总控允允/禁禁 不不 用用 不不用用 串行口串行口允允/禁禁 T1T1允允/禁禁 INT1 INT1允允/禁禁 T0 T0允允/禁禁 INT0INT0允允/禁禁 EAEA:中断总控开关,是:中断总控开关,是CPUCPU是否响应中断的前提。是否响应中断的前提。EA=1EA=1,CPUCPU开中断开中断;EA=0 EA=0,CPUCPU关中断。关中断。ESES:串行口中断允许位,串行口中断允许位,ES=1ES=1,允许串行口发送,允许串行口发送/接收中断;接收中断;ES=0ES=0,禁止串行口中断。,禁止串行口中断。ET1ET1:定时器:定时器T1T1中断允许位,中断允许位,ET1=1ET1=1,允许,允许T1T1计数溢出中断;计数溢出中断;ET1=0ET1=0,禁止,禁止T1T1中断。中断。ET0ET0:定时器定时器T0T0中断允许位中断允许位,ET0=1ET0=1,允许,允许T1T1计数溢出中断;计数溢出中断;ET0=0ET0=0,禁止,禁止T0T0中断。中断。EX1EX1:外部中断外部中断INT1INT1允许位,允许位,EX1=1EX1=1,允许,允许INT1INT1中断;中断;EX1=0EX1=0,禁止,禁止INT1INT1中断。中断。EX0EX0:外部中断外部中断INT0INT0允许位,允许位,EX0=1EX0=1,允许,允许INT0INT0中断;中断;EX0=0EX0=0,禁止,禁止INT0INT0中断。中断。说明:说明:1.IT0和和IT1为外中断为外中断INT0 和和INT1中断触发方式选择,若选下降中断触发方式选择,若选下降沿触发则相应位置沿触发则相应位置1;若选低电平触发;若选低电平触发,IT相应位置相应位置0。2.IE1和和IE0为外中断为外中断INT0 和和INT1中断源有中断请求,该中断标中断源有中断请求,该中断标志置志置1,无中断请求,该中断标志置,无中断请求,该中断标志置0 3.TR0 和和 TR1 为定时器为定时器T0和和T1 工作启动和停止控制。工作启动和停止控制。TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 请求请求有有/无无 T1工作工作启启/停停 T0 请求请求有有/无无 T0 工作工作启启/停停 INT1 请求请求有有/无无 INT1方式方式下沿下沿/低低电平电平 INT0请求请求有有/无无 INT0方式方式下沿下沿/低电平低电平(2)(2)中断请求标志及外部中断方式选择寄存器中断请求标志及外部中断方式选择寄存器TCONTCON(3)(3)中断优先级管理寄存器中断优先级管理寄存器IPIP 五个中断源的优先级别由五个中断源的优先级别由IP寄存器管理,相应位置寄存器管理,相应位置1,则该中断源优先级别高,置,则该中断源优先级别高,置0的优先级的优先级 别低。别低。-PSPT1PX1PT0PX0无无用用位位无无用用位位无无用用位位串行串行 口口高高/低低 T1高高/低低 INT1高高/低低 T0高高/低低 INT0高高/低低 T0INT0INT1T1串行口串行口 当当 某几个中断源在某几个中断源在IP寄存器相应位同为寄存器相应位同为1或同为零时或同为零时,由内部查询确定优先级,查询的顺序是:,由内部查询确定优先级,查询的顺序是:CPU优先响应优先响应 先查询的中断请求先查询的中断请求MCS_51MCS_51MCS_51MCS_51系列单片机的中断结构可以用图系列单片机的中断结构可以用图系列单片机的中断结构可以用图系列单片机的中断结构可以用图5.15.15.15.1示。示。示。示。5.2 中断响应过程中断响应过程 一、中断处理过程一、中断处理过程 中断处理过程分为四个阶段:中断处理过程分为四个阶段:中断请中断请求,中断响应,中断处理、中断返回。求,中断响应,中断处理、中断返回。MCS51系列单系列单 片机的中断过程流程如片机的中断过程流程如图图5.2所示。所示。N NNYYYN执执 行行 指指 令令中断标志中断标志1?(中断请求中断请求?)指令指令最后一个最后一个T周期周期?EA=1?允允 许许 位位=1?CPU 判判 别优别优 先权先权,响响 应优应优 先权高先权高 的中断的中断断点的断点的PC进栈进栈,中断服务入口地址送中断服务入口地址送PC撤撤 除除 中中 断断 标标 志志中中 断断 服服 务务中中 断断 返返 回回,断断 点点 出出 栈栈 送送 PC 中断请求中断请求.中断响应中断响应中断服务中断服务中断返回中断返回l中断请求、中断响应过程由硬件完成。中断请求、中断响应过程由硬件完成。l中断服务程序应根据需要进行编写。程序中要注意保中断服务程序应根据需要进行编写。程序中要注意保护现场和恢复现场。护现场和恢复现场。l中断返回是通过执行一条中断返回是通过执行一条RETI中断返回指令中断返回指令,使堆,使堆栈中被压入的断栈中被压入的断 点地址送点地址送PC,从而返回主程序的断,从而返回主程序的断点继续执行主程序。另外点继续执行主程序。另外RETI还有恢复优先级状态还有恢复优先级状态触发器触发器 的作用,并使部分中断源标志(除的作用,并使部分中断源标志(除TI、RI)清清0,因此不能以,因此不能以RET指令代替指令代替“RETI”指令。指令。若某个中断源通过编程设置,处于被打开的状态,并满若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,然而下面三种情足中断响应的条件,然而下面三种情 况单片机不响应此中断况单片机不响应此中断.当前正在执行的那条指令没执行完;当前正在执行的那条指令没执行完;当前响应了同级或高级中断;当前响应了同级或高级中断;正在操作正在操作IEIE、IPIP中断控制寄存器或执行中断控制寄存器或执行RETIRETI指令。指令。在正常的情况下,从中断请求信号有效开始,在正常的情况下,从中断请求信号有效开始,到中断得到中断得到响应,通常需要到响应,通常需要3个机器周期到个机器周期到8个机器周期。个机器周期。二、中断请求的撤除二、中断请求的撤除 CPU响应中断后,应撤除该中断请求标志,否则会再次中断。响应中断后,应撤除该中断请求标志,否则会再次中断。对电平触发的外部中断对电平触发的外部中断,CPU在响应中断时也不会自动在响应中断时也不会自动清除中断标志,因此,在清除中断标志,因此,在CPU响应中断后应立即撤除响应中断后应立即撤除INT1或或INT0的低电平信号。的低电平信号。对定时计数器对定时计数器T0、T1的溢出中断,的溢出中断,CPU响应中断后,硬件响应中断后,硬件自动清除中断请求标志自动清除中断请求标志TF0和和TF1。对边沿触发的外部中断对边沿触发的外部中断INT1和和INT0,CPU响应中断后硬件响应中断后硬件自动清除中断请求标志自动清除中断请求标志IE0和和IE1。对于串行口中断,对于串行口中断,CPU响应中断后,响应中断后,没有用硬件清除中断请求没有用硬件清除中断请求标志标志TI、RI,即这些中断标志,即这些中断标志 不会自动清除,必须用软件清除,不会自动清除,必须用软件清除,这是在编串行通信中断服务中应该注意的。这是在编串行通信中断服务中应该注意的。若要在执行当前中断程序时禁止更高优先级中断,可以采用软若要在执行当前中断程序时禁止更高优先级中断,可以采用软若要在执行当前中断程序时禁止更高优先级中断,可以采用软若要在执行当前中断程序时禁止更高优先级中断,可以采用软件关件关件关件关CPUCPU中断或禁止某中断源中断,在中断返回前再开放中中断或禁止某中断源中断,在中断返回前再开放中中断或禁止某中断源中断,在中断返回前再开放中中断或禁止某中断源中断,在中断返回前再开放中断。断。断。断。汇编语言的中断服务程序按规定的中断矢量地址汇编语言的中断服务程序按规定的中断矢量地址存入,由于五个中断矢量地址存入,由于五个中断矢量地址0003H、000BH、0013H、001BH、0023H之间相距很近,往往装不下之间相距很近,往往装不下一个中断服务程序,通常将中断服务程一个中断服务程序,通常将中断服务程 序安排在程序安排在程序存贮器的其他地址空间,而在矢量地址的单元中序存贮器的其他地址空间,而在矢量地址的单元中安排一条转移指令。安排一条转移指令。5.3 5.3 汇编语言中断程序的设计汇编语言中断程序的设计 每个中断源有固定的中断服务程序的入口地址每个中断源有固定的中断服务程序的入口地址(称矢量地址或称矢量地址或向量地址向量地址)。当。当CPU响应中断以响应中断以 后单片机内部硬件保证它能自动后单片机内部硬件保证它能自动的跳转到该地址。因此,此地址是应该熟记的,在汇编程序的跳转到该地址。因此,此地址是应该熟记的,在汇编程序 中,中,中断服务程序应存放在正确的向量地址内。中断服务程序应存放在正确的向量地址内。5.4 小小 结结(1)中断技术是实时控制中的常用技术,)中断技术是实时控制中的常用技术,51系列单片机有三个系列单片机有三个内部中断,二个外部中断。内部中断,二个外部中断。所谓所谓 外部中断就是在外部引脚上有外部中断就是在外部引脚上有产生中断所需要的信号。产生中断所需要的信号。(2)单片机的中断是靠内部的寄存器管理的,这)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器就是中断允许寄存器IE,中断优先权寄存器,中断优先权寄存器IP,必须在必须在CPU开中断即开全局中断开关开中断即开全局中断开关EA,开各中,开各中断源的中断开关,断源的中断开关,CPU才能响应该中断源的才能响应该中断源的 中断中断请求,其中缺一不可。请求,其中缺一不可。(3)从程序表面看来,主程序和中断服务程序好象)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握中断响应的过程,是没有关连的,只有掌握中断响应的过程,才能才能理解中断的发生和返回,看得懂中断程序,并能编理解中断的发生和返回,看得懂中断程序,并能编写高质量中断程序。写高质量中断程序。(4)本章重点应掌握中断的基本概念,并能熟练编)本章重点应掌握中断的基本概念,并能熟练编制中断程序。制中断程序。