单片机成长之路(51基础篇) - 014 定时器/计数器

一.定时器的结构

  定时器功能由TO和T1,以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。定时器T0和T1各由2个8位特殊功能寄存器TH0,TL0与TH1,TL1构成。工作方式寄存器TMOD用于设置定时器的工作模式和工作方式。控制寄存器TCON用于启动和停止定时器的计数,并控制定时器的状态。定时器的工作方式、启动、停止、溢出标志、计数器等都是可编程的,通过设置寄存器TMOD,TCON,TH0,TL0,TH1和TL1实现。TH0和TL0存放定时器T0的初值或计数结果。TH0存放高8位,TL0存放低8位;TH1和TL1存放定时器T1的初值或计数结果。TH1存放高8位,TL1存放低8位。

二. MCS-51单片机控制字详解–TMOD T2MOD

  1.工作方式寄存器TMOD

  TMOD(89H)格式如图:

位序
B7
B6
B5
B4
B3
B2
B1
B0
位符号
GATE
C/T
M1
M0
GATE
C/T
M1
M0

    (1)GATE为门控位。

      GATE=0时,定时器的启动不受到外部中断请求信号的影响。一般情况下GATE=0。

      GATE=1时,T0的启动受INT0端口(P3.2引脚)信号控制,T1的启动受T1端口(P3.3引脚)信号控制,只有当外部中断信号NT0和NT1为高电平的时,才能启动定时器。

    (2)M1,MO为工作方式选择位。
    (3)C/T为计数器模式和定时器模式选择位。

      C/T=0时(内部时钟计数器),定时器模式。
      C/T=1时(外部电平计数器),计数器模式。

  2.特殊功能寄存器TCON

  TCON格式

位地址

8F

8E

8D

8C

8B

8A

89

88

位符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

低4位中断有关,高4位的功能如下:
(1)TF1,TF0为计数溢出标志位。
  定时器T0或T1计数溢出时,由硬件自动将此位置1。
  TFx可以由程序查询,也是定时中断的请求源。
(2)TR1,TR0为计数运行控制位。
  TRx=1时,启动定时器/计数器工作。
  TRx=0时,停止定时器/计数器工作。
定时器工作方式
  MCS-51的定时器T0有4种工作方式,即方式0、方式1、方式2、方式3。
  MCS-51的定时器T1有3种工作方式,即方式0、方式1、方式2。
1.方式0
  在这种方式下,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位组成。TL1的高3位不定。
方式0定时时间为

213-初值)×振荡周期×12

例如,若晶振频率为12MHz,则最长的定时时间为(28-0)×(1/12)×12us=8.191msA
2.方式1
  在这种方式下,16位寄存器TH1和TL1为16位的计数器,除位数外,其他与方式0相同。
方式1定时时间为

216-初值)×振荡周期×12

例如,若晶振频率为12MHz,则最长的定时时间为
(26-0)×(1/12)×12uS=65.536ms
3.方式2
  THx作为常数缓冲器,当TLx计数溢出时,在置1溢出标志TFx的同时,还自动的将THx中的初值送至TLx,使TLX从初值开始重新计数。
方式2定时时间为

28-初值)×振荡周期×12

例如,若晶振频率为12MHz,则最长的定时时间为
(22-0)×(1/12)×121S=0.256ms
4.方式3
  T0在方式3时被拆成2个独立的8位计数器,即TH0和TL0。
  当T0处于方式3时,T1仍可设置为方式0、方式1和方式2。由于TR1,TF1和T1的中断源都已被定时器TO占用,所以定时器T1仅有控制位C/T来决定其工作在定时方式或计数方式。当计数器计满溢出时,不能置位TF1,而只能将输出送往串口。所以,此时定时器T1一般用作串口的波特率发生器,或不需要中断的场合。
定时器编程步骤
MCS-51单片机的定时器/计数器是可编程的,具体步骤如下。
  (1)对TMOD赋值,以确定定时器的工作模式。

    计算初值的方法如下。
    设计数器的最大值为M,则置入的初值X为:计数方式X=M一计数值
    定时方式由(M-X)T=定时值,得X=M-定时值/T
    T为计数周期,是单片机的机器周期。
    方式1时,M=216=65536。方式2和3时,M=20=256。
    例如:机器时钟频率为12MHz,机器周期为1us时。
    若工作在方式0,则最大定时值为23×1us=8.192ms。
    若工作在方式1,则最大定时值为216×1us=65.536ms。
  (2)置定时/计数器初值,直接将初值写入寄存器的THO,TLO或TH1,TL1。
  (3)对TCON寄存器中的TRO或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。
  (4)查询溢出标志TFx的状态,决定是否停止定时/计数器。

 

posted @ 2018-08-23 05:42  极客先锋  阅读(2081)  评论(0编辑  收藏  举报