单片机的定时计数器课件

上传人:我*** 文档编号:145101628 上传时间:2020-09-16 格式:PPT 页数:48 大小:943KB
返回 下载 相关 举报
单片机的定时计数器课件_第1页
第1页 / 共48页
单片机的定时计数器课件_第2页
第2页 / 共48页
单片机的定时计数器课件_第3页
第3页 / 共48页
单片机的定时计数器课件_第4页
第4页 / 共48页
单片机的定时计数器课件_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《单片机的定时计数器课件》由会员分享,可在线阅读,更多相关《单片机的定时计数器课件(48页珍藏版)》请在金锄头文库上搜索。

1、8051单片机的定时/计数器,8051单片机有2个16位的可编程定时/计数器:定时器0(T0)和定时器1(T1)。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。可用于定时控制、延时、对外部事件计数和检测等场合。 在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(定时器控制与中断方式控制寄存器TCON和方式控制寄存器TMOD)。,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。 这些寄存器是用于存放定时或计数初值的。,T

2、MOD主要是用于选定定时器的工作方式; TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。 当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。,一 定时/计数器的功能,在特殊功能寄存器TMOD中,有一个控制位(CT),分别用于控制定时/计数器工作在定时器方式还是计数器方式。,1. 定时功能-计数输入信号是内部时钟脉冲,每个机器周期计数器的值加1。,2. 计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。,定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1) 。,定时/计数器的工

3、作原理,加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。,设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy

4、就是定时时间t 。,设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 s。,二、定时器计数器的特殊功能寄存器,与定时器计数器有关的特殊功能寄存器有:,1定时器控制与中断触发方式控制寄存器TCON,中断请求标志,触发方式选择,启动定时

5、/计数器,0 低电平1 下降沿,0 停止 1 启动,二、定时器计数器的特殊功能寄存器,2工作方式控制寄存器TMOD,T1控制,T0控制,GATE门控位,M1 M0工作方式选择,二、定时器计数器的特殊功能寄存器,2工作方式控制寄存器TMOD,GATE门控位,若GATE1,则T(T0或T1)计数器受引脚(或)和TR(TR0或TR1)共同控制。当和TR都是1时,T计数,否则T停止计数。,若GATE0,则T0和T1不受INT0(或INTl)引脚控制而只受TR控制,此时,TR为1,T计数,TR为0,停止计数。,可用于测量在INTx端出现的正脉冲的宽度。,二、定时器计数器的特殊功能寄存器,2工作方式控制寄

6、存器TMOD,M1、M0工作模式选择位。,二、定时器计数器的特殊功能寄存器,2工作方式控制寄存器TMOD,定时器,计数器,13位,方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位,并向CPU申请中断。,1. 方式013位方式,计数脉冲输入,1. 方式013位方式,13位,定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。 当GATE0时,只要TR01就可打开控制门,使定时器工作; 当GATE1时,只有TR01且INT01,才可打开控制门。,GAT

7、E,TR0,CT的状态选择由定时器的控制寄存器TMOD,TCON中相应位状态确定,INT0则是外部引脚上的信号,1. 方式013位方式,定时器启动后,定时或计数脉冲加到TL0的低5位,从预先设置的初值(时间常数)开始不断增1。TL0计满后,向TH0进位。当TL0和TH0都计满之后,置位T0的定时器回零标志TF0,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。,1. 方式013位方式,13位,在一般的应用中,通常使GATE0,从而由TR0的状态控制T0的开闭:TR01,打开T0;TR00,关闭T0。,1. 方式013

8、位方式,在特殊的应用场合,例如利用定时器测量接于INT0引脚上的外部脉冲高电平的宽度时,可使GATE1,TR01。当外部脉冲出现上升沿,亦即INT0由0变1电平时,启动T0定时,测量开始;一旦外部脉冲出现下降沿,亦即INT0由l变0时就关闭了T0。,1. 方式013位方式,13位,在方式0下,当为计数工作方式时,计数值的范围是: 18192(213) 当为定时工作方式时,定时时间的计算公式为: (213计数初值)晶振周期12 或 (213计数初值)机器周期,1. 方式013位方式,例:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为: 213(2131)1/(6106)12210

9、62(s) 最大定时时间为: (2130)1/(6106)121638410616384(s) 或:最小定时单位21316384(s),8,16位,与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。 当为计数工作方式时,计数值的范围是:165536(216) 当为定时工作方式时,定时时间计算公式为: (216计数初值)晶振周期12 或 (216计数初值)机器周期。,2. 方式116位方式,计数器由TH0全部8位和TL0全部8位构成。,3. 方式28位自动装入时间常数方式,定时器T0能否启动工作,还受到了TR0、GATE和引

10、脚信号INT0的控制。 当GATE0时,只要TR01就可打开控制门,使定时器工作; 当GATE1时,只有TR01且INT01,才可打开控制门。,3. 方式28位自动装入时间常数方式,T0的结构: TL0:8位的定时器/计数器; TH0:8位预置寄存器,用于保存初值。 工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。,工作方式2是一种自动装入时间常数的8位计数器方式。,3. 方式28位自动装入时间常数方式,由于这种方式省去了用户程序中的重装指令 ,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的

11、定时计数范围要小于方式0和方式1,最大只能到255 。,这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。,4. 方式3双8位方式,工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。,4. 方式3双8位方式,TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。 TH0只能作8位定时器。使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1),当T0为工作方式3时,TH0和TL0分成2个独立的8位计数器。,4. 方式3双8位

12、方式,这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。,通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。,1计数器初值的计算 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: X=M-要求的计数值,四、定时/计数器常数的计算,2定时器初值的计算 在定时器模式下,计数器由单片机主脉冲fosc经12

13、分频后计数。因此,定时器定时初值计算公式: X=M-(要求的定时值)/(12/fosc) 式中,M为定时器模值(根据不同工作方式,M可以是213、216或28),应用举例,可编程器件在使用前需要进行初始化:,确定TMOD控制字:编程时将控制字送TMOD;,计算计数器的计数初值: 编程时将计数初值送THi、TLi;, 开中断(如果使用中断方式): 编程实置位EA、ETi, TRi位置位控制定时器的启动和停止。,例:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。试以中断方式实现。, TMOD确定,T1控制,T0控制,控制字10H,要产生500s

14、的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s。使用6z晶振,则一个机器周期为2s,设待求定时器初值为,则:, 计算定时器的初值;,需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。,(216X)210 -6 =25010 -6 即216X=125 X216-125=10000H-7DH 0FF83H 所以,初值为: TH1=0FFH,TL1=83H, 采用中断方式:编程时打开全局和局部中断。, 由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。 TR11,启动; TR10,停止。,C语言程序: #incl

15、ude /包含特殊功能寄存器库 sbitP1_0=P10; /进行位定义 void main( ) TMOD=0 x10; /T1做定时器,模式1 TL1=0 x83; TH0=0 xFF;/设置定时器的初值 ET1=1; /允许T1中断 EA=1; /允许CPU中断 TR1=1; /启动定时器 while(1); /等待中断 ,void time0_int(void) interrupt 3 /中断服务程序 TL1=0 x83; TH0=0 xFF; /定时器重赋初值 P1_0=P1_0; /P1.0取反,输出方波 ,例:假设单片机的振荡频率fosc=6MHz,现要求产生1ms的定时,试分别

16、计算定时器T1在方式0、方式1和方式2时的初值。,方式0:最大计数值为M=213,因此定时器的初值应为 X = 213-(110-3)/(12/(610-6) = 7692D = 1111000001100B 其中高8位为TH1的初值,即F0H, 低5位为TL1的初值这里,TL1的初值应为00001100B即0CH,而不是60H,因为在方式时,TL1的高3位是不用的,应都设为0。,方式1:最大计数值为M=216,因此定时器的初值应为 X = 216-(110-3)/(210-6) = 65036D = 1111111000001100B = FE0CH 此时高8位TH1的初值为FEH,低8位TL1的初值为0CH。,方式2:最大计数值为M=28,因此定时器的初值应为 X = 28-(110-3)/(210-6) = 256-500= -254 计算得到的初值为负值,说明当fosc=6MHz时,不能采用方式2(即常数自动装入)

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号