单片机原理及应用教程(c语言版)第5章 mcs51单片机的中断系统

上传人:e****s 文档编号:243438760 上传时间:2024-09-23 格式:PPT 页数:61 大小:430.50KB
返回 下载 相关 举报
单片机原理及应用教程(c语言版)第5章 mcs51单片机的中断系统_第1页
第1页 / 共61页
单片机原理及应用教程(c语言版)第5章 mcs51单片机的中断系统_第2页
第2页 / 共61页
单片机原理及应用教程(c语言版)第5章 mcs51单片机的中断系统_第3页
第3页 / 共61页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理及应用教程,(,C,语言版),第,5,章,MCS-51,单片机中断系统,主 编:,周国运,中国水利水电出版社,第,5,章,MCS-51,单片机中断系统,目 录,5.1,中断系统概述,5.2,中断系统结构、原理及控制,5.3,中断响应及处理过程,5.4,外部中断应用举例,本章主要介绍了单片机中断系统的结构、原理,以及应用。,中断系统是单片机的重要组成部分,在实时控制、故障处理、数据传输等方面都有非常重要的作用。,本章为后续章节相关内容打下基础。,第,5,章,MCS-51,单片机中断系统,5.1,中断系统概述,主要内容,5.1.1,中断的基本概念,5.1.2,中断的功能,1,、中断的概念,中断是一种过程,。当,CPU,正在执行某段程序的时候,外部发生某一事件要求,CPU,处理,,CPU,暂时停止当前执行的程序,转去处理发生的事件,处理完该事件后,再返回到被暂时停止的程序继续执行,这样的过程叫做中断。,5.1.1,中断的基本概念,2,、中断源,引发中断的事件叫做中断源。,3,、中断请求,中断源向,CPU,发的处理请求叫中断请求或中断申请。,4,、中断响应过程,CPU,暂时中止正在处理的事情,转去处理突发事件的过程,称为,CPU,的中断响应过程,。,5.1.1,中断的相关概念,5,、其他概念,中断系统:,实现中断功能的部件称为,又称中断机构。,中断服务程序:,CPU,响应中断后,处理中断事件的程序。,断点:,在,CPU,暂时中止执行的程序中,因中断将要执行而未执行的指令的地址称为中断断点,简称为断点。,中断返回:,执行完中断服务程序后,回到断点的过程称为中断返回。,5.1.1,中断的相关概念,6,、中断的功能,中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。,使,CPU,与外设同步工作,实现实时处理,故障及时处理,5.1.2,中断的相关概念,1,CPU,与外设同步工作,2,实时处理,3,故障处理,5.1.2,中断的功能,5.2,中断系统结构、原理及控制,主要内容,5.2.1,中断系统结构与原理,5.2.2,中断通道和中断源,5.2.3,外中断触发方式,5.2.4,中断请求标志,5.2.5,中断允许控制,5.2.6,中断优先级控制,5.2.1,中断系统结构与原理,1,中断系统结构,典型,MCS-51,单片机的中断系统有,6,个中断源、,5,个中断通道、,2,个中断优先级,在增强型,51,单片机如,89C52,中,增加了定时器,T2,及其中断,为,8,个中断源、,6,个中断通道。,MCS-51,单片机的中断系统硬件电路主要由中断源、中断触发、中断请求标志、中断允许控制、中断优先级控制、中断优先级查询等部分构成。,从程序员编程的角度来看,由相关的特殊功能寄存器构成。,增强型单片机中断系统结构如图,5-2,所示,由图可见,,MCS-51,单片机的中断系统是一个简捷高效的中断管理器系统。,5.2.1,中断系统结构与原理,5.2.1,中断系统结构与原理,2,中断系统工作原理,当外部中断,0,请求输入引脚,出现中断请求信号,(低电平或下降沿,可设置),便会,设置中断请求标志,(,IE0,),如果该中断,没有被屏蔽,(,EX0,为允许),,全局中断允许也没有被屏蔽,(,EA,为允许),则该中断被分为高优先级或低优先级(由,PX0,确定)后,会在高或低优先级中断查询电路被查询到,,其中断请求得到,CPU,响应,后,将其,中断向量装入,PC,转去,执行相应的中断服务程序,。,5.2.1,中断系统结构与原理,串行口中断有,发送(,TX,)和接收(,RX,)两个中断源,。当发送或接收完一帧数据后,就会,设置中断标志,TI,或,RI,,由于这两个中断源共用一个通道,两个中断源请求信号,经过或门操作,之后向后面传递,因此,两个中断源只要一个有请求即可。后面的处理与外部中断,0,一样。,对于其它中断,基本上与外部中断,0,或串行口中断相似。,5.2.1,中断系统结构与原理,5.2.2,中断通道和中断源,5.2.3,外中断触发方式,MCS-51,单片机的外中断有,两种触发方式,电平触发和脉冲边沿触发。,其触发方式在定时器,/,计数器,T0,、,T1,控制寄存器,TCON,中的,D0,、,D2,位控制。,TCON,的格式如图,5-3,所示,其功能是控制,T0,和,T1,运行、控制两个外中断触发方式,以及显示,T0,、,T1,和两个外中断的请求标志。该寄存器的地址为,88H,,,可以按位操作,,复位后的初值为,00H,。,5.2.3,外中断触发方式,IT0,:外中断,0,触发方式设置位,IT0=0,,外中断,1,为低电平触发,CPU,在每一个机器周期的,S5P2,期间对引脚采样,,若为低电平,则使,IE0,置,1,,否则,IE0,清,0,。,D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,TCON,格式如下:,5.2.3,外中断触发方式,IT0=1,,外中断,0,为下降沿触发,CPU,在每一个机器周期的,S5P2,期间对引脚采样,若,上一个机器周期检测为高电平,紧挨着的下一个机器周期为低电平,,则使,IE0,置,1,。,IT1,:外中断,1,触发方式控制位。功能同,IT0,D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,TCON,格式如下:,5.2.4,中断请求标志,1,外中断请求标志,TCON,(88H),D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,IE0,:外部中断,0,的中断请求标志位。,为,1,则向,CPU,请求中断,为,0,认为没有中断请求。,由硬件置位和清,0,。,IE1,:外部中断,1,的中断请求标志位。含义与,IE0,类同。,IE0,、,IE1,也可以软件清,0,。,2,定时器,/,计数器,T0,、,T1,中断请求标志,TCON,(88H),D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,TF0,:定时器,/,计数器,0,的计数溢出中断请求标志位。,当定时器,/,计数器,T0,计数溢出时,,TF0,由硬件置,1,,向,CPU,请求中断,,CPU,响应中断后,,TF0,由硬件清,0,。,TF1,:定时器,/,计数器,1,的计数溢出中断请求标志位。,含义与,TF0,类同。,TF0,、,TF1,也可以软件清,0,。,5.2.4,中断请求标志,3,串行口中断请求标志,RI,:为接收中断请求标志位。,当串行口接收到一帧数据后,,RI,被置,1,,请求中断,,CPU,响应中断后,不会被硬件清,0,,,需要软件清,0,。,TI,:为发送中断请求标志位。,当串行口发送完一帧数据后,,TI,被置,1,,请求中断,,CPU,响应中断后,不会被硬件清,0,,,需要软件清,0,。,5.2.4,中断请求标志,SCON,(98H),D7,D6,D5,D4,D3,D2,D1,D0,TI,RI,4,定时器,/,计数器,T2,中断请求标志,TF2,:,T2,计数溢出中断请求标志位。,当,T2,计数溢出时,,TF2,由硬件置,1,,向,CPU,请求中断,,CPU,响应中断后,,TF2,不会被硬件清,0,,需要在程序中以软件方式清,0,。,5.2.4,中断请求标志,T2CON,(C8H),D7,D6,D5,D4,D3,D2,D1,D0,TF2,EXF2,4,定时器,/,计数器,T2,中断请求标志,EXF2,:定时器,/,计数器,2,的外部触发中断请求标志位。,T2,以自动重装或外部捕获方式定时、计数,当,T2EX,()引脚出现负跳变时,,TF2,由硬件置,1,,向,CPU,请求中断,,CPU,响应中断后,,EXF2,不会被硬件清,0,,需要在程序中以软件方式清,0,。,5.2.4,中断请求标志,T2CON,(C8H),D7,D6,D5,D4,D3,D2,D1,D0,TF2,EXF2,4,定时器,/,计数器,T2,中断请求标志,T2,计数溢出和外部触发两个中断源共用一个,T2,中断通道,与串行口中断通道情况类似,,TF2,、,EXF2,不能硬件自动清,0,,只能够在中断服务程序中软件清,0,。,5.2.4,中断请求标志,T2CON,(C8H),D7,D6,D5,D4,D3,D2,D1,D0,TF2,EXF2,5.2.5,中断允许控制,MCS-51,单片机的中断屏蔽采用两级控制,第一级是各个中断通道独立的屏蔽控制,第二级是所有通道的同步屏蔽总控制。,对任一通道,只有两级同时处于中断允许状态时,其中断请求才能得到,CPU,响应;相反,对任一通道,只要有某一级处于屏蔽状态,其中断请求就不能得到响应。,IE,为,MCS-51,单片机的中断允许寄存器,也叫中断屏蔽寄存器,主要是对各个中断进行允许控制。,EA,:中断允许总控制位。,EA,设置为,1,,开放所有中断通道的第二级中断,,EA,设置为,0,,屏蔽所有中断通道的第二级中断。,ET2,:定时器,/,计数器,T2,的中断允许位。,ET2,设置为,1,允许,T2,中断,,ET2,设置为,0,则屏蔽,T2,中断。,以下各位都一样,设置为,1,允许中断,设置为,0,屏蔽中断,不再逐一叙述。,IE,(A8H),D7,D6,D5,D4,D3,D2,D1,D0,EA,ET2,ES,ET1,EX1,ET0,EX0,5.2.5,中断允许控制,ES,:串行口中断允许位。,ET1,:定时器,/,计数器,T1,中断允许位。,EX1,:外部中断,1,中断允许位。,ET0,:定时器,/,计数器,T0,中断允许位。,EX0,:外部中断,0,中断允许位。,IE,(A8H),D7,D6,D5,D4,D3,D2,D1,D0,EA,ET2,ES,ET1,EX1,ET0,EX0,5.2.5,中断允许控制,例,5-1,假设允许,INT0,、,INT1,、,T0,、,T1,中断,试设置,IE,的值。,(,1,),C,语言程序,按字节操作:,IE=0x8f;,按位操作:,EX0=1;/,允许外部中断,0,中断,ET0=1;/,允许定时器,/,计数器,0,中断,EX1=1;/,允许外部中断,1,中断,ET1=1;/,开定时器,/,计数器,1,中断,EA = 1;/,开总中断控制位,5.2.5,中断允许控制,例,5-1,假设允许,INT0,、,INT1,、,T0,、,T1,中断,试设置,IE,的值。,(,2,)汇编语言程序,按字节操作:,MOV IE,#8FH,按位操作:,SETB EX0;,允许外部中断,0,中断,SETB ET0;,允许定时器,/,计数器,0,中断,SETB EX1;,允许外部中断,1,中断,SETB ET1;,开定时器,/,计数器,1,中断,SETB EA ;,开总中断控制位,5.2.5,中断允许控制,5.2.6,中断优先级控制,MCS-51,单片机的每个中断都有两个优先级,高优先级和低优先级。,通过对优先级控制寄存器,IP,设置,可以让中断处于不同的优先级。,由于单片机复位后,IP,的状态是,00H,,所有的中断全部为低优先级,这时,只需对高优先级的中断优先级控制位设置为,1,就可以了。,PT2,:定时器,/,计数器,T2,的中断优先级控制位,PT2,设置,1,则,T2,为高优先级,,PT2,设置,0,则,T2,为低优先级。,后面各位均是如此,设置,1,为高优先级,设置,0,为低优先级,不再一一赘述。,PS,:串行口的中断优先级控制位。,PT1,:定时器,/,计数器,1,的中断优先级控制位。,PX1,:外部中断,1,的中断优先级控制位。,PT0,:定时器,/,计数器,0,的中断优先级控制位。,PX0,:外部中断,0,的中断优先级控制位。,5.2.6,中断优先级控制,IP,(B8H,),D7,D6,D5,D4,D3,D2,D1,D0,PT2,PS,PT1,PX1,PT0,PX0,MCS-51,单片机中断优先级规则分两种情况:,(,1,)不同优先级中断之间的优先规则,不同优先级中断同时请求,先响应高级中断请求。,不同优先级中断不同时请求,高级中断请求能够中断低级中断服务程序,产生中断嵌套。,(,2,)相同优先级中断之间的优先规则,相同优先级中断同时请求,按中断查询次序响应,其次序为:,外部中断,0 T0 ,外部中断,0 T1 ,串行口, T2,相同优先级中断不同时请求,不能中断正在执行的中断服务程序,即同级中断不能嵌套。,5.2.6,中断优先级控制,中断嵌套:,当,CPU,正在处理一个低优先级中断时,又出现了高优先级中断请求,此时中止执行低优先级中断,转去执行高优先级中断,待高优先级中断服务执行完毕,回到低优先级中断继续执行,此过程称为,中断嵌套。,5.2.6,中断优先级控制,例,5-2,编写程序段,设置单片机的两个外部中断和串行口中断为高优先级,三个定时器的中断为低优先级。,(,1,),C,语言程序,按字节操作:,IP=0x15;,按位操作:,PX0=1;/,设置外中断,0,为高级中断,PX1=1;/,设置外中断,1,为高级中断,PS=1;/,设置串行口中断为高优先级,5.2.6,中断优先级控制,例,5-2,编写程序段,设置单片机的两个外部中断和串行口中断为高优先级,三个定时器的中断为低优先级。,(,2,)汇编语言程序,按字节操作:,MOV IP,#15H,按位操作:,SETBPX0;,设置外中断,0,为高级中断,SETBPX1;,设置外中断,1,为高级中断,SETBPS;,设置串行口中断为高优先级,5.2.6,中断优先级控制,5.3,中断响应及处理过程,本节内容,5.3.1,中断响应,5.3.2,中断处理和中断返回,中断处理过程一般分为三个阶段:,中断响应、中断处理、中断返回。,5.3.1,中断响应过程,一、中断响应条件, 中断源有中断请求;, 中断总允许位,EA=1,;, 发出中断请求的中断源的中断允许控制位为,1,;,CPU,不是正在执行一个同级或高优先级的中断服务程序;, 当前的指令已经执行完;, 如果,CPU,正在执行中断返回指令,RETI,,或者对寄存器,IE,、,IP,进行读,/,写操作,则执行完上述指令之后,需要再执行完一条非中断相关指令后,才能响应中断请求。,满足上述条件,则中断系统由硬件生成一条内部长调用(,LCALL,)指令,控制程序转向对应的中断服务程序区执行。只要上述,6,个条件有,1,个条件不满足,都将丢弃本次中断请求,等待上述条件全部满足后再做处理。,5.3.1,中断响应,5.3.1,中断响应,二、中断响应的过程,在满足中断响应的条件后,,CPU,会在两个机器周期内,由硬件自动生成,LCALL,指令,并置位相应的中断优先级触发器,将断点地址(,PC,的当前值)压入堆栈保护,把对应的中断入口地址送给,PC,,各中断源对应的中断入口地址。,于此同时,单片机还会清除该中断(定时器,/,计数器,T0,、,T1,中断、下降沿触发的外中断)的请求标志。定时器,/,计数器,T2,和串行口,RI,、,TI,的请求标志位需要在中断服务子程序中安排清除指令手工清除,否则会产生二次中断的情况。,5.3.1,中断响应,三、中断响应的时间,单片机响应中断的最短时间为,3,个机器周期:,1,),CPU,在每个机器周期的,S5P2,节拍对中断请求信号进行采样、锁存,在下一个机器周期按优先级顺序查询。,2,)中断请求满足中断响应的条件,,CPU,自动生成长调用指令,LCALL,,该指令是一个双周期指令,转向相应的中断矢量地址。,5.3.1,中断响应,如果出现下列情况,则需要更多时间:,1,)遇到正在执行的指令是:,RETI,、,IE,、,IP,需要等待系统执行完当前指令和紧接的下一条指令才能响应中断。在这种情况下,中断的响应时间延长为,5,8,个机器周期。,2,)当前正在执行的是中断服务程序,而新中断的优先级不比当前的优先级高,,则新中断的中断请求被挂起。在这种情况下,响应的时间就无法计算了。,5.3.2,中断处理和中断返回,一、中断处理,中断处理的过程就是执行中断服务程序的过程。,5.3.2,中断处理和中断返回,二、中断返回,中断返回是指中断服务完成后,,CPU,返回到原程序的断点(即原来断开的位置),继续执行原来的程序。,中断返回通过执行中断返回指令,RETI,来实现,该指令的功能是首先将相应的优先级状态触发器置,0,,以开放同级别及低级别中断源的中断请求;其次,从堆栈区把断点地址取出,送回到程序计数器,PC,中。,注意:不能用,RET,指令代替,RETI,指令。,5.4,外部中断应用举例,主要内容,5.4.1,中断应用程序结构,5.4.2,外部中断应用举例,5.4.1,中断应用程序结构,汇编语言的中断程序结构如下:,(,1,)主程序入口,(,2,)中断服务程序入口,(,3,)主程序,(,4,)中断服务程序,C,语言的中断程序结构如下:,(,1,),main(),函数。与汇编的主程序类似,要完成中断系统的初始化。要有一个循环,等待中断发生。,(,2,)中断处理函数。中断处理函数在定义时,要有,interrupt n,说明中断号。,5.4.1,中断应用程序结构,中断系统的初始化步骤:, 根据需要确定各中断源的优先级别,设置中断优先级寄存器,IP,中相应的位。, 根据需要确定外部中断的触发方式,设置定时器控制寄存器,TCON,中相应的,IT0,位和,IT1,位。, 设置总中断控制位,EA,,设置中断源对应的中断允许控制位。,5.4.1,中断应用程序结构,5.4.2,外部中断应用举例,例,5-3,如图,5-10,所示,将,P0,口的作为输入位输入,4,个开关的状态,作为输出显示开关状态。要求利用,89C52,外部中断,0,将开关所设的数据读入单片机内,并依次通过输出,驱动发光二极管,以检查输入的电平情况(若输入为低电平则相应的,LED,亮)。要求采用中断边沿触发方式,每中断一次,完成一次读,/,写操作。,5.4.2,外部中断应用举例,5.4.2,外部中断应用举例,C,语言程序清单:,#include,void main(),IT0=1;/,选择边沿触发方式,EX0=1;/,允许外部中断,0,EA=1;/,总中断允许,while (1);/,等待中断,void int0_serv(void) interrupt 0,/,外部中断服务函数,P0=0x0f;/,设为输入,P2= P0;/ P0,的值输出到,P2,使,LED,发光,5.4.2,外部中断应用举例,汇编语言程序清单:,ORG 0000H,;,中断入口,LJMP MAIN;,上电,转向主程序,ORG0003H;,外部中断,0,入口地址,LJMP INT0_SERV;,转向中断服务程序,ORG0030H,MAIN:,;,主程序,MOVSP, #0DFH;,设置堆栈指针,放高端,SETB IT0;,选择边沿触发方式,SETB EX0;,允许外部中断,0,SETB EA;,总中断允许,SJMP $;,等待中断,5.4.2,外部中断应用举例,INT0_SERV:,;,中断服务子程序,MOVP0,#0FH,MOVP2,P0;,输出驱动,LED,发光,RETI;,中断返回,END,5.4.2,外部中断应用举例,例,5-4,用单片机中断方式设计一,4,路故障声光报警系统。,5.4.2,外部中断应用举例,C,语言程序清单:,#include,sbit sound=P37;,void main(),IT1=0;/,选择低电平触发方式,EX1=1;/,允许外部中断,1,EA=1;,P2=0x0f;,while (1);/,等待中断,5.4.2,外部中断应用举例,void int1_serv(),interrupt 2,/,外部中断,1,中断服务函数,unsigned char i;,sound=sound;/,输出方波到蜂鸣器发声,for(i=0;i100;i+);/,发声延时,控制声音频率,5.4.2,外部中断应用举例,汇编程序清单:,ORG0000H,LJMP MAIN;,主程序入口,ORG0013H;,外部中断,1,入口地址,LJMP INT1SERV;,转向中断服务程序,5.4.2,外部中断应用举例,MAIN:,MOVSP, #0DFH;,设置堆栈指针,CLRIT1;,选择低电平触发方式,SETBEX1;,允许外部中断,1,SETBEA,MOVP2,#0FH; P2,低四位输入,SJMP $,5.4.2,外部中断应用举例,INT1SERV:,CPLP3.7 ;,输出方波到蜂鸣器,发声,MOV R7,#200 ;,发声延时,控制声音频率,DJNZ R7,$,RETI ;,中断返回,END,本章小结,本章首先介绍了中断的基本概念,。,接着介绍了单片机中断系统的结构、原理及控制。,然后介绍了中断响应和处理过程。,最后结合简单例子介绍了外部中断的应用方法。,本章是单片机接口技术的重要组成,几乎所有较复杂的接口技术都要用到中断。学好本章是掌握单片机接口技术所必须的。学习本章,要理解单片机中断系统的结构、原理,掌握中断系统的控制方法,为后续章节的学习打好基础。,本章完,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!