资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机系统中,,CPU,和外部设备之间不断进行信息的传输。通常,CPU,和外设之间的信息传送方式有以下几种:,程序控制方式,中断方式,直接存储器存取(,DMA,)方式,第,5,章,MCS-51,单片机中断系统,5.1.1,中断的概念,1,、程序控制方式,可以分为以下两种方式。,(,1,)无条件传送方式,外设始终处于就绪状态,,CPU,不必查询外设的状态,直接进行信息传输,,称为无条件传送方式。,此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。,(,2,)条件传送方式,CPU,通过执行程序不断读取并测试外部设备状态,,如果输入设备处于准备好状态或输出设备为空闲状态时,则,CPU,执行传送信息操作。,由于条件传送方式需要,CPU,不断地查询外部设备的状态,然后才进行信息传送,所以,也称为,“,查询式传送”,。,2,、中断方式,外部设备与,CPU,之间以中断信号作为数据交换的控制信号,。,当外部设备需要与,CPU,进行数据交换时,由接口部件向,CPU,发出一个请求信号,,CPU,响应这一中断请求后,在中断服务程序中完成一个字节或多个字节的信息交换。,中断方式具有并行工作、实时传输、充分利用,CPU,效率等特点。,3,、,DMA,方式,(,直接存储器存取,),DMA,控制方式主要用于存储器和外设之间直接传送、块传输。,DMA,请求总线:,当某一外部设备需要输入,/,输出一批数据时,向,DMA,控制器发出请求,,DMA,控制器接收到这一请求后,向,CPU,发出总线请求信号。,DMA,控制数据传输:,CPU,响应,DMA,的请求,把总线使用权交给,DMA,控制器,,DMA,将外设数据读入、并直接写入存储器,或将数据从存储器读出并直接送给外设。,传送过程不需要,CPU,参与。,DMA,释放总线:,当一批数据传送后,,DMA,控制器再向,CPU,发出“结束总线请求”,,CPU,响应请求,收回总线使用权。,DMA,方式速度高、效率高,可以与,CPU,并行工作。,CPU,执行程序时,由于发生了某种随机的事件,(,外部或内部,),,引起,CPU,暂时中断正在运行的程序,转去执行一段特殊的服务程序,(,称为中断服务程序或中断处理程序,),,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,中断的定义,2,、中断源,引起,CPU,中断的设备和事件就是中断源。,3,、中断请求,中断源向,CPU,发出的请求处理信号,即中断请求或中断申请。,4,、中断响应,CPU,暂时中止正在处理的事情,转去处理突发事件的过程,称为,中断响应,。,5,、其他概念,中断系统:,实现中断功能的部件称为,又称中断机构。,中断服务程序:,CPU,响应中断后,处理中断事件的程序。,断点:,CPU,响应中断请求,转去,执行中断服务程序时的,PC,值,即为断点地址,。,中断返回:,CPU,执行完中断服务程序后回到断点的过程。,中断系统功能,中断系统是指能够实现中断功能的那部分硬件电路和软件部分。,实现中断请求,实现排队判优,(,中断优先级排队,),实现中断响应,实现中断服务程序的转接,实现中断返回,实现多重中断,中断源类型,引起,CPU,中断的事件,发出中断请求的来源。,1,、外部设备中断源,2,、控制对象中断源,3,、故障中断源,4,、定时脉冲中断源,中断分类,中断按照功能通常可以分成:可屏蔽、非屏蔽和软件中断三类,1,、可屏蔽中断,程控,“,开中断,/,关中断,”,。软件设置允许,/,禁止,CPU,响应中断。,2,、非屏蔽中断,指,CPU,对来自,/NMI,中断输入线上的中断请求是不可屏蔽(或控制)的。,3,软件中断,指人们可以通过相应的中断指令使,CPU,响应中断。,CPU,只要执行这种指令就可以转入相应的中断服务程序执行,以完成相应的中断功能。,中断分类,中断嵌套,低级中断请求,RETI,主程序,响应低级中断,高级中断服务子程序,返主程序,继续执行主程序,高级中断请求,响应高级中断,返,低级中断,RETI,低级中断服务子程序,低级中断服务子程序,挂起,低级中断,挂起,低级中断,低级,中断,低级,中断,5.1.2,中断系统的结构,专门讨论,MCS-51,的中断源和中断标志、,MCS-51,对中队请求的控制和响应、中断响应时间、中分段撤除和中断系统初始化。,源允许,中断系统总体逻辑结构,总允许,优先级,自然优先级,中断源,自然优先级,中断源,查询硬件,查询硬件,低级,中断请求,送,CPU,矢量,地址送,PC,IP,IE,TCON,SCON,EX0,ET0,EX1,ET1,ES,EA,INT0,INT1,T0,T1,RX,TX,RI,TI,IE,0,IE,1,TF,0,TF,1,IT1,0,1,1,0,1,0,1,0,1,0,1,0,矢量,地址送,PC,高级,中断请求,送,CPU,IT0,0,1,中断标志,中断,标志,INT0,1,IE,0,自然优先级,矢量,地址送,PC,“,+1”,TF,1,0,自然优先级,矢量,地址送,PC,EA,“,+1”,“,+1”,EX0,ET1,1,中断源与中断请求标志,5,个,中断源,2,个优先级,2,个外部中断,3,个内部中断,INT0,(,P,3.2,),INT1,(,P,3.3,),T0,T1,UART,与中断有关的特殊功能寄存器,:,IP:,中断优先控制寄存器,IE:,中断允许控制寄存器,TCON:,定时,/,计数控制寄存器,SCON:UART,控制寄存器,中断标志寄存器,可编程,可控,MCS,51,中断要点,MCS,51,中断要点,定时,/,计数器控制寄存器,TCON,TCON (88H),TF1,TF0,IE1,IT1,IE0,IT0,INT,1,INT,0,触发方式控制位,0,低电平触发,1,边沿,触发,INT,1,INT,0,外部中断请求标志,1,有有效触发时,0,当,CPU,响应中断时,T,1,T,0,溢出标志,1,计数器“,+1”,有溢出时,并向,CPU,请求中断,0,当,CPU,响应中断时,也可由指令清除,TR,1,TR,0,由硬件,自动,由硬件,自动,中断请求标志,可编程控制位,TR,1,TR,0,由硬件,自动,由硬件,自动,在每个机器周期,S5P2,都采样引脚,P3.3 P3.2,引脚,0,0,记录有无中断,记录有无中断,串行口控制寄存器,SCON,TI,:,串行口发送中断标志,在方式,0,,串行发送到第,8,位结束时,由硬件置“,1”,;或在其他方式中,串行发送到停止位的开始时,由硬件置“,1”,,,RI,:,串行口接收中断标志,在方式,0,,串行接收到第,8,位结束时,由硬件置“,1”,;或在其他方式中,串行接收到停止位的开始时,由硬件置“,1”,,,“,1”,发送完一帧数据后,“,1”,接收完一帧数据后,必须由软件清“,0”,必须由软件清“,0”,SCON (98H),TI RI,5.2 MCS-51,的中断控制,1,、中断允许寄存器,IE,EA /,/,ES,ET,1,EX,1,ET,0,EX,0,INT,0,INT,1,T,1,T,0,UART,CPU,0,禁止,1,允许,0,禁止,1,允许,总 中断,总 中断,中断,中断,IE,(A8),中断的,开放,和,禁止,是可控,可编程的,ET,2,T2,CPU,IE,的相应位被置,“,0”,或,“,1”,该相应中断即被,“禁止”,或,“,开放”,例,1,假设允许,INT0,、,INT1,、,T0,、,T1,中断,试设置,IE,的值。,解:,(,1,)用,C,语言字节操作:,IE=0 x8f,;,(,2,)用,C,语言位操作指令,EX0=1,;,/,允许外部中断,0,中断,ET0=1,;,/,允许定时,/,计数器,0,中断,EX1=1,;,/,允许外部中断,1,中断,ET1=1,;,/,允许定时,/,计数器,1,中断,EA=1/,开总中断控制,汇编语言,(,1,)用字节操作指令,:,MOV IE,#8FH,(,2,)用位操作指令,:,SETB EX0,;允许外部中断,0,中断,SETB ET0,;允许定时,/,计数器,0,中断,SETB EX1,;允许外部中断,1,中断,SETB ET1,;允许定时,/,计数器,1,中断,SETB EA,;开总中断控制位,2,、中断优先级寄存器,IP,/,/,PS,PT,1,PX,1,PT,0,PX,0,IP,(B8),ET,2,INT,0,INT,1,T,1,T,0,UART,0,低级,1,高级,中断,中断,T2,中断优先级是可控,可编程的,3,、优先级结构,中断优先级控制遵循的两个基本原则:,一个正在执行的低级中断服务程序,能被高优先级,中断请求所中断,但不能被同优先级中断请求所中断。,一个正在执行的高级中断服务程序,不能被任何中断,请求所中断,直到返回。,实现这两个原则的方法:,中断系统内部设置了两个不可寻址的优先级状态触发器。一个指出正在处理的是:高优先级中断,并阻止所有其他中断;另一个指出正在处理的是:低优先级中断,并阻止了除高优先级中断外的其他任何中断。,高优先级,状态触发器,低优先级,状态触发器,是不可寻址的,当,CPU,响应,高级中断,,并进入中断,服务时,“1”,“1”,RETI,“0”,当,CPU,响应,低级中断,,并进入中断,服务时,“1”,RETI,“0”,在同级的几个中断源中同时发生请求时,,内部对同级的各中断源的优先级别有一个规,定的查询顺序,:,外部中断请求,INT,0,定时,/,计数器,T,0,定时,/,计数器,T,1,串行口,UART,定时,/,计数器,T,2,外部中断请求,INT,1,最高,最低,自然优先级,自然优先级,例,2,设定时器和串行口中断为高优先级,两个外部中断为低优先级,试设置,IP,的值。,解:,C,语言程序,IP=0 x3a,;,汇编语言程序,:,(,1,)使用字节操作指令:,MOV,IP,#3AH,(,2,)使用位操作指令:,CLR,PX0,;设置外部中断,0,为低级中断,CLRPX1,;置外部中断,1,为低级中断,SETBPT0,;置定时器,/,计数器,0,为高级中断,SETBPT1,;置定时器,/,计数器,0,为高级中断,SETBPS,;置串行口中断为高优先级,SETBPT2,;置定时器,/,计数器,2,为高级中断,5.3,中断处理,一、中断响应条件,(,1,)中断源有中断请求;,(,2,)中断总允许位,EA=1,;,(,3,)发出中断请求的中断源的中断允许控制位为,1,。,在满足以上条件的基础上,若有下列任何一种情况存在,硬件生成的长调用指令“,LCALL”,将被封锁。,(,1,),CPU,正在执行一个同级或高优先级的中断服务程序;,(,2,)正在执行的指令尚未执行完;,(,3,)正在执行中断返回指令,RETI,或者对寄存器,IE,、,IP,进行读,/,写的指令,。,CPU,在执行完上述指令之后,要再执行一条指令,才能响应中断请求。,二、中断响应过程,从中断请求发生直到被响应,准备去执行中断服务程序,此过程即中断响应过程。中断响应过程一般包括如下几个阶段:,1,、中断采样并置位,中断采样过程:,CPU,在每个机器周期,S5P2,期间,顺序对中断源采样、置中断标志。,2,、查询标志,在中断采样后的下一个周期的,S6,按优先级顺序查询中断标志。,3,、响应中断,在满足中断响应条件情况下,若中断标志为,1,,,在接下来周期,S1,开始,按优先级顺序进行中断处理。,中断响应过程的操作步骤:,硬件自动生成长调用指令,LCALL addr16,,,addr16,为,各中断源的,中断程序入口地址,。,PC,的内容(即断点地址)压入堆栈。,先低位地址,后高位地址,并修改堆栈指针,SP,。,将中断源的中断入口地址装入程序计数器,PC,,执行中断服务程序,。,三、中断响应的时间,一般来说,,中断的响应时间最短为,3,个机器周期,最长为,8,个机器周期。,一般中
展开阅读全文