定时计数器及其应用

上传人:suns****4568 文档编号:93220330 上传时间:2019-07-18 格式:PPT 页数:67 大小:295KB
返回 下载 相关 举报
定时计数器及其应用_第1页
第1页 / 共67页
定时计数器及其应用_第2页
第2页 / 共67页
定时计数器及其应用_第3页
第3页 / 共67页
定时计数器及其应用_第4页
第4页 / 共67页
定时计数器及其应用_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《定时计数器及其应用》由会员分享,可在线阅读,更多相关《定时计数器及其应用(67页珍藏版)》请在金锄头文库上搜索。

1、定时/计数器是单片机系统一个重要的部件,其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外,定时/计数器还可作为串行通信中波特率发生器。,80C51定时/计数器,在工业检测、控制中,很多场合都要用到计数或者定时功能。例如对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发声器等。MCS51单片机内部有两个可编程的定时器/计数器,以满足这方面的需要。它们具有 两种工作模数(计数器模式、 定时器模式)和四种工作方式( 方式0、方式1、方式2、方式3),其控制字均在相应的特殊功能寄存器(SFR)中,通过对它的SFR的编程,可以方便的选择

2、工作模数和工作方式。,定时器/计数器: Timer/Counter 本质上都是加法计数器,当对固定周期的脉冲信号计数时是定时器,对脉冲长度不确定的信号计数时是计数器。 每接收到一个计数脉冲,加法计数器的值就加一,当计满时发生溢出,并从0开始继续计数。 加法计数器的计满溢出信号就是定时/计数器的输出,该信号使TCON的某位(TF0或TF1位)置一,作为定时器/计数器的溢出中断标志。,1定时/计数器的结构,6.1 定时器的结构及工作原理,定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数,80C51单片机内部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加

3、1。 对外部事件脉冲(下降沿)计数,是计数器;对片内机周脉冲计数,是定时器。 计数器由二个8位计数器组成。 定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。 定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入。且外部脉冲的最高频率不能超过时钟频率的1/24。,2. 定时/计数器概述,定时器计数器的功能:定时和计数。 1计数功能 计数:对外部事件进行计数。 外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。 计数输入端:T0(P3.4)和T1(P3.5)。 外部

4、输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。,2定时功能 实现方法:通过计数器的计数实现。 与计数功能的不同之处:计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加1。 一个机器周期=12个振荡周期, 故,计数频率为振荡频率的1/12。 若:单片机晶振6MHz,则计数频率为0.5MHz, 2微秒计数器加1.,定时器工作方式的特点: 当定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。 因此, 定时器/计数器是一种可编程部件。 编程:在定时器/计数器开始工作之前,C

5、PU必须将一些命令(称为控制字)写入定时器/计数器,决定T0、T1的工作方式。,将控制字写入定时器/计数器的过程叫定时器/计数器的初始化。 初始化内容: 规定T0、T1的工作方式; 将工作方式控制字写入方式寄存器 规定T0、T1的工作状态; 将工作状态控制字写入控制寄存器 赋定时/计数初值。,TMOD用于设定定时/计数器的工作方式 低4位用于控制T0,高4位用于控制T1。,1. 工作方式控制寄存器TMOD, M1M0 工作方式选择位,6.2 定时器的控制, C/T 计数/定时方式选择位 C/T=1,计数工作方式,对外部事件脉冲计数,用作计数器。 C/T=0,定时工作方式,对片内机周脉冲计数,用

6、作定时器。 GATE 门控位 GATE=0,运行只受TCON中运行控制位TR0/TR1的控制。 GATE=1,运行同时受TR0/TR1和外中断输入信号的双重控制。 只有当INT0/INT1=1且TR0/TR1=1,T0/T1才能运行。 TMOD字节地址89H,不能位操作,设置TMOD须用字节操作指令。,设 定时器1为定时工作方式,要求由软件启动定时器1,按方式2工作。定时器0为计数方式,要求由软件启动定时器0,按方式1工作。 MOV TMOD,#25H。,TCON低4位与外中断 、 有关,已在中断中叙述。 高4位与定时/计数器T0、T1有关。 TF1:定时/计数器T1溢出标志。 TF0:定时/

7、计数器T0溢出标志。 TR1:定时/计数器T1运行控制位。TR1=1,T1运行;TR1=0,T1停。 TR0:定时/计数器T0运行控制位。TR0=1,T0运行;TR0=0,T0停。 TCON的字节地址为88H,每一位有位地址,均可位操作。,2. 控制寄存器TCON,6.3 定时器/计数器的四种工作方式 四种工作方式: 即方式0、方式1、方式2和方式3。 其中: 方式0、1和2下,T0和T1的工作方式相同, 方式3下,两个定时器的工作方式不同。 6.3.1 方式0 13位计数结构的工作方式。 图6-2是定时器/计数器0在工作方式0下的逻辑结构。 T1的结构和操作与T0完全相同。,计数脉冲输入,定

8、时器计数器共有四种工作方式,1. 方式013位方式,13位计数器,定时器,计数器,定时时间的计算公式为: T=(MT0初值)振荡周期 12(或TC=MT/T0 ) 其中:T定时器的定时时间,即设计任务要求的定时时间; M计数器的模值; T0定时器需要预置的初值。 若设初值T0=0,则定时器定时时间为最大。若设单片机系统主频为12MHz,则各种工作方式定时器的最大定时时间为: 工作方式0: Tmax=2131s=8.192ms 工作方式1: Tmax=2161s=65.536ms 工作方式2和3:Tmax=281s=0.256ms,当GATE0时, 若TR0=1,接通计数控制K,启动T0在原计数

9、值上加1计数,直至溢出。 若TR00,则关断控制开关,停止计数。 当GATE1,且TR01时, 或门、与门全部打开,外信号电平 通过引脚 直接开启或关断定时器计数。 输入1电平时,允许计数,否则停止计数。,由于定时器/计数器以加1方式计数, 当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值 X213N。 在方式0下,计数的长度范围为18192。,当工作于定时状态时,由于定时器/计数器是计数内部的机器周期,每个机器周期包括12个振荡周期,若晶振频率为6MHz,则: 机器周期Tp12/晶振频率12/(6106)2us 若需要的定时时间: Tc, 则需要的机器

10、周期数NTc/Tp。 则应装入定时器/计数器的初值 X213N。 若晶振频率为6MHz,则当X8191时,具有最小的定时时间为2us; 当X0时,具有最大的定时时间为16384us。,其中: N与工作方式有关: 方式0时,N=13; 方式1时,N=16; 方式2、3时,N=8。 机周时间与主振频率有关:机周时间=12/fosc fosc=12MHZ时,1机周=1S; fosc=6MHZ 时,1机周=2S。,80C51定时/计数初值计算公式:,解:工作方式0: 213500S/2S=8192-250=7942=1F06H 1F06H化成二进制: 1F06H=0001 1111 0000 0110

11、B =000 11111000 00110 B 其中:低5位00110前添加3位000送入TL0 TL0=000 00110B=06H; 高8位11111000B送入TH0 TH0=11111000B=F8H。,【例】 已知晶振6MHz,要求定时0.5ms,试分别求出T0工作于方式0、方式1、方式2、方式3时的定时初值。, 工作方式1: T0初值 =216-500s/2s=65536250=65286=FF06H TH0=FFH;TL0=06H。, 工作方式2: T0初值 =28-500s/2s=256-250=6 TH0=06H;TL0=06H。, 工作方式3: T0方式3时,被拆成两个8位

12、定时器,定时初值可分别计算,计算方法同方式2。两个定时初值一个装入TL0,另一个装入TH0。因此: TH0=06H;TL0=06H。,从上例中看到,方式0时计算定时初值比较麻烦,根据公式计算出数值后,还要变换一下,容易出错,不如直接用方式1,且方式0计数范围比方式1小,方式0完全可以用方式1代替,方式0与方式1相比,无任何优点。,6.3.2 方式1 计数器由TH 8位和TL8位构成。 当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X216N。 在方式0下,计数的长度范围为165536。 当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数NT

13、c/Tp(Tp机器周期),则应装入定时器/计数器的初值X216N。 若晶振频率为6MHz,则当X65535时,具有最小的定时时间为2us; 当N65536时,具有最大的定时时间为131072us131ms。,图6-3 T0(或T1)方式1结构16位计数器,例:设单片机晶振频率fosc6MHz,使用定时器1以方式1产生周期为500us的等宽正方波脉冲,并由P1.7输出。以中断方式完成。 (1)计算计数初值 设待求的计数初值为X,则: (216X)2us250us 得: X65411FFA1H, 则: TH1FFH,TL1A1H。 (2)TMOD寄存器初始化,M1M010, C/T 0, GATE

14、0 所以: TMOD10H,(3)程序清单: ORG 0000H AJMP MAIN ORG 001BH AJMP TIMER1 ORG 1000H MAIN: MOV TMOD,#10H ;设置T1工作方式1 MOV TH1, #0FFH ;设置计数初值 MOV TL1, #A1H ; SETB EA ;开中断,SETB ET1 ;定时器1允许中断 LOOP: SETB TR1 ;定时开始 HERE: SJMP $ ;等待中断 TIMER1:MOV TH1,#0FFH ;T1中断服务程序 ;重新设置计数初值 MOV TL1, #A1H ; CPL P1.7 RETI END ;程序结束,6.

15、3.3. 方式2 方式2具有自动重新加载功能,即自动加载计数初值。 在该工作方式下,把16位计数器分为两部分,即 以TL作计数器, 以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。 当计数溢出时,由预置寄存器TH以硬件方法自动给计数器TL重新加载,继续计数,循环重复。,当定时器/计数器用于计数工作方式时,假定要求的计数长度为N,则应装入定时器/计数器的初值X28N。 在方式0下,计数的长度范围为1256。 当工作于定时状态时,若需要的定时时间为Tc,则需要的机器周期数NTc/Tp,(Tp为机器周期),则应装入定时器/计数器的初值X28N。 若晶振频率为6MHz,则当X255时,具有

16、最小的定时时间为2us;当X0时,具有最大的定时时间为512us。,图6-4 T0(或T1)方式2结构8位计数器,例:有一自动罐装药粒系统,每瓶罐装药粒100片,每满一瓶,累加器A加1操作,若满200瓶,向P1.0输出0,然后停止计数。要求用定时器1以工作方式2计数。 (1)计算计数初值 设待求的计数初值为X,则: (28X)100 得: X15638H, 则: TH138H,TL138H。 (2)TMOD寄存器初始化,M1M010, 1, GATE0 因此:TMOD60H (3)程序清单: ORG 1000H MOV TMOD,#60H ;设置T1工作方式 MOV TH1, #38H ;设置计数

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

当前位置:首页 > 大杂烩/其它

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