资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,项目,6,中断及定时系统,6.1,中断系统,6.1.1,中断的几个概念概念,1.,中断的定义,对于,CPU,来说,,CPU,在处理某一事件,A,时,发生了另一事件,B,请求,CPU,迅速去处理(中断发生);,CPU,暂时中断当前的工作,转去处理事件,B,(中断响应和中断服务);待,CPU,将事件,B,处理完毕后,再回到原来事件,A,被中断的地方继续处理事件,A,(中断返回),这一过程称为中断。,所以我们把可以引起中断的请求源称之为中断源。单片机中也有一些可以引起中断的事件,,8051,中一共有,5,个中断源:两个外部中断,两个定时,/,计数器中断,一个串行口中断。,2.,中断的嵌套与优先级,8051,单片机,5,个中断源有两个优先级,项目,6,中断及定时系统,3.,中断的响应过程,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。中断响应过程可以分为以下几个步骤:,1,)保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈;,2,)寻找中断入口,根据,5,个不同的中断源所产生的中断,查找,5,个不同的中断服务程序入口地址。在这,5,个入口地址处存放有中断处理程序;,3,)执行中断处理程序;,4,)中断返回:执行完中断处理程序后,就从中断处返回到主程序,继续执行主程序。,中断系统是计算机的重要组成部分。中断系统可以提高,CPU,的工作效率,还可以提高实时数据的处理时效,所以实时控制、故障自动处理往往采用中断系统,计算机与外围设备间传送数据及实现人机联系也常采用中断方式。,项目,6,中断及定时系统,6.1.2,中断系统的结构,项目,6,中断及定时系统,6.1.3,中断源和中断标志,1.,中断源,MCS-51,的,5,个中断源为两个外部中断、两个定时器中断和一个串行口中断。,1,)外部中断请求源:即外中断,0,和,1,,经由外部引脚引入的,在单片机上有两个引脚,名称为 、,也就是,P3.2,、,P3.3,这两个引脚。,2,)内部中断请求源:两个定时器中断和串行口中断。,8051,内部有两个,16,位的定时,/,计数器,对内部定时脉冲或者,T0/T1,引脚上输入的外部计数脉冲计数,当定时时间到或计数脉冲满时,自动向,CPU,提出中断请求。串行口中断分为串行口发送中断和串行口接收中断两种,在串行口进行发送,/,接收数据时,每当串行口发送,/,接收完一组数据,单片机自动使串行口控制寄存器,SCON,的,RI,或,TI,中断标志置位,并且自动向,CPU,提出串行口中断请求。,项目,6,中断及定时系统,80C51单片机的中断系统提供了5个中断源,具有2个中断优先级,可实现两级中断嵌套。,80C51,单片机的,5,个中断源分别是:,2,个外部中断(由、引脚输入中断请求信号)、,2,个片内定时器,/,计数器溢出中断(,T0,、,T1,)和,1,个片内串行口中断。,TCON,、,SCON,是用来存放各中断源的中断申请标志的寄存器;,IE,是用来设置是否允许中断源中断的寄存器;,IP,是用来设置中断源优先级别的寄存器;硬件查询是相同优先级的中断源再进行排队的硬件电路。,项目,6,中断及定时系统,(,1,)定时器控制寄存器,TCON,(,Timer Control Register,),IE0:,外部中断,0,请求标志位。当,CPU,检测到 引脚上出现下降沿信号或低电平信号时,由内部硬件置位,IE0,(,IE0=1,),向,CPU,请求中断。,IE1,:外部中断,1,请求标志位。当,CPU,检测到 引脚上出现下降沿信号或低电平信号时,由内部硬件置位,IE1,(,IE1=1,),向,CPU,申请中断。,TF0,:定时器,/,计数器,T0,的溢出中断请求标志位。当,T0,计数溢出时,由内部硬件置位,TF0,(,TF0=1,),向,CPU,申请中断。,TF1,:定时器,/,计数器,T1,的溢出中断请求标志位。当,T1,计数溢出时,由内部硬件置位,TF1,(,TF1=1,),向,CPU,申请中断。,IT0,:外部中断,0,触发方式控制位。当,IT0=0,时,电平触发,低电平有效;当,IT0=1,时,边沿触发,下降沿有效。,IT1,:外部中断,1,触发方式控制位。当,IT1=0,时,电平触发,低电平有效;当,IT1=1,时,边沿触发,下降沿有效。,项目,6,中断及定时系统,(,2,)串行口控制寄存器,SCON,(,Serial Control Register,),TI,:串行口发送中断请求标志位。当串行口发送完一个数据帧时,将,TI,置位(,TI=1,),向,CPU,申请中断。,RI,:串行口接收中断请求标志位。当串行口接收完一个数据帧时,将,RI,置位(,RI=1,),向,CPU,申请中断。,项目,6,中断及定时系统,6.1.4,对中断请求的控制,1.,对中断允许的控制,计算机中断系统有两种不同类型的中断:一类称为非屏蔽中断,另一类称为可屏蔽中断。对非屏蔽中断,用户不能用软件的方法加以禁止,一旦有中断申请,,CPU,必须予以响应。对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断,允许中断称中断开放,不允许中断称中断屏蔽。,MCS-51,系列单片机的,5,个中断源都是可屏蔽中断,项目,6,中断及定时系统,EA,:中断允许总控制位。,EA,0,,中断总禁止,禁止所有中断;,EA,1,,中断总允许,置,1,后,各中断源的中断允许由各个控制位进行设置。,EX0,、,EX1,:外部中断允许控制位。,EX0,(,EX1,),0,,表示禁止外中断,INT0,(,INT1,)的中断申请;,EX0,(,EX1,),1,,表示允许外中断,INT0,(,INT1,)的中断申请。,ET0,、,ET1,:定时,/,计数中断允许控制位。,ET0,(,ET1,),0,,表示禁止定时,/,计数器,0,(,1,)的中断申请;,ET0,(,ET1,),1,,表示允许定时,/,计数器,0,(,1,)的中断申请;,ES,:串行口中断允许控制位。,ES,0,,禁止串口中断;,ES,1,,允许串口中断。,MCS-51,单片机各个中断源均为可屏蔽中断。,中断允许寄存器,IE,的单元地址是,A8H,,各控制位可以位寻址,也可以字节寻址。例如可以采用位指令开放外部中断的溢出中断:,SETB EA,SETB EX0,若改为字节传送指令,则仅需采用一条指令:,MOV IE,#81H,项目,6,中断及定时系统,例,:,设允许定时器/计数器T1的溢出中断的中断请求,禁止其它中断源的中断请求,写出设置IE的指令。,分析:根据设定条件,则IE寄存器的EA=1,ET1=1,其它位为0,IE的值应为10001000B,即88H。,用字节传送指令可写为:MOV IE,#88H,或 MOV 0A8H,#88H,若改用位操作指令,则需两条指令:,SETB ET1 ;允许T1溢出中断,SETB EA ;CPU允许所有中断源中断,项目,6,中断及定时系统,(,4,),中断优先级寄存器IP(Interrupt Priority Register),80C51,单片机的,5,个中断源,均可由程序设置为高优先级中断或低优先级中断,谁的优先级别高,就先响应谁。每个中断源的中断优先级都通过中断优先级寄存器,IP,统一设置。,项目,6,中断及定时系统,PX0和PX1:,PX0是外部中断0的中断优先级控制位;,PX1是外部中断1的中断优先级控制位。,PT0和PT1:,PT0为定时器/计数器T0的溢出中断优先级控制位;,PT1为定时器/计数器T1的溢出中断优先级控制位。,PS:,串行口中断优先级控制位。,注意:,当某个中断源的优先级控制位为1时,设置为高优先级中,断;为0时,设置为低优先级中断。,项目,6,中断及定时系统,8051,单片机共有,5,个中断源,在单片机工作过程中,若出现三个或者更多的中断请求源,那么同一优先级别中的中断源就不止一个,这个时候也有中断优先级排队的问题,,8051,单片机对此有统一规定,如表,6-1,所示。可对中断系统的规定概括为以下两条基本规则:,1),低优先级中断系统的规定被高级中断系统中断,反之不能;,2),当多个中断源同时发出申请时,级别高的优先级先服务(先按高低优先级区分,再按辅助优先级区分)。,高,低,中断源,同一级别的优先级,外部中断,0,定时,/,计数器,0,溢出中断,外部中断,1,定时,/,计数器,1,溢出中断,串行口中断,表,6-1 8051,各个中断源中断优先级顺序,项目,6,中断及定时系统,例,:,设80C51单片机的外部中断为高优先级,内部中断为低优先级,写出设置IP的指令。,分析:由给定的条件可知:IP寄存器中,PX1=1,PX0=1,其余位为0,即IP=00000101B=05H。,用字节传送指令设置:MOV IP,#05H,或 MOV 0B8H,#05H,用位操作指令设置:,SETB PX0,SETB PX1,CLR PT0,CLR PT1,CLR PS,项目,6,中断及定时系统,6.1.5,中断处理过程,中断处理过程可分为中断响应、中断处理和中断返回三个阶段。,1.,中断响应,中断响应是,CPU,对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。,CPU,并非任何时刻都响应中断请求,而是在中断响应条件满足之后才会响应。,1,)中断响应条件,(1),有中断源发出中断请求。,(2),中断总允许位,EA=1,。,(3),申请中断的中断源允许。,满足以上基本条件,,CPU,一般会响应中断,但,CPU,正在响应同级或高优先级的中断、正在执行,RETI,中断返回指令以及访问专用寄存器,IE,和,IP,的指令时,,CPU,不响应中断请求而在下一机器周期继续查询,否则,,CPU,在下一机器周期响应中断。,项目,6,中断及定时系统,2,)中断响应过程,中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。首先把中断点的地址(断点地址)压入堆栈保护,然后将对应的中断入口地址装入程序计数器,PC,(由硬件自动执行),使程序转向该中断入口地址,执行中断服务程序。,MCS-51,系列单片机各中断源的入口地址由硬件事先设定,分配如表,6-2,所示。,因为,5,个中断源的入口地址之间,只相隔,8,个存储单元,一般的中断服务程序是容纳不下的,使用时通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到存储器其他的任何空间,并且将中断服务程序安排在相应的空间中。,例如,若采用定时器,T0,中断,其中断入口地址为,000BH,,中断服务程序名为,TIME00,,因此,指令形式为:,ORG 000BH;T1,中断入口,AJMPTIME00;,转向中断服务程序,中断源,入口地址,外部中断,0,0003H,定时,/,计数器,0,溢出中断,000BH,外部中断,1,0013H,定时,/,计数器,1,溢出中断,001BH,串行口中断,0023H,项目,6,中断及定时系统,2.,中断处理,中断处理就是执行中断服务程序。中断服务程序从中断入口地址开始执行,到返回指令,“,RETI,”,为止,一般包括两部分内容,一是保护现场,二是完成中断源请求的服务。,通常,主程序和中断服务程序都会用到累加器,A,、状态寄存器,PSW,及其它一些寄存器,当,CPU,进入中断服务程序用到上述寄存器时,会破坏原来存储在寄存器中的内容,一旦中断返回,将会导致主程序的混乱,因此,在进入中断服务程序后,一般要先保护现场,然后,执行中断处理程序,在中断返回之前再恢复现场。,例如:,TIME00:;,中断服务程序,CLR EA ;,关中断,PUSH PSW ;,保护现场,PUSH ACC,PUSH B,;,中断处理,PUSH B ;,恢复现场,PUSH ACC,PUSH PSW,SE
展开阅读全文