返回首页
当前位置: 主页 > 定时器/计数器 >

mcs51单片机计数器工作方式0 定时时间的计算与编程举例

时间:2009-03-20 18:42来源:未知 作者:牛牛 点击:
定 T0 或 T1 无论用作定时器或计数器都有 4 种工作方式:方式 0 、方式 1 、方式 2 和方式 3 。除方式 3 外, T0 和 T1 有完全相同的工作状态。下面以 T1 为例,分述各种工作方式的特点和用法。 工作方式 0 : 13 位方式由 TL1 的低 5 位和 TH1 的 8 位构成
T0T1无论用作定时器或计数器都有4种工作方式:方式0、方式1、方式2和方式3。除方式3外,T0T1有完全相同的工作状态。下面以T1为例,分述各种工作方式的特点和用法。

  内容来自单片机之家www.dpj100.com

工作方式0 13位方式由TL1的低5位和TH18位构成13位计数器(TL1的高3位无效)。工作方式0的结构见下图:

单片机

 

内容来自单片机之家www.dpj100.com

图中,CT为定时/计数选择:CT0T1为定时器,定时信号为振荡周期12分频后的脉冲;CTlT1为计数器,计数信号来自引脚T1的外部信号。
定时器T1能否启动工作,还受到了R1GATE和引脚信号INT1的控制。由图中的逻辑电路可知,当GATE0时,只要TR11就可打开控制门,使定时器工作;当GATE1时,只有TR11INT11,才可打开控制门。GATETR1CT的状态选择由定时器的控制寄存器TMODTCON中相应位状态确定,INT1则是外部引脚上的信号。 单片机
在一般的应用中,通常使GATE0,从而由TRl的状态控制Tl的开闭:TRl1,打开T1TRl0,关闭T1。在特殊的应用场合,例如利用定时器测量接于INT1引脚上的外部脉冲高电平的宽度时,可使GATE1TRl1。当外部脉冲出现上升沿,亦即INT101电平时,启动T1定时,测量开始;一旦外部脉冲出现下降沿,亦即INT1lO时就关闭了T1
定时器启动后,定时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开始不断增1TL1计满后,向THl进位。当TL1THl都计满之后,置位T1的定时器回零标志TFl,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。

单片机

方式013位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5

单片机

位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。

单片机

  内容来自单片机之家www.dpj100.com

在方式0下,当为计数工作方式时,计数值的范围是:  18192213 单片机

 

单片机

当为定时工作方式时,定时时间的计算公式为:

单片机

 

内容来自单片机之家www.dpj100.com

          213-计数初值)×晶振周期×12     213-计数初值)×机器周期 单片机

  单片机

其时间单位与晶振周期或机器周期相同(ms)。

内容来自单片机之家www.dpj100.com

  单片机

例题1:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为:

内容来自单片机之家www.dpj100.com

  单片机

          [213-(2131]×[1/6×106]×122×1062ms 内容来自单片机之家www.dpj100.com

 

单片机

最大定时时间为: 内容来自单片机之家www.dpj100.com

       2130×[1/6×106]×1216384×10616384ms

内容来自单片机之家www.dpj100.com

  单片机

或:最小定时单位×101316384ms 单片机

  内容来自单片机之家www.dpj100.com

例题2 设某单片机系统的外接晶振频率为6MHz,使用定时器1以方式0产生周期为500ms的等宽正方波连续脉冲,并由P1.0输出。

单片机

  单片机

以查询方式完成。 内容来自单片机之家www.dpj100.com

  单片机

计算计数初值

内容来自单片机之家www.dpj100.com

 

内容来自单片机之家www.dpj100.com

欲产生500ms的等宽正方波脉冲,只需在P1.0端以250ms为周期交替输出高低电平即可实现,为此定

单片机

  内容来自单片机之家www.dpj100.com

时时间应为250ms。使用6MHz晶振,根据上例的计算,可知一个机器周期为2ms。方式013位计数结 内容来自单片机之家www.dpj100.com

 

单片机

构。设待求的计数初值为X,则:

单片机

       213-X×2×10-6250×10-6

单片机

 

单片机

求解得:

单片机

      X213-(250÷2)=8067 单片机

  单片机

二进制数表示为1111110000011。十六进制表示,高8位为FCH,放入TH1,即TH1FCH;低5位为03H。放入TL1,即TL103H 单片机

  单片机

TMOD寄存器初始化

单片机

  内容来自单片机之家www.dpj100.com

为把定时器/计数器1设定为方式0,则M1M000;为实现定时功能,应使C/T0;为实现定时 内容来自单片机之家www.dpj100.com

  单片机

/计数器1的运行控制,则GATE0。定时器/计数器0不用,有关位设定为0。因此TMOD寄存 单片机

  单片机

器应初始化为00H 单片机

  内容来自单片机之家www.dpj100.com

由定时器控制寄存器TCON中的TR1位控制定时的启动和停止    TR11启动,TR10停止。 单片机

  单片机

程序设计: 单片机

MOV    TMOD,#00H      ;设置T1为工作方式0 单片机

  单片机

MOV    TH1,#OFCH      ;设置计数初值

单片机

  单片机

MOV    TL1,#03H 内容来自单片机之家www.dpj100.com

  单片机

MOV   IE,#00H         ;禁止中断 单片机

 

单片机

LOOP SETB    TR1              ;启动定时 单片机

 

内容来自单片机之家www.dpj100.com

JBC      TF1LOOP1         ;查询计数溢出

内容来自单片机之家www.dpj100.com

  单片机

AJMP   LOOP

单片机

 

单片机

LOOP1MOV      TH1,#FCH      ;重新设置计数初值

单片机

  单片机

MOV     TL1,#03H 单片机

  内容来自单片机之家www.dpj100.com

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

单片机

 

单片机

CPL        P1.0                                 ;输出取反

内容来自单片机之家www.dpj100.com

  内容来自单片机之家www.dpj100.com

AJMP     LOOP           ;重复循环

内容来自单片机之家www.dpj100.com

顶一下
(17)
89.5%
踩一下
(2)
10.5%
------分隔线----------------------------
推荐内容