第5章80C51的中断系统及定时计数器课件

上传人:文**** 文档编号:242586081 上传时间:2024-08-28 格式:PPT 页数:51 大小:955.42KB
返回 下载 相关 举报
第5章80C51的中断系统及定时计数器课件_第1页
第1页 / 共51页
第5章80C51的中断系统及定时计数器课件_第2页
第2页 / 共51页
第5章80C51的中断系统及定时计数器课件_第3页
第3页 / 共51页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,2024/8/28,1,第,5,章,80C51,的中断系统与定时器,/,计数器,80C51,的,中断系统,5.1,80C51,单片机的,定时器,/,计数器,5.2,5.3,2023/9/41第5章 80C51的中断系统与定时器/计数,2024/8/28,2,5.1,80C51,的中断系统,5.1.1,中断及中断嵌套的概念,中断的概念,当,CPU,正在处理某项事务,的时候,如果外界或内部发生,了紧急事件,要求,CPU,暂停正,在处理的工作转而去处理这个,紧急事件,待处理完后再回到,原来被中断的地方,继续执行,原来被中断了的程序,这样的,过程称为,中断,。,2023/9/425.1 80C51的中断系统5.1.1,2024/8/28,3,与中断有关的几个术语:,1,、,中断源,:引起,CPU,中断的因源。,2,、,中断请求,(中断申请),:中断源向,CPU,提出的处理要求。,3,、,中断响应过程,:,CPU,暂时中断原来的工作,A,,转去处理事件,B,的过程。,4,、,中断服务,(中断处理),:,对事件,B,的整个处理过程。,5,、,中断返回,: 事件处理完毕后,再回到原来被中断的地方(断点),继续执行程序。,6,、,中断系统,:实现中断功能的部件。,一个完整的中断过程应包括:,中断请求,、,中断判优,、,中,断响应,、,中断服务,和,中断返回,。,2023/9/43与中断有关的几个术语:1、中断源:引起CP,2024/8/28,4,对于多重中断,若新来的中断优先级别更高,则,CPU,应该中断现行的中断服务程序,响应优先级别高的中断,在高级中断处理完后,再返回原先的中断服务程序,这个过程就是,中断嵌套,。,中断嵌套的概念,2023/9/44 对于多重中断,若新来的中断优先级别,2024/8/28,5,80C51,中断系统的结构,5,个中断源、,2,个优先级,5.1.2,中断请求源和中断控制,2023/9/45 80C51中断系统的结构5个中断源、2个,2024/8/28,6,中断请求源及中断请求标志,5.1.2,中断请求源和中断控制,外部中断,0,(,INT0,),外部中断,1,(,INT1,),T0,溢出中断(,TF0,),T1,溢出中断(,TF1,),串行口中断(,RI,或,TI,),2023/9/46 中断请求源及中断请求标志5.1.2 中断,2024/8/28,7,TCON,寄存器:,5.1.2,中断请求源和中断控制,中断控制,TCON,寄存器,2023/9/47TCON寄存器:5.1.2 中断请求源和中,2024/8/28,8,触发方式设置及中断标志,7,6,5,4,3,2,1,0,TCON,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,字节地址:,88H,电平方式(,ITx=0,),,INTx,引脚,低电平,时,IEx=1,,,响应中断后,IEx,不自动清,0,(,INTx,引脚状态)。,边沿方式(,ITx=1,),,INTx,引脚,负跳变,时,IEx=1,,,响应中断后,IEx,自动清,0,。,外部中断标志,IE1,、,IE0,(用,IEx,表示),2023/9/48 触发方式设置及中断标志 76543210,2024/8/28,9,两种触发方式比较:,电平方式,时,,INTx,低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,,INTx,低电平必须撤除,否则中断返回之后将再次产生中断。,边沿方式,时,采样到有效下降沿后,在,IEx,中将锁存一个,1,。若,CPU,暂时不能响应,申请标志也不会丢失,直到响应时才清,0,。,2023/9/49两种触发方式比较: 电平方式时, INTx,2024/8/28,10,溢出中断标志,TF1,、,TF0,(用,TFx,表示),溢出中断请求标志,TFx,,,Tx,启动后就开始由初值进行加,1,计数,直至最高位产生溢出使,TFx=1,向,CPU,请求中断。,CPU,响应中断后,TFx,自动清,0,。,2023/9/410 溢出中断标志TF1、TF0(用TFx表,2024/8/28,11,中断控制,SCON,寄存器,7,6,5,4,3,2,1,0,SCON,TI,RI,字节地址:,98H,RI,:串口,接收,中断标志,响应中断时,不能自动清除,TI,:串口,发送,中断标志,响应中断时,不能自动清除,2023/9/411 中断控制SCON寄存器7654321,2024/8/28,12,补充知识,-,中断请求的撤除,1,、定时器中断请求的撤除:,对于定时器,0,或定时器,1,溢出中断,,CPU,在响应中断后由硬件自动清除中断标志位,TF0,或,TF1,,无须采取其他措施。,2,、串行口中断的撤除:,对于串行口中断,在,CPU,响应中断后,硬件不能清除中断请求标志,TI,或,RI,,必须在中断服务程序中由软件来清除相应的标志。,3,、外部中断的撤除:,外部中断分为边沿触发和电平触发两种方式。,(,1,)对于边沿触发的外部中断,0,或外部中断,1,,,CPU,在响应中断后由硬件自动清除中断标志位,IE0,或,IE1,,无须采取其他措施。,(,2,)对于电平触发的外部中断,0,或外部中断,1,,其中断请求撤除方法较复杂。,2023/9/412补充知识-中断请求的撤除1、定时器中,2024/8/28,13,中断源的开放和屏蔽由,IE,控制(,1,,开放;,0,,禁止,),7,6,5,4,3,2,1,0,IE,EA,ES,ET1,EX1,ET0,EX0,字节地址:,A8H,EX0:,外中断,0,允许,ET0:T0,中断允许,EX1:,外中断,1,允许,ET1:T1,中断允许,ES :,串口中断允许,EA,:,CPU,中断允许,中断控制,IE,寄存器,2023/9/413中断源的开放和屏蔽由IE控制(1,开放;,2024/8/28,14,IE,寄存器,2023/9/414IE寄存器,2024/8/28,15,中断控制,IP,寄存器,中断优先级由,IP,控制(,1,,高级;,0,,低级,),7,6,5,4,3,2,1,0,IP,PS,PT1,PX1,PT0,PX0,字节地址:,B8H,PX0:,外中断,0,优先级,PT0:T0,中断,优先级,PX1:,外,中断,1,优先级,PT1:T1,中断,优先级,PS :,串口中断,优先级,同一优先级的自然顺序:,自高至低:,INT0,、,TO,、,INT1,、,T1,、串口。,2023/9/415 中断控制IP寄存器中断优先级由IP控,2024/8/28,16,IP,寄存器,2023/9/416IP寄存器,2024/8/28,17,中断优先级控制,几个中断同时申请,先响应高级的中断,正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。,为此,中断系统内设有对应高、低,2,个,优先级状态触发器,(用户不能寻址)。,状态触发器的复位由中断返回指令,RETI,控制。,2023/9/417 中断优先级控制几个中断同时申请,先响应,2024/8/28,18,1,、低优先级中断源可被高优先级中断源所中断,(中断嵌套),反之不能(即高优先级中断源不能被低,优先级中断源中断)。,2,、一种中断源(不管是什么优先级),一旦得到,响应,与它同级的中断源不能再中断它。,3,、当,CPU,同时,收到几个,同一优先级,的中断请求时,,按,自然优先级,的顺序响应中断。,2023/9/4181、低优先级中断源可被高优先级中断源,2024/8/28,19,表,5-1,自然优先级排列表,中断源,同级内的中断优先级,外部中断,0,最高,定时器,/,计数器,0,溢出中断,外部中断,1,定时器,/,计数器,1,溢出中断,串行口中断,最低,2023/9/419表5-1 自然优先级排列表中断源同级内的,2024/8/28,20,5.1.3,中断处理过程,中断响应条件,有中断请求,相应的中断允许位为,1,CPU,开中断(即,EA=1,),遇下面情况之一将不被响应(,此间中断条件失效,中断丢失,),正在处理同级或高级中断,(没有高优先级或同级优先级的中断服务在执行),当前查询周期不是所执行指令的最后一个机器周期,(正在执行的指令已结束),正在执行,RETI,或,访问,IE,或,IP,的指令,(如果执行的指令是,RETI,,或访问,IE,、,IP,,必须再执行一条其他的指令才去中断响应),1,、中断响应,2023/9/4205.1.3 中断处理过程 中断响应条件,2024/8/28,21,中断响应时间,中断响应至少需要,3,个完整的机器周期,(,3,8,个)!,受阻时要附加,3,5,个机器周期(,无同级或高级中断正进行,),查询周期不是当前指令的最后机器周期,(,如,MUL,,,+3,),查询周期恰逢,RETI,类指令,(,且后跟,MUL,指令,+5,),2023/9/421 中断响应时间中断响应至少需要3个完整的,2024/8/28,22,CPU,响应中断过程,将相应优先级状态触发器置,1,(,阻断后来同级或低级中断,),执行硬件,LCALL,指令(,PC,入栈,中断服务程序入口址送,PC,),执行中断服务程序,编写中断服务程序注意,中断服务程序入口存放指令,LJMP,或,AJMP,现场保护与现场恢复,2023/9/422 CPU响应中断过程将相应优先级状态触发,2024/8/28,23,中断服务程序入口地址表,2023/9/423 中断服务程序入口地址表,2024/8/28,24,开中断,中断否?,保护现场,设备服务,恢复现场,开中断,中断返回,中断服务程序,中断响应,程序断点进栈,向量地址,PC,是,单重中断,中断返回,保护现场,设备服务,恢复现场,开中断,中断否?,中断响应,程序断点进栈,向量地址,PC,是,中断服务程序,多重中断,2,、中断处理,2023/9/424开中断中断否?保护现场设备服务恢复现场,2024/8/28,25,3,、中断返回,中断服务程序最后指令必须是,RETI,,其功能:,将断点从堆栈弹出送,PC,,,CPU,从原断点继续执行程序,将相应优先级状态触发器清,0,,恢复原来工作状态,注意,不能用,RET,代替,RET,I,中断服务程序中,PUSH,和,POP,必须成对使用,2023/9/4253、中断返回 中断服务程序最后指令必须是,2024/8/28,26,小 结,2023/9/426小 结,2024/8/28,27,5.1.4,应用举例,【,例,5-1】,设有,5,个外部中断源,中断优先级由高到低排队顺序为,XI0,、,XI1,、,XI2,、,XI3,、,XI4,。试设计它们与,80C51,单片机的接口。,2023/9/4275.1.4 应用举例【例5-1】设有5,2024/8/28,28,中断服务程序,:,ORG 0003H,LJMP INSE0,ORG 0013H,LJMP INSE1,INSE0:PUSH PSW ;XI0,中断服务,PUSH ACC,POP ACC,POP PSW,RETI,(,转下页,),2023/9/428中断服务程序: ORG,2024/8/28,29,INSE1:PUSH PSW,(,接上页,),PUSH ACC,JB P1.0,DV1,;,P1.0,为,1,,转,XI1,中断服务程序,JB P1.1,DV2,;,P1.1,为,1,,转,XI2,中断服务程序,JB P1.2,DV3,;,P1.2,为,1,,转,XI3,中断服务程序,JB P1.3,DV4,;,P1.3,为,1,,转,XI4,中断服务程序,INRET:POP ACC,POP PSW,RETI,DV1:,;,XI1,中断服务程序,AJMP INRET,DV4:,;,XI4,中断服务程序,AJMP INRET,2023/9/429INSE1:PUSH PSW,2024/8/28,30,5.2,80C51,单片机的定时器,/,计数器,结构,基本型:,T0,,定时、计数。,T1,,定时、计数、串口波特率发生器。,5.2.1,定时器,/,计数器的结构与工作原理,TH1,、,TL1,TH0,、,TL0,TCON,TMOD,2023/9/4305.2 80C51单片机的定时器/计数,2024/8/28,31,由两个特殊功能寄存器,TCON,、,TMOD,以及,T0,、,T1,组成。,1,、,T0,:分为两个独立的,8,位计数器(加,1,计数器),,分别是:低,8,位计数器,TL0,和高,8,位计数器,TH0,。,2,、,T1,:分为两个独立的,8,位计数器(加,1,计数器),,分别是:低,8,位计数器,TL1,和高,8,位计数器,TH1,。,3,、,TMOD,:定时器的模式(方式)控制寄存器。,4,、,TCON,:定时器的控制寄存器。,2023/9/431 由两个特殊功能寄存器TCON、,2024/8/28,32,方式寄存器,TMOD,7,6,5,4,3,2,1,0,TMOD,GATE,C/T,M1,M0,GATE,C/T,M1,M0,字节地址:,89H,GATE,:门控位。,GATE,0,时,只要,TRx,为,1,,就可启动计数器工作;,GATA,1,时,定时器的启动还要加上,INTx,引脚为高电平这一条件。,C/T,:模式选择位。 清,0,为定时模式,置,1,为计数方式。,M1M0,:工作方式设置位。可设置四种工作方式,(,见下页,)。,2023/9/432方式寄存器TMOD 76543210TM,2024/8/28,33,M1M0,工作方式,说 明,00,方式,0,13,位定时,/,计数器,01,方式,1,16,位定时,/,计数器,10,方式,2,8,位自动重装定时,/,计数器,11,方式,3,T0,分成两个独立的,8,位定时,/,计数器;,T1,此方式停止计数,注意:,TMOD,不能进行位寻址,2023/9/433M1M0工作方式说,2024/8/28,34,2023/9/434,2024/8/28,35,控制寄存器,TCON,7,6,5,4,3,2,1,0,TCON,TF1,TR1,TF0,TR0,字节地址:,88H,TFx,:,Tx,溢出标志位。,响应中断后,TFx,有硬件自动清,0,。用软件设置,TFx,可产生同硬件置,1,或清,0,同样的效果。,TRx,:,Tx,运行控制位。,置,1,时开始工作;清,0,时停止工作。,TRx,要由软件置,1,或清,0,(,即启动与停止要由软件控制,)。,2023/9/435控制寄存器TCON 76543210TC,2024/8/28,36,工作原理,实质是,加,1,计数器,定时器模式,时,是对内部,机器周期,计数。计数值乘以机器周期就是定时时间(每一个机器周期使计数器的值加,1,),计数器模式,时,是对,外部事件,计数。脉冲由,T0,(,P3.4,)或,T1,(,P3.5,),引脚输入。,2023/9/436工作原理实质是加1计数器定时器模式时,是,2024/8/28,37,5.2.2,定时器,/,计数器的工作方式,T0,有方式,0,、,1,、,2,、,3,;,T1,有方式,0,、,1,、,2,。以,T0,为例说明。,方式,0,:,13,位方式,2023/9/4375.2.2 定时器/计数器的工作方式T,2024/8/28,38,方式,1,:,16,位方式,X=2,16,-N=65536-N,计数范围:,1,65536,计数初值要,分成,2,个字节,分别送入,TH0,、,TL0,2023/9/438方式1:16位方式 X=216-N=6,2024/8/28,39,方式,2,:,8,位自动重装方式,X=2,8,-N=256-N,计数范围:,1,256,特别适合与脉冲信号发生器,2023/9/439方式2:8位自动重装方式 X=28-N,2024/8/28,40,方式,3,:,(仅,T0,有此方式,,T1,的方式,3,将停止计数),TL0,进行,8,位定时,/,计数,TH0,进行,8,位定时(,T1,方式,2,时,可出借,TR1,、,TF1,),2023/9/440方式3:(仅T0有此方式,T1的方式3将,2024/8/28,41,5.2.3,定时器,/,计数器的初始化,初始化步骤:,对,TMOD,赋值,以确定,T0,和,T1,的工作方式;,求初值,并写入,TH0,、,TL0,或,TH1,、,TL1,;,中断方式时,要对,IE,赋值,开放中断;,使,TR0,或,TR1,置位,启动定时,/,计数器工作。,2023/9/4415.2.3 定时器/计数器的初始化 初,2024/8/28,42,1,、定时工作方式时:,X=M-,计数值,=,2,、计数工作方式时:,X=M-,计数值,式中:,X,:计数初值;,t,:要求定时的时间,单位是 ;,fosc,:振荡器的振荡频率,单位是,Mhz,。,计数器初值的计算,M,:最大计数值,模式,0,下:,M=2,13,=8192,模式,1,下:,M=2,16,=65536,模式,2,下:,M=2,8,=256,模式,3,下:,M=2,8,=256,2023/9/442 1、定时工作方式时: 计数器初,2024/8/28,43,【,例,5-2】,已知单片机时钟频率,=6MHZ,,当定时器,T0,分别工作于方式,0,和方式,1,,定时时间为,1ms,时,计算送入,TH0,和,TL0,的计数初值各为多少?,2023/9/443【例5-2】已知单片机时钟频率 =6MH,2024/8/28,44,【,例,5-3】,若单片机时钟频率 ,请计算定时,2ms,所需的定时器初值。,解:由于定时器工作在方式,2,和方式,3,下时的最大定时时间只有,0.256ms,,因此要想获得,2ms,的定时时间,定时器必须工作在方式,0,或方式,1,。,若采用方式,0,,则根据公式可求得定时器初值为:,TC=213-2ms/1us=6192=1830H,即:,TH0,应装入,C1H,;,TL0,应装入,10H,(高三位为,0,),若采用方式,1,,则有:,TC=216-2ms/1us=63536=F830H,即:,TH0,应装入,F8H,;,TL0,应装入,30H,2023/9/444 【例5-3】若单片机时钟频率,2024/8/28,45,定时时间较小时(小于,65ms,),求计数初值,X:,Tcy,为,1,S,N=10ms/1,S=10,000,X=65536-10000=D8F0H,应将,D8,送,TH0, F0H,送,TL0,5.2.4,应用举例,【,例,5-4】,设系统的晶振频率为,12MHZ,,利用定时,/,计数器,T0,的方式,1,,编制程序使,P1.0,引脚上输出周期为,20ms,的方波。,确定方式字:,T0,在定时的方式,1,时:,M1M0=01,,,GATE=0,,,C/T=0,方式控制字为,01,H,2023/9/445 定时时间较小时(小于65ms)求计数初,2024/8/28,46,ORG 0000H,LJMP MAIN,ORG 000BH,LJMP DVT0,ORG 0100H,MAIN:MOV TMOD,#01H ;,置,T0,方式,1,MOV TH0,#0D8H;,装入计数初值,MOV TL0,#0F0H,SETB ET0 ;T0,开中断,SETB EA ;CPU,开中断,SETB TR0 ;,启动,T0,SJMP $ ;,等待中断,DVT0:CPL P1.0,MOV TH0,#0D8H,MOV TL0,#0F0H,RETI,END,主程序,中断服务程序,2023/9/446 ORG 0000HDVT0,2024/8/28,47,采用软件查询方式完成的源程序如下:,ORG 0000H,LJMP MAIN ;,跳转到主程序,ORG 0100H ;,主程序,MAIN:MOV TMOD,#01H ;,置,T0,工作于方式,1,LOOP:MOV TH0,#0D8H ;,装入计数初值,MOV TL0,#0F0H,SETB TR0 ;,启动定时器,T0,JNB TF0,$ ;TF0=0,,查询等待,CLR TF0 ;,清,TF0,CPL P1.0 ;P1.0,取反输出,SJMP LOOP,END,2023/9/447采用软件查询方式完成的源程序如下:,2024/8/28,48,定时时间较大时(大于,65ms,),。实现方法:一是采用,1,个定时器定时一定的间隔(如,20ms,),然后用软件进行计数;二是采用,2,个定时器级联,其中一个定时器用来产生周期信号(如,20ms,为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。,【,例,5-5】,编写程序,实现用定时,/,计数器,T0,定时,使,P1.7,引脚输出周期为,2s,的方波。设系统的晶振频率为,12MHz,。,确定方式字:,T0,在定时的方式,1,时:,M1M0=01,,,GATE=0,,,C/T=0,方式控制字为,01,H,求计数初值,X:,Tcy,为,1,S,N=20ms/1,S=20,000,X=65536-20000=4E20H,应将,4E,送,TH0, 20H,送,TL0,采用定时,20ms,,然后再计数,50,次的方法实现,2023/9/448 定时时间较大时(大于65ms)。实现方,2024/8/28,49,ORG 0000H,LJMP MAIN,ORG 000BH,LJMP DVT0,ORG 0030H,MAIN:MOV TMOD,#01H;,置,T0,方式,1,MOV TH0,#4EH ;,装入计数初值,MOV TL0,#20H ;,首次计数值,MOV R7,#50,;,计数,50,次,SETB ET0 ;T0,开中断,SETB EA ;CPU,开中断,SETB TR0 ;,启动,T0,SJMP $ ;,等待中断,DVT0:DJNZ R7,NT0,MOV R7,#50,CPL P1.7,NT0:MOV TH0,#4EH,MOV TL0,#20H,SETB TR0,RETI,END,主程序,中断服务程序,2023/9/449 ORG 0000HDVT0,2024/8/28,50,【,例,5-6】,定时器,/,计数器用于外部中断扩展。,用,T0,扩展一个外部中断源。将,T0,设置为计数器方式,按方式,2,工作,,TH0,、,TL0,的初值均为,0FFH,,,T0,允许中断,,CPU,开放中断。其初始化程序如下:,MOV TMOD,#06H ;,置,T0,为计数器方式,2,MOV TL0,#0FFH ;,置计数初值,MOV TH0,#0FFH,SETB TR0 ;,启动,T0,工作,SETB EA ;CPU,开中断,SETB ET0 ;,允许,T0,中断,T0,外部引脚上出现一个下降沿信号时,,TL0,计数加,1,,产生溢出,将,TF0,置,1,,向,CPU,发出中断请求,2023/9/450【例5-6】定时器/计数器用于外部中断扩,Thank You !,Thank You !,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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