第5章MCS-51单片机中断系统本章制作:刘晓霞第5章MCS-51单片机中断系统目录5.1中断概述5.2中断系统结构及控制5.3中断响应过程及处理过程5.4中断应用举例本章主要讨论MCS-51单片机中断系统。内容主要有:MCS-51单片机中断系统结构、中断控制、中断优先级、中断处理过程,以及中断的应用。通过本章的学习,应该理解中断系统结构、中断响应的条件和中断处理过程;掌握中断控制、中断优先级,灵活的应用中断解决实际问题。第5章MCS-51单片机的中断系统5.1中断概述主要内容5.1.1微机的输入/输出几种控制方式5.1.2中断的相关概念5.1.1微机的输入/输出几种控制方式单片机系统中,CPU和外部设备之间不断进行信息的传输。通常CPU和外设之间的信息传送方式有以下几种:•程序控制方式•中断方式•直接存储器存取(DMA)方式5.1.1微机的输入/输出方式1、程序控制方式可以分为以下两种方式。(1)无条件传送方式外设始终处于就绪状态,CPU不必查询外设的状态,直接进行信息传输,称为无条件传送方式。此种信息传送方式只适用于简单的外设。如开关和数码段显示器等。5.1.1微机的输入/输出方式(2)条件传送方式CPU通过执行程序不断读取并测试外部设备状态,如果输入设备处于准备好状态或输出设备为空闲状态时,则CPU执行传送信息操作。由于条件传送方式需要CPU不断地查询外部设备的状态,然后才进行信息传送,所以也称为“查询式传送”。5.1.1微机的输入/输出方式2、中断方式外部设备与CPU之间以中断信号作为数据交换的控制信号。当外部设备需要与CPU进行数据交换时,由接口部件向CPU发出一个请求信号,CPU响应这一中断请求后,在中断服务程序中完成一个字节或多个字节的信息交换。中断方式具有并行工作、实时传输、充分利用CPU效率等特点。5.1.1微机的输入/输出方式中断传送仍由CPU通过程序来传送,每次都要执行指令进行断点、现场的保护和恢复。对于高速I/O,就显得速度太慢了。3、DMA方式(直接存储器存取)DMA控制方式主要用于存储器和外设之间直接传送、块传输。DMA请求总线:当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求信号。5.1.1微机的输入/输出方式DMA控制数据传输:CPU响应DMA的请求,把总线使用权交给DMA控制器,DMA将外设数据读入、并直接写入存储器,或将数据从存储器读出并直接送给外设。传送过程不需要CPU参与。DMA释放总线:当一批数据传送后,DMA控制器再向CPU发出“结束总线请求”,CPU响应请求,收回总线使用权。DMA方式速度高、效率高,可以与CPU并行工作。1、中断的概念CPU在正常运行的时候,外部或者内部发生了请求CPU迅速去处理的事件,CPU暂时中断当前的程序,去处理所发生的事件,处理完事件后,再返回到原来被中断的程序继续运行。此过程称为中断。5.1.2中断的相关概念2、中断源引起CPU中断的设备和事件就是中断源。3、中断请求中断源向CPU发出的请求处理信号,即中断请求或中断申请。4、中断响应CPU暂时中止正在处理的事情,转去处理突发事件的过程,称为中断响应。5.1.2中断的相关概念5、其他概念中断系统:实现中断功能的部件称为,又称中断机构。中断服务程序:CPU响应中断后,处理中断事件的程序。断点:CPU响应中断请求,转去执行中断服务程序时的PC值,即为断点地址。中断返回:CPU执行完中断服务程序后回到断点的过程。5.1.2中断的相关概念6、中断的功能中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。•使CPU与外设同步工作•实现实时处理•故障及时处理5.1.2中断的相关概念5.2中断系统的结构及控制主要内容5.2.1MCS-51的中断结构5.2.2MCS-51的中断源5.2.1MCS-51单片机的中断结构中断系统构成:增强单片机主要由5个特殊功能寄存器、相关硬件电路等组成。有6个中断源,两个中断优先级。特殊功能寄存器主要用于:控制中断的开放和关闭、保存中断信息、设置中断的优先级别。硬件查询电路主要用于:判定6个中断源的优先级别。MCS-51增强型单片机的中断结构如图5-2所示。图5-2增强型单片机的中断系统结构IE0PX0EAEX0110ET0EX1ET1ESIT0=0IT0=1TF0IE11IT1=0IT1=1TF1TIRIT0T1INT1TXRXTCONIEIP各中断源允许优先级INT0+PT010PX110PT110PS10PT210ET2+TF2EXF2T2T2EX总允许中断矢量地址中断矢量地址硬件查询PCPC自然优先级自然优先级高级中断请求低级中断请求5.2.2MCS-51的中断源MCS-51中断系统主要是对6个中断源进行管理,依次为:①外部中断0(P3.2)②外部中断1(P3.3)③定时器/计数器0溢出中断④定时器/计数器1溢出中断⑤定时器/计数器2溢出中断⑥串行口中断CPU主要是通过标志寄存器、控制寄存器、优先级寄存器对中断源进行管理。5.2.2MCS-51单片机的中断源(1)与中断标志相关的SFR主要有:定时器/计数器T0、T1控制寄存器TCON串行口控制寄存器SCON定时器/计数器2控制寄存器T2CON(第6章介绍)(2)中断控制寄存器:TCON、IE(3)中断优先级寄存器:IP5.2.2MCS-51单片机的中断源1、串行口控制寄存器SCON字节地址98H。可以位寻址,格式如下:TI(SCON.1):串行口发送中断标志。串行口发送完一帧,由硬件置位。响应中断后,必须用软件清0。RI(SCON.0):串行口接收中断标志。SCON(98H)D7D6D5D4D3D2D1D0TIRI图5-4串行口控制寄存器5.2.2MCS-51单片机的中断源串行口接收完一帧,由硬件置位。响应中断后,必须用软件清0。例如:CLRTI;5.2.2MCS-51单片机的中断源2、T0、T1的控制寄存器TCONTCON格式如下:TCON(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0图5-3定时器的控制寄存器TCON可位寻址。复位后TCON=00H。TF1(TCON.7):T1溢出标志位当T1计满溢出时,由内部硬件置位;中断响应后自动清0。5.2.2MCS-51单片机的中断源TF0:T0溢出标志位功能同TF1。IT1:外中断1触发方式设置位IT1=0,外中断1为低电平触发CPU在每一个机器周期的S5P2期间对P3.3引脚采样,若P3.3为低电平,则使IE1置1,否则IE1清0。5.2.2MCS-51单片机的中断源IT1=1,外中断1为下降沿触发采样:CPU在每一个机器周期的S5P2期间对P3.3引脚采样,若上一个机器周期检测为高电平,紧挨着的下一个机器周期为低电平,则使IE1置1。IT0:外中断0触发方式控制位。功能同IT1。5.2.2MCS-51单片机的中断源IE1:外中断1中断请求标志位外部中断1引脚有请求信号置1;IE1的清0方式问题:与外中断的触发方式有关(1)低电平触发,则P3.3引脚为高电平自动对IE1清0;(2)下降沿触发,则CPU响应中断由硬件自动对IE1清0。IE0:外部中断0中断请求标志位功能同IE1。5.2.2MCS-51单片机的中断源3、中断允许寄存器IE可以位寻址,其格式如图5-5所示:IE(A8H)D7D6D5D4D3D2D1D0EA—ET2ESET1EX1ET0EX0图5-5中断允许寄存器5.2.2MCS-51单片机的中断源EA(IE.7):中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断总控制位。ET2(IE.5):定时器/计数器2的中断允许位ET2=0,禁止T2中断;ET2=1,允许T2中断。ES(IE.4):串行口中断允许位。5.2.2MCS-51单片机的中断源ES=0,禁止串行口中断;ES=1,允许串行口中断。ET1(IE.3):定时器/计数器1中断允许ET1=0,禁止T1中断;ET1=1,允许T1中断。EX1(IE.2):外部中断1中断允许位EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。5.2.2MCS-51单片机的中断源ET0(IE.1):定时器/计数器0中断允许位ET0=0,禁止T0中断;ET0=1,允许T0中断。EX0(IE.0):外部中断0的中断允许位EX0=0,禁止外部中断0中断;EX0=1,允许外部中断0中断。例5-1假设允许INT0、INT1、T0、T1中断,试设置IE的值。解:(1)用C语言字节操作:IE=0x8f;5.2.2MCS-51单片机的中断源(2)用C语言位操作指令EX0=1;//允许外部中断0中断ET0=1;//允许定时/计数器0中断EX1=1;//允许外部中断1中断ET1=1;//允许定时/计数器1中断EA=1//开总中断控制汇编语言(1)用字节操作指令:MOVIE,#8FH(2)用位操作指令:5.2.2MCS-51单片机的中断源SETBEX0;允许外部中断0中断SETBET0;允许定时/计数器0中断SETBEX1;允许外部中断1中断SETBET1;允许定时/计数器1中断SETBEA;开总中断控制位4、中断优先级控制寄存器IPMCS-51单片机有6个中断源,每个中断源有两级优先级控制:高优先级和低优先级,以便CPU对所有的中断实现两级中断嵌套。对IP设置可让中断源处于不同的优先级。5.2.2MCS-51单片机的中断源IP复位后为00H。其格式如下图所示。IP(B8H)D7D6D5D4D3D2D1D0——PT2PSPT1PX1PT0PX0图5-6中断优先级控制寄存器PT2(IP.5):T2中断优先级控制位PT2=0,设置为低优先级;PT2=1,设置为高优先级。5.2.2MCS-51单片机的中断源PS(IP.4):串行口中断优先级控制位PS=0,设置为低优先级;PS=1,设置为高优先级。PT1(IP.3):T1的中断优先级控制位功能同PT2。PX1(IP.2):外中断1中断优先级控制位PX1=0,设置为低优先级;PX1=1,设置为高优先级。5.2.2MCS-51单片机的中断源PT0(IP.1):T0中断优先级控制位功能同PT1。PX0(IP.0):外中断0中断优先级控制位功能同PX1。89C52单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略。中断处于同一级别时,就由自然优先级确定。开机时,每个中断都处于低优先级,中断优先级可以通过程序来设定,由中断优先级寄存器IP来统一管理。如下图所示:5.2.2MCS-51单片机的中断源系统优先级规则图:表5-1中断优先级的排列顺序中断源自然优先级顺序外部中断0定时器/计数器0外部中断1定时器/计数器1串行口中断定时器/计数器2最高最低5.2.2MCS-51单片机的中断源中断优先级规则:(1)对同时发生多个中断申请不同优先级的中断同时申请:先高后低相同优先级的中断同时申请:按序执行(2)不同时发生多个中断申请正处理低优先级中断又接到高级别中断:高打断低正处理高优先级中断又接到低级别中断:高不理低5.2.2MCS-51单片机的中断源在上述规则中,当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,就暂时中止执行优先级较低的中断源的服务程序,保护当前断点,转去处理更高的中断请求,服务完毕,回到原来被中止的中断程序继续执行。此过程为中断嵌套。两级中断嵌套的处理过程如图5-7所示。5.2.2MCS-51单片机的中断源高中断服务程序响应低级中断请求低级中断处理响应高级中断请求断点主程序主程序返回主程序返回低级中断程序RETIRETI图5-7中断嵌套的处理过程断点思考:当系统正在处理定时器0中断的过程中,定时器1和外部中断0有中断请求,描述CPU的中断处理过程?5.2.2MCS-51单片机的中断源例5-2设定时器和串行口中断为高优先级,两个外部中断为低优先级,试设置IP的值。解:C语言程