收藏 分销(赏)

MCS51单片机中的定时器.ppt

上传人:xrp****65 文档编号:13738494 上传时间:2026-04-07 格式:PPT 页数:38 大小:681.50KB 下载积分:10 金币
下载 相关 举报
MCS51单片机中的定时器.ppt_第1页
第1页 / 共38页
MCS51单片机中的定时器.ppt_第2页
第2页 / 共38页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,4,章,MCS-51,单片机内部接口电路,(定时器),1,1.,定时器,/,计数器的 结构与原理,1.1,定时器,/,计数器的结构,1.2,定时器,/,计数器的原理,1.3,定时器,/,计数器的功能,2,1.1,定时器,/,计数器的结构,8051,单片机内部设有,两个,16,位可编程定时器,/,计数器,,简称为定时器,0(,T0,),和定时器,1(,T1,),。,16,位的定时器,/,计数器分别由,两个,8,位寄存器,组成,即:,T0,由,TH0,和,TL0,构成,,T1,由,TH1,和,TL1,构成。每个寄存器均可单独访问,这些寄存器是用于存放定时初值或计数初值的。,有一个,8,位的定时器,方式寄存器,TMOD,和一个,8,位的定时器,控制寄存器,TCON,。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的,定时器,/,计数器的工作方式、定时时间和启停控制通过由指令来确定这些寄存器的状态来实现。,TMOD,主要用于设定,定时器的工作方式,,,TCON,主要用于控制,定时器的启动与停止,,并保存,T0,、,T1,的,溢出和中断标志,。,3,1.1,定时器,/,计数器的结构,定时器,/,计数器结构框图,4,1.2,定时器,/,计数器的原理,16,位的定时器,/,计数器实质上是一个加,l,计数器,可实现,定时和计数两种功能,,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。,在定时器,/,计数器开始工作之前,,CPU,必须将一些命令,(,称为控制字,),写入定时器,/,计数器。将控制字写入定时器,/,计数器的过程叫,定时器,/,计数器的初始化,。,在初始化程序中,要将,工作方式控制字,写入定时器方式寄存器,(TMOD),,,工作状态控制字,(,或相关位,),写入定时器控制寄存器,(TCON),,赋,定时,/,计数初值,给,TH0(TH1),和,TL0(TL1),。,5,1.2,定时器,/,计数器的原理,定时器,/,计数器的,定时功能,。,计数器的加,1,信号由振荡器的,12,分频信号产生,即,每过一个机器周期,计数器加,1,,直至计满溢出。,定时器的定时时间与系统的时钟频率有关。因一个机器周期等于,12,个时钟周期,所以,计数频率应为系统时钟频率的十二分之一,。如果晶振频率为,12MHz,,则机器周期为,1,s,。通过改变定时器的定时初值,并适当选择定时器的长度,(8,位、,13,位或,16,位,),,可以调整定时时间。,6,1.2,定时器,/,计数器的原理,定时器,/,计数器的,计数功能,。,通过外部计数,输入引脚,T0(P3.4),和,T1(P3.5),对外部信号计数,,外部脉冲的,下降沿,将触发计数。,因检测一个由,1,至,0,的跳变需要两个机器周期,故,外部信号的最高计数频率为时钟频率的,二十四分之一,。如果晶振频率为,12MHz,,则最高计数频率为,0.5MHz,。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上,。,7,1.3,定时器,/,计数器的功能,定时器,/,计数器具有定时和计数两种功能,应用范围如下。,1.,定时与延时控制方面,可产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。,2.,测量外部脉冲方面,对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。,3.,监控系统工作方面,对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。,8,2,定时器,/,计数器的控制,2.1,定时器方式寄存器,TMOD,2.2,定时器控制寄存器,TCON,9,2.1,定时器方式寄存器,TMOD,定时器方式寄存器,TMOD,的作用是设置,T0,、,T1,的工作方式。,TMOD,的格式:,各位的功能说明:,(1),GATE,:,门控位,。,GATE=0,:,软件启动定时器,,即用指令使,TCON,中的,TR1(TR0),置,1,即可启动定时器,1(,定时器,0),。,GATE=1,:,软件和硬件共同启动定时器,,即用指令使,TCON,中的,TR1(TR0),置,1,时,只有外部中断,INT0(INT1),引脚输入高电平时才能启动定时器,1(,定时器,0),。,10,2.1,定时器方式寄存器,TMOD,(2),C/T,:,功能选择位,。,C/T=0,时,以定时器方式工作。,C/T=1,时,以计数器方式工作。,(3),M1,、,M0,:,方式选择位,。,定时器工作方式选择位定义,自动重装初值,8,位,计数器,方式,2,1 0,定时器,0,:分为两个独立的,8,位,计数器,定时器,1,:无中断的,计数器,方式,3,1 1,16,位,计数器,方式,1,0 1,13,位,计数器,方式,0,0 0,功能描述,工作方式,M1 M0,11,2.2,定时器控制寄存器,TCON,定时器控制寄存器,TCON,的作用是,控制定时器的启动与停止,并保存,T0,、,T1,的溢出和中断标志,。,TCON,的格式,:,各位的功能说明:,(1),TF1,(TCON.7),:,定时器,1,溢出标志位,。当定时器,1,计满溢出时,由硬件自动使,TF1,置,1,,并申请中断。对该标志位有两种处理方法,一种是以,中断,方式工作,即,TF1,置,1,并申请中断,响应中断后,执行中断服务程序,并由硬件自动使,TF1,清,0,;另一种以,查询,方式工作,即通过查询该位是否为,1,来判断是否溢出,,TF1,置,1,后必须用软件使,TF1,清,0,。,12,2.2,定时器控制寄存器,TCON,各位的功能说明:,(2),TR1,(TCON.6),:,定时器,1,启停控制位,。,GATE=0,时,用软件使,TR1,置,1,即启动定时器,1,,若用软件使,TR1,清,0,则停止定时器,1,。,GATE=1,时,用软件使,TR1,置,1,的同时外部中断,INT1,的引脚输入高电平才能启动定时器,1,。,(3),TF0,(TCON.5),:,定时器,0,溢出标志位,。其功能同,TF1,。,(4),TR0,(TCON.4),:,定时器,0,启停控制位,。其功能同,TR1,。,(5),IE1,(TCON.3),:,外部中断,1,请求标志位,。,(6),IT1,(TCON.2),:,外部中断,1,触发方式选择位,。,(7),IE0,(TCON.1),:,外部中断,0,请求标志位,。,(8),IT0,(TCON.0),:,外部中断,0,触发方式选择位,。,13,3,定时器,/,计数器的四种 工作方式及应用,3.1,定时器,/,计数器的初始化,3.2,方式,0,及应用实例,3.3,方式,1,及应用实例,3.4,方式,2,及应用实例,3.5,方式,3,14,3.1,定时器,/,计数器的初始化,1.,定时器,/,计数器的初始化步骤,定时器,/,计数器是一种可编程部件,在使用定时器,/,计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下。,(1),确定定时器,/,计数器的,工作方式,,确定方式控制字,并写入,TMOD,。,(2),预置定时初值或计数,初值,,根据定时时间或计数次数,计算定时初值或计数初值,并写入,TH0,、,TL0,或,TH1,、,TL1,。,(3),根据需要,开放定时器,/,计数器的中断,,给,IE,中的相关位赋值。,(4),启动,定时器,/,计数器,给,TCON,中的,TR1,或,TR0,置,1,。,15,3.1,定时器,/,计数器的初始化,2.,定时初值或计数初值的计算方法,不同工作方式的定时初值或计数初值的计算方法如下表所示,表中,T,表示定时时间,,T,机,表示机器周期。,X,=2,8,-,计数值,X,=2,8,-,T,/,T,机,2,8,T,机,2,8,=256,8,方式,2,X,=2,16,-,计数值,X,=2,16,-,T,/,T,机,2,16,T,机,2,16,=65536,16,方式,1,X,=2,13,-,计数值,X,=2,13,-,T,/,T,机,2,13,T,机,2,13,=8192,13,方式,0,计数初值计算公式,定时初值计算公式,最大定时时间,最大计数值,计数位数,工作方式,16,定时器,/,计数器,0,方式,0,逻辑结构,C/T,C/T,在方式,0,下,以定时器,0,为例,定时器,/,计数器是一个由,TH0,中的,8,位和,TL0,中的低,5,位组成的,13,位加,1,计数器,(TL0,中的高,3,位不用,),;若,TL0,中的第,5,位有进位,直接进到,TH0,中的最低位。定时器,/,计数器,0,方式,0,逻辑结构如下图所示。,3.1,定时器,/,计数器的初始化,17,3.1,定时器,/,计数器的初始化,【,例,1】,用定时器,0,方式,0,,定时,5ms,,以中断方式工作,进行程序初始化设计,晶振频率为,6MHz,。,解:用定时器,0,方式,0,时,定时器,/,计数器方式寄存器,TMOD,低,4,位中的,M1M0,应取,00,;可设定为软件启动定时器,故,GATE,取,0,;因用定时功能,,C/T,取,0,;定时器方式寄存器,TMOD,高,4,位为无关位,一般都取,0,,所以,TMOD,应为,00H,。,晶振频率为,6MHz,,,T,机,=12/,f,osc,=12/(6,106)=2,s,定时初值,X,=2,13,-,T,/,T,机,=2,13,-5,1000/2=8192-2500=5692,=163CH=1011000111100B,因,TL0,的高,3,位未用,对计算出的定时初值,X,要进行修正,即在低,5,位前插入,3,个,0,,修正后的定时初值,X=10110001,000,11100B=B11CH,18,3.1,定时器,/,计数器的初始化,定时器以中断方式工作,故将中断总允许位,EA,和定时器,0,的中断允许位,ET0,置,1,。,参考程序:,;,启动,定时器,0,SETB TR0,D2 8C,;,开放定时器,0,的中断允许位,SETB ET0,D2 A9,;,开放中断总允许位,SETB EA,D2 AF,;,定时初值,的,低,8,位,MOV TL0,#1CH,75 8A 1C,;,定时初值,的,高,8,位,MOV TH0,#0B1H,75 8C B1,;,置,定时,器,0,为工作方式,0,MOV TMOD,#00H,75 89 00,19,3.2,方式,0,及应用实例,【,例,2】,在,P1.0,输出周期为,1 ms(,频率,1kHz),的方波,采用定时器,1,方式,0,设计程序,晶振频率为,12MHz,。,解:根据题意,只要使,P1.0,每隔,500,s,取反一次即可得到周期,1 ms,的方波,因而,T1,的,定时时间为,500,s,。,用定时器,1,方式,0,时,定时器,/,计数器方式寄存器,TMOD,高,4,位中的,M1M0,应取,00,;可设定为软件启动定时器,故,GATE,取,0,;因为用定时功能,,C/T,取,0,;定时器方式寄存器,TMOD,低,4,位为无关位,一般都取,0,,所以,TMOD,应为,00H,。,晶振频率为,12MHz,,,T,机,=12/,f,osc,=12/(12,106)=1,s,定时初值,X,=2,13,-,T,/,T,机,=2,13,-500/1=8192-500=7692,=1E0CH=1111000001100B,因,TL1,的高,3,位未用,对计算出的定时初值,X,要进行修正,即在低,5,位前插入,3,个,0,,修正后的定时初值,X=11110000,000,01100B=F00CH,20,END,;,重复循环,SJMP LP1,80 E4,006AH,;,输出取反,CPL P1.0,B2 90,0068H,MOV TL1,#0CH,75 8B 0C,0065H,;,重新置,500,s,定时初值,LP2:MOV TH1,#0F0H,75 8D F1,0062H,;,未到,500,s,继续计数,SJMP LP1,80 FB,0060H,;,查询计数溢出,LP1:JBC TF1,LP2,10 8F 02,005DH,;,启动定时器,1,SETB TR1,D2 8E,005BH,MOV TL1,#0CH,75 8B 0C,0058H,;,置,500,s,定时初值,MOV TH1,#0F0H,75 8D F1,0055H,;,置定时器,1,为工作方式,0,MOV TMOD,#00H,75 89 00,0052H,;,置,P1.0,初始状态,MAIN:SETB P1.0,D2 90,0050H,ORG 0050H,LJMP MAIN,02 00 50,0000H,ORG 0000H,注释,程序,机器码,地址,参考程序:,21,3.2,方式,0,及应用实例,【,例,3】,每隔,1,秒使,P1.1,输出取反一次同时使片内,RAM,区,20H,单元中的内容加,1,,采用定时器,0,方式,0,设计程序,晶振频率,6MHz,。,解:根据题意,定时时间为,1s,,因方式,0,最大计数值为,8192,,机器周期为,2,s,,则方式,0,的最大定时时间为,16.384ms,;因而需另设软件计数器,即在,硬件定时的基础上再加软件计数。,设硬件定时时间,10 ms,,软件计数的次数则为,100,次。,定时初值,X,=2,13,-,T,/,T,机,=2,13,-10,10,3,/2=8192-5000,=3192=0C78H=0110001111000B,因,TL0,的高,3,位未用,对计算出的定时初值,X,要进行修正,即在低,5,位前插入,3,个,0,,修正后的定时初值,X=01100011,000,11000B=6318H,定时器,以,中断方式,工作,。,22,主程序:,SJMP$,80 FE,0046H,SETB TR0,D2 8C,0044H,SETB ET0,D2 A9,0042H,SETB EA,D2 AF,0040H,MOV TL0,#18H,75 8A 18,003DH,;,置,10ms,定时初值,MOV TH0,#63H,75 8C 63,003AH,;,置定时器,0,为工作方式,0,MOV TMOD,#00H,75 89 00,0037H,;,软件计数,100,次,MOV R0,#64H,78 64,0035H,;20H,单元清,0,MOV 20H,#00H,75 20 00,0032H,;,置,P1.1,初始状态,MAIN:SETB P1.1,D2 90,0030H,ORG 0030H,;,指向中断服务程序,LJMP SER0,02,02,00,000BH,;,定时器,0,的中断入口地址,ORG 000BH,LJMP MAIN,02 00 50,0000H,ORG 0000H,参考程序:,23,中断服务程序:,END,EXIT:RETI,32,010CH,INC 20H,05 20,010AH,CPL P1.1,B2 91,0108H,;,未到,1s,继续计数,DJNZ R0,EXIT,D8 04,0106H,MOV TL0,#18H,75 8A 18,0103H,;,重新置,10ms,定时初值,SER0,:,MOV TH0,#63H,75 8C 63,0100H,ORG 0100H,参考程序:,24,3.3,方式,1,及应用实例,在方式,1,下,以定时器,0,为例,定时器,/,计数器是一个由,TH0,中的,8,位和,TL0,中的,8,位组成的,16,位加,1,计数器,。,方式,1,与方式,0,基本相似,,最大的区别是方式,1,的加,1,计数器位数是,16,位。,定时器,/,计数器,0,方式,1,逻辑结构,C/T,C/T,25,3.3,方式,1,及应用实例,【,例,4】,利用定时器,1,测量高电平脉冲的宽度,采用定时器,1,方式,1,设计程序,晶振频率,6MHz,。,解:根据题意,用定时器,1,方式,1,时,被测,高电平脉冲从外部中断,INT1(P3.3),引脚输入,,门控位,GATE,取,1,,即由软件和硬件共同启动定时器;被测脉冲为高电平时,启动定时器,1,,开始计数;被测脉冲变为低电平时,停止定时器,1,,停止计数,计数值分别存放到片内,RAM,区,40H,、,41H,、,42H,单元中;,计数值与机器周期的乘积就是所测脉冲的宽度,。,用定时器,1,方式,1,时,定时器,/,计数器方式寄存器,TMOD,高,4,位中的,M1M0,应取,01,,,GATE,取,1,;因为用定时功能,,C/T,取,0,;定时器方式寄存器,TMOD,低,4,位取,0,,所以,TMOD,应为,90H,。,定时初值为,00H,。,定时器以,查询,方式工作。,26,;,高电平到,启动定时器,1,JNB P3.3,$,30 B3 FD,0067H,;,准备启动定时器,1,SETB TR1,D2 8E,0065H,;,查询等待低电平,JB P3.3,$,20 B3 FD,0062H,MOV TL1,#00H,75 8B 00,005FH,;,定时初值清,0,MOV TH1,#00H,75 8D 00,005CH,;,置定时器,1,为工作方式,1,MOV TMOD,#90H,75 89 90,0059H,MOV 42H,#00H,75 42 00,0056H,MOV 41H,#00H,75 41 00,0053H,;,数据存储单元清,0,MAIN:MOV 40H,#00H,75 40 00,0050H,ORG 0050H,LJMP MAIN,02 00 50,0000H,ORG 0000H,参考程序:,27,END,;,显示子程序,DIS:(,略,),ORG 0100H,;,重复循环,SJMP MAIN,80 DD,0081H,;,调用,显示子程序,LCALL DIS,12 01 00,007EH,;,计数值低,8,位放入存储区,MOV 42H,TL1,85 8B 42,007BH,;,计数值高,8,位放入存储区,MOV 41H,TH1,85 8D 41,0078H,;,停止定时器,1,LP3:CLR TR1,C2 8E,0076H,SJMP LP1,80 F4,0074H,;,存储区最高位加,1,LP2:INC 40H,05 40,0072H,SJMP LP3,80 04,0070H,;,判断高电平有无结束,JB P3.3,LP1,20 B3 FA,006DH,LP1:JBC TF1,LP2,10 8F 05,006AH,参考程序:,;低电平到,测量结束,;,定时器有无溢出,28,3.4,方式,2,及应用实例,在方式,2,下,以定时器,0,为例,定时器,/,计数器是一个能,自动装入初值的,8,位加,1,计数器,,,TH0,中的,8,位用于存放定时,初值,或计数初值,,TL0,中的,8,位用于加,1,计数器。,方式,2,与方式,0,基本相似,,最大的区别除方式,2,的加,1,计数器位数是,8,位外,加,1,计数器溢出后,硬件使,TF0,自动置,1,,同时,自动将,TH0,中存放的定时初值或计数初值再装入,TL0,,继续计数。,定时器,/,计数器,0,方式,2,逻辑结构,C/T,C/T,29,3.4,方式,2,及应用实例,【,例,5】P1.1,输出脉冲宽度调制,(PWM),信号,即脉冲频率为,1kHz,、占空比为,25,的矩形波,以控制直流电动机按一定的速度转动,晶振频率为,6MHz,。,解:频率为,1kHz,,周期为,1ms,,占空比为,2:5,的,P1.1,输出矩形波的波形如下图所示。,对,P1.1,取反时,由于高、低电平的时间不同,可找出一个时间基准,如,100,s,、,200,s,。,本例设定,时间基准,200,s,,即定时时间为,200,s,。,定时初值,X,=2,8,-,T,/,T,机,=2,8,-200/2=256-100=156=9CH,高电平的软件计数为,2,,低电平的软件计数为,3,。,定时器以,中断方式,工作。,30,;,动态暂停,SJMP$,80 FE,0043H,SETB TR0,D2 8C,0041H,SETB ET0,D2 A9,003FH,SETB EA,D2 AF,003DH,MOV TL0,#9CH,75 8A 9C,003AH,;,置,200,s,定时初值,MOV TH0,#9CH,75 8C 9C,0037H,;,定时器,0,工作方式,2,MOV TMOD,#02H,75 89 02,0034H,;,给,R2,赋高电平计数值,MOV R2,#02H,7A 02,0032H,;,设置,P1.1,初始状态,MAIN,:,SETB P1.1,D2 91,0030H,ORG 0030H,LJMP INT0,02 00 50,000BH,;,定时器,0,的中断入口地址,ORG 000BH,LJMP MAIN,02 00 30,0000H,ORG 0000H,主程序:,31,END,EXIT,:,RETI,32,005DH,;,若,P1.1=0,给,R2,赋低电平计数值,L1,:,MOV R2,#03H,7A 04,005BH,SJMP EXIT,80 02,0059H,;,若,P1.1=1,给,R2,赋高电平计数值,MOV R2,#02H,7A 02,0057H,;,判断,P1.1,电平高低,JNB P1.1,L1,30 91 04,0054H,;,P1.1,取反,CPL P1.1,B2 91,0052H,INT0,:,DJNZ R2,EXIT,DA 0B,0050H,ORG 0050H,定时器,0,中断服务程序:,矩形波的波形图,32,3.4,方式,2,及应用实例,【,例,6】,定时器,0,外部输入端,(P3.4),作为计数脉冲输入端,利用手控单脉冲信号作为计数输入脉冲,编写控制程序,每输入十个脉冲,工作寄存器,R0,的内容加一,晶振频率为,6MHz,。,解:用定时器,0,方式,2,时,定时器,/,计数器方式寄存器,TMOD,低,4,位中的,M1M0,应取,10,;,可设定为软件启动定时器,故,GATE,取,0,;,因用计数功能,,C/T,取,1,;,定时器方式寄存器,TMOD,高,4,位为无关位,一般都取,0,,所以,TMOD,应为,06H,。,计数初值,X,=2,8,-,计数值,=2,8,-10=256-10=246=F6H,定时器,以中断方式工作,。,33,参考程序:,END,RETI,32,0201H,;,中断服务程序,SER0,:,INC R0,08,0200H,ORG 0200H,SJMP$,80 FE,0061H,SETB TR0,D2 8C,005FH,SETB ET0,D2 A9,005DH,SETB EA,D2 AF,005BH,MOV TL0,#0F6H,75 8A F6,0058H,;,置,10,次计数初值,MOV TH0,#0F6H,75 8C F6,0055H,;,置计数器,0,为工作方式,2,MOV TMOD,#06H,75 89 06,0052H,MAIN,:,MOV R0,#00H,78 00,0050H,ORG 0050H,;,转向中断服务程序,LJMP SER0,02,02,00,000BH,;,定时器,0,的中断入口地址,ORG 000BH,LJMP MAIN,02 00 50,0000H,ORG 0000H,34,3.5,方式,3,1.T0,方式,3,的结构特点,在方式,3,下,,定时器,0,分为两个独立的,8,位加,1,计数器,TH0,和,TL0,。其中,TL0,既可用于定时,也能用于计数,;,TH0,只能用于定时,。定时器,/,计数器,0,方式,3,逻辑结构如下图所示。,在方式,3,下,,加,1,计数器,TL0,占用了,T0,除,TH0,外的全部资源,原,T0,的控制位和信号引脚的控制功能与方式,0,、方式,1,相同;,加,1,计数器,TH0,只能用于简单的内部定时功能,它占用了原,T1,的控制位,TR1,和,TF1,,同时占用了,T1,中断源。,35,3.5,方式,3,定时器,/,计数器,0,方式,3,逻辑结构,C/T,C/T,36,3.5,方式,3,2.T0,方式,3,下,T1,的结构特点,T1,不能工作在方式,3,下,,因为在,T0,工作在方式,3,下时,,T1,的控制位,TR1,、,TF1,和中断源被,T0,占用。,T1,可工作在方式,0,、方式,1,、方式,2,下,,但其输出直接送入串行口。设置好,T1,的工作方式,,T1,就自动开始计数;若要,停止计数,,可将,T1,设为方式,3,。,T1,通常用作串行口波特率发生器,,以方式,2,工作会使程序简单一些。,37,定时,器,/,计数,器,0,方式,3,下,的,T1,逻辑,结构,C/T,C/T,C/T,C/T,C/T,C/T,38,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服