单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,80C51的中断系统,80C51的中断系统结构,一、中断的概念,CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(,中断发生,);,CPU暂时中断当前的工作,转去处理事件B(,中断响应和中断服务,);,待,CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(,中断返回,),这一过程称为,中断,。,MCS-51单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,引起,CPU中断的根源,称为,中断源,。中断源向,CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即,断点,),称为中断返回。实现上述中断功能的部件称为,中断系统,(中断机构)。,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速,I/O设备的数据传送问题,而且还具有如下优点:,分时操作,。,CPU,可以分时为多个,I/O,设备服务,提高了计算机的利用率;,实时响应,。,CPU,能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高,。,CPU,具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,80C51中断系统的结构,80C51的中断系统有5个中断源,(,8052有 6个),,,2个优先级,可实现二级中断嵌套,。,1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。,2、(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。,3、,TF0,(,TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。,4、,TF1,(,TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。,5、,RI,(,SCON.0)或,TI,(,SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。,二、中断请求标志,1、TCON的中断标志,IT0(TCON.0),外部中断0触发方式控制位。,当,IT0=0时,为电平触发方式。,当IT0=1时,为边沿触发方式(下降沿有效)。,IE0(TCON.1),外部中断0中断请求标志位。,IT1(TCON.2),外部中断1触发方式控制位。,IE1(TCON.3),外部中断1中断请求标志位。,TF0(TCON.5),定时/计数器T0溢出中断请求标志位。,TF1(TCON.7),定时/计数器T1溢出中断请求标志位。,2、SCON的中断标志,RI,(,SCON.0,),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位,RI,。注意,,RI,必须由软件清除。,TI,(,SCON.1,),串行口发送中断标志位。当,CPU,将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位,TI,。,CPU,响应中断时,不能自动清除,TI,,,TI,必须由软件清除。,一、中断允许控制,CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。,80C51中断的控制,EX0,(IE.0),,外部中断,0,允许位;,ET0,(IE.1),,定时,/,计数器,T0,中断允许位;,EX1,(IE.2),,外部中断,0,允许位;,ET1,(IE.3),,定时,/,计数器,T1,中断允许位;,ES,(,IE.4),,串行口中断允许位;,EA,(IE.7),,,CPU,中断允许(总允许)位。,二、中断优先级控制,80C51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的,。,PX0,(,IP.0,),外部中断,0,优先级设定位;,PT0,(,IP.1,),定时,/,计数器,T0,优先级设定位;,PX1,(,IP.2,),外部中断,0,优先级设定位;,PT1,(,IP.3,),定时,/,计数器,T1,优先级设定位;,PS,(,IP.4,),串行口优先级设定位;,PT2,(IP.5),,定时,/,计数器,T2,优先级设定位。,PX0,(,IPH.0,),外部中断,0,优先级设定位;,PT0,(,IPH.1,),定时,/,计数器,T0,优先级设定位;,PX1,(,IPH.2,),外部中断,0,优先级设定位;,PT1,(,IPH.3,),定时,/,计数器,T1,优先级设定位;,PS,(,IPH.4,),串行口优先级设定位;,PT2,(IPH.5),,定时,/,计数器,T2,优先级设定位。,而,80C52单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先级寄存器IP和IPH中的相应位的状态来规定的,。,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,设置,52单片机的4个中断源,使他们的优顺序为T1,INT1,INT0,T0.,IPH=0X08;PT1=1;,IP =0X40;PX1=1;,80C51单片机的中断优先级有三条原则:,CPU,同时接收到几个中断时,,首先响应优先级别最高的中断请求,。,正在进行的中断过程,不能被新的同级或低优先级的中断请求所中断,。,正在进行的低优先级中断服务,,能被高优先级中断请求所中断,。,为了实现上述后两条原则,,中断系统内部设有两个用户不能寻址的优先级状态触发器。,其中一个置,1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,80C51单片机中断处理过程,中断响应条件,中断源有中断请求;,此中断源的中断允许位为1;,CPU开中断(即EA=1)。,以上三条同时满足时,,CPU才有可能响应中断,。,3.2.1 中断响应条件和时间,80C51的定时/计数器,实现定时功能,,比较方便的办法是利用单片机内部的定时,/计数器,。也可以采用下面三种方法:,软件定时,:软件定时不占用硬件资源,但占用了,CPU,时间,降低了,CPU,的利用率。,采用时基电路定时,:例如采用,555,电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。,采用可编程芯片定时,:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时,/,计数器不够用时,可以考虑进行扩展。,定时,/计数器的结构和工作原理,一、定时,/计数器的结构,定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志,。,二、定时,/计数器的工作原理,加,1计数器,输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。,可见,由溢出时计数器的值减去计数初值才是加,1计数器的计数值,。,设置为定时器模式时,,加,1,计数器是对内部机器周期计数(,1,个机器周期等于,12,个振荡周期,即计数频率为晶振频率的,1/12,)。,计数值,N,乘以机器周期,Tcy,就是定时时间,t,。,设置为,计数器模式时,,外部事件计数脉冲由,T0,或,T1,引脚输入到计数器。在每个机器周期的,S5P2,期间采样,T0,、,T1,引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加,1,,更新的计数值在下一个机器周期的,S3P1,期间装入计数器。由于检测一个从,1,到,0,的下降沿需要,2,个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为,12MHz,时,,最高计数频率不超过,1/2MHz,,即计数脉冲的周期要大于,2,s,。,定时/计数器的控制,80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。,一、工作方式寄存器TMOD,工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:,GATE:门控位。GATE0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。,:定时/计数模式选择位。0为定时模式;=1为计数模式。,M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。,二、控制寄存器,TCON,TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:,TF1,(,TCON.7,):,T1,溢出中断请求标志位。,T1,计数溢出时由硬件自动置,TF1,为,1,。,CPU,响应中断后,TF1,由硬件自动清,0,。,T1,工作时,,CPU,可随时查询,TF1,的状态。所以,,TF1,可用作查询测试的标志。,TF1,也可以用软件置,1,或清,0,,同硬件置,1,或清,0,的效果一样。,TR1,(,TCON.6,):,T1,运行控制位。,TR1,置,1,时,,T1,开始工作;,TR1,置,0,时,,T1,停止工作。,TR1,由软件置,1,或清,0,。所以,用软件可控制定时,/,计数器的启动与停止。,TF0,(,TCON.5,):,T0,溢出中断请求标志位,其功能与,TF1,类同。,TR0,(,TCON.4,):,T0,运行控制位,其功能与,TR1,类同。,定时/计数器的工作方式,一、方式,0,方式,0为13位计数,,由,TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。,定时器模式时,有,:Nt/Tcy,计数初值计算的公式为:,定时器的初值还可以采用计数个数直接取补法获得,。,计数模式时,计数脉冲是,T0引脚上的外部脉冲。,门控位,GATE,具有特殊的作用。当,GATE=0时,经反相后使,或门输出为1,此时仅由TR0控制与门的开启,与门输出1,时,控制开关接通,计数开始;,当,GATE=1时,,由外中断引脚信号控制或门的输出,此时控制,与门的开启由外中断引脚信号和,TR0共同控制,。当,TR0=1时,外中断引脚信号引脚的,高电平启动计数,,外中断引脚信号引脚的,低电平停止计数,。这种方式常用来测量外中断引脚上正脉冲的宽度。,二、方式,1,方式,1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。,计数个数与计数初值的关系为:,三、方式,2,方式2为自动重装初值的8位计数方式。,工作方式,2特别适合于用作较精确的脉冲信号发生器。,计数个数与计数初值的关系为,:,四、方式,3,方式,3只适用于定时/计数器T0,,定时器