第5章 定时器/计数器

发布时间:2024-08-09  

定时/计数器的功能

MCS-51单片机内共有两个可编程的定时/计数器T0和T1。它们都是十六位加法计数器结构,分别由TH0、TL0和TH1、TL1四个8位计数器组成,每个定时/计数器都具有定时和计数两种功能。


计数功能

对外来脉冲进行计数。计数脉冲的输入端来自单片机的两个信号引脚T0(P3.4)和T1(P3.5)外部输入的脉冲在负跳变时有效,计数脉冲的频率最高为振荡频率的1/24。


定时功能

定时功能也是通过计数器的计数来实现的,不过这时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。因此,计数频率为振荡频率的1/12。这样,不但可以根据计数器的预置值计算出定时时间,也可以反过来按定时时间的要求,计算出计数器的预置值。


与定时/计数器有关的寄存器

定时器控制寄存器(TCON)

该寄存器既参与中断控制又参与定时控制。其主要功能是:定时器在溢出时,设定标志位(TFx),并控制定时器的运行或停止等(TRx)。


8F   8E   8D   8C   8B   8A   89   88

TF1  TR1  TF0  TR0  IE1  IT1  IE0  IT0

定时器方式寄存器(TMOD)

用于控制两个定时/计数器的工作方式,高4位定义T1,低4位定义T0,字节地址为89H。


格式:


GATE C/T  M1   M0   GATE C/T  M1   M0

  T1                   T0

GATE:门控位

GATE=0,以运行控制位TRx启动定时器

GATE=1,以外中断请求信号(INT1或INT0)启动定时器。

C/T:定时或计数方式选择位:

C/T=0,定时工作方式

C/T=1,计数工作方式。

M1M0:工作方式选择位:

M1M0=00,方式0:13位计数(TL0-4、TH0-7)

M1M0=01,方式1:16位计数

M1M0=10,方式2:8位计数,有自动装入功能。

M1M0=11,方式3:T0分为两个8位计数器,TL0允许作为定时或计数方式,TH0只能作为定时方式

定时/计数器工作方式

方式0


方式0是13位结构的工作方式,其计数器由TH1的全8位和TL1的低5位构成。TL1的高3位弃之不用。

计数方式:计数值的范围为:1~8192(2^13)

定时方式:定时时间T的计算公式为:

T=(2^13-计数初值x)晶振周期/12

或 T=(2^13-计数初值x)机器周期

启动的条件是:(TRx=1) AND (GATE=0 OR INTx=1)

方式0应用举例:

设单片机晶振频率fosc=6MHz,使用定时器1以方式0产生周期为500us的方波,并由P1.0输出。以查询或中断方式完成。


解:


计算定时初值x

欲产生500us的方波,只需在P1.0端以250us为周期交替输出高低电平即可实现。为此,定时时间应为250us。晶振为6MHz,则1个机器周期为2us。

则: (2^13-x)*2uS=250uS, x=8067=1111110000011B

即: TH1=0FCH,TL1=03H。

TMOD寄存器初始化

定时器1,M1M0=00H(方式0),C/T=0(定时),GATE=0(以软件启动定时器),不用的位设定为0,最后得TMOD应初始化00H。

用TCON寄存器的TR1位来启动(=1)或停止(=0)定时器。

查询方式程序:


MOV TMOD,#00H  ;T1工作在方式0

SETB TR1       ;启动T1工作

LOOP: MOV TL1,#03H

      MOV TH1,#0FCH    ;置定时初值

WAIT: JNB TF1,WAIT     ;定时未到,循环等待

      CLR TF1          ;定时到,清TF1

      CPL P1.0         ;由P1.0输出,信号取反

      SJMP LOOP        ;循环输出方波

中断方式程序:


ORG  8000H

MOV  TMOD,#00H ;T1工作在方式0 

MOV  TL1,#03H

MOV  TH1,#0FCH    ;置定时初值

SETB EA           ;开中断

SETB ET1          ;允许T1中断

LOOP: SETB TR1    ;启动T1工作

WAIT: SJMP WAIT   ;等待中断

      AJMP LOOP

ORG  001BH        ;T1中断入口

LJMP SUB          ;跳至中断服务程序SUB

ORG  8100H        ;中断服务程序

SUB: CPL P1.0     ;输出信号取反

     MOV TL1,#03H

     MOV TH1,#0FCH ;重置定时初值

     RETI          ;中断返回

方式1

逻辑电路和工作情况与方式0完全相同。所不同的只是组成计数器的位数为16位。


7    0    7    0

TL1       TH1      TF1

计数值的范围为: 1~65536(2^16)

定时时间的计算公式与方式0类似。即:

T=(2^16-计数初值x)晶振周期/12

或 T=(2^16-计数初值x)机器周期

方式2


方式2具有自动重新加载功能,即自动加载计数初值。该方式把16位计数器分为两部分,既以TL1作计数器,以TH1作预置计数器,初始化时把计数初值分别装入TL1和TH1中。

当计数溢出后,由预置寄存器TH1,以硬件方法自动给计数器TL1重新加载。

最大计数值只能到255。这种工作方式非常适用于循环定时或循环计数应用。

方式2应用举例:

设单片机晶振频率fosc=6MHz,使用T0以方式2产生周期为200us的方波,并由P1.0输出。以查询或中断方式完成。


解:


计算计数初值x

晶振为6MHz,则1个机器周期为2us。则:

(2^8-x)*2=100,x=206=CEH

即 TH0=0CEH,TL0=0CEH。

TMOD寄存器初始化

定时器0,M1M0=10H(方式2),C/T=0(定时), GATE=0(以软件启动定时器),不用的位设定为0,最后得TMOD应初始化为02H。

用TCON寄存器的TR0位来启动(=1)或停止(=0)定时器。

查询方式程序:


MOV TMOD,#02H ;T0工作在方式2

MOV TL0,#0CEH 

MOV TH0,#0CEH ;置定时初值

SETB TR0      ;启动T0工作

WAIT: JNB TF0,WAIT  ;定时未到, 循环等待

      CLR TF0       ;定时到,清TF0

      CPL P1.0      ;由P1.0输出,信号取反

      SJMP WAIT     ;循环输出方波

中断方式程序:


MOV TMOD,#02H ;T0工作在方式2

MOV TL0,#0CEH

MOV TH0,#0CEH   ;置计数初值

SETB EA         ; 开中断

SETB ET0        ; 允许T0中断

LOOP: SETB TR0  ;启动T0工作

WAIT: SJMP $    ;等待中断

      CLR TF0   ;计数溢出标志位TF0清0

      AJMP LOOP

ORG  000BH      ;中断服务程序

     CPL P1.0   ;由P1.0输出,信号取反

     RETI       ;中断返回

方式3


在工作方式3下,T0被拆成两个独立的8位计数器。其中TL0既可以作计数器使用,又可以作定时器使用,其功能和操作方式与方式0或方式1完全相同。而TH0只能作8位定时器使用,并占用了T1的中断资源TR1和TF1。


如果T0已工作在方式3下,则T1只能工作在方式0-2下,用于任何不需要中断控制的场合,或用作串行口的波特率发生器。通常只有当T1用作串行口的波特率发生器时,T0才被定义为方式3,以增加一个8位计数器。这时,只要设置好工作方式,T1便可自动运行。如要停止工作,只需送入一个把它设为方式3的控制字即可这时T1直接把溢出标志TF1送给串行口。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    收数据时序为:当检测到数据的下降沿时,表明线路上有数据进行传输,这是计数器CNT开始计数,当计数器为24=16+8时,采样的值为第0位数据;当计数器的值为40时,采样的值为第一位数据,依次类推,进行后面6个数......
    -最小亮度,30-最大亮度。默认值为0-自动模式。 P3- 第一个预声音信号的时间,以分钟为单位。0-禁用(将没有任何初步信号)。1-9次(以分钟为单位)。例如,您是否要在计数结束前2分钟响起第一......
    样吗?”小明问小红。 小红拿过来看了看,说:“最后一行写错了,输出结果应该是1。你想啊,1+1+1应该等于11,左边这一位是输出进位,右边这一位是输出结果,都是1,所以......
    态 3、扭环形计数器 1、电路 3、状态图 同样是8个状态都能自循环,为什么右边......
    什么是进位计数制 PLC常用数制及转换方法介绍;一、什么是进位计数制 数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原 则进行计数的方法,称为进位计数制。比如,在十进位计数......
    学习和实现PLC定时器教程. 问题13:RTO的功能是什么? 答:RTO是一个固定的计时器。RTO的主要功能是保存或存储集合(累积)时间。 问题14:计数器是什么? 答:计数器是用于顺序计数......
    根口线还具有第二种功能 ,P3口的各位如不设定为第二功能则自动处于第一功能。P3的第二功能涉及到串行口 、外部中断、定时器,与特殊功能寄存器有关。 四、89C51单片机有几个中断源?它们的中断标志位分别是什么......
    看门狗是12位递减的。窗口看门狗是7位递减的; 5)独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR。 独立看门狗没有中断功能,只要在计数器减到0(下限)之前......
      下面我给你们详细介绍下:   独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位,独立看门够有硬件和软件之分,硬件是通过烧写器的“设定选项几节等”配置,一旦......
    计的性能指标 a,有效位数 就是测量的范围,从测量结果的从左边起第一个非0的所有位数,也就是多少多少频率,比如说显示频率为32.138473MHz, 它的有效位数就是8个。 b,测量时间 测量......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>