关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

定时/计数器的原理与使用

2020.10.26

  一、基本概念

  1、 89C51有两个计数器T0和T1,89C52还有一个T2。每个计数器都是由两个8位的RAM 单元组成的,即每个计数器都是16 位的计数器,最大的计数容量是216=65536,记住是从0-65535。

  2、 提供给定时器的计数源又是从哪里来的呢?就是由单片机的晶振经过12 分频后获得的一个脉冲源。一个12M 的晶振,它提供给计数器的脉冲时间间隔是就是1us。

  3、 预置数计数法。如果每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒。但是如果只需要10毫秒就可以了,怎么办?只要在计数器里预先放进55536,这样只需要计数65536-55536=10000次,也就是10毫秒了。

  二、控制字

  1、特殊功能寄存器TMOD(89H)

  用于T1:GATE、C/T、M1、M0

  用于T0:GATE、C/T、M1、M0

  GATE:0用于内部脉冲;1用于外部脉冲。

  C/T:0用于定时器;1用于计数器。

  M1、M0:工作方式

定时器工作方式

工作方式

范围特性

工作方式0

 

13位,8192次

 

为了和51 的前辈48系列兼容

 

工作方式1

 

16位,65536

 

16位,其他特性与工作方式0相同,比较常用

 

工作方式2

 

8位,256次

 

自动再装入预置数,预置数放在T0(或T1)的高8位中,只有低8 位参与计数,通常用于波特率发生器

 

 

工作方式3

                   

 

8位,256次

                             

TH0只能作为定时器用,TL0可作定时器或计数器。溢出标记:TL0 还是用原来的T0的标记,而TH0则借用T1的标记,因此只有在T1 以工作方式2 运行时,才让T0 工作于方式3。

  2、特殊功能寄存器TCON(88H)

  用于定时/计数器:TF1、TR1、TF0、TR0

  用于中断:IE1、IT1、IE0、IT0

  TR0/TR1:定时器的开关。

  TF0/TF1:计数溢出后由0变为1。

  3、T2定时器。89C52支持T2定时/计数器。

T2操作模式
RCLK+TCLKCP/RL2MODE
0016-bit Auto-reload,TL2增量溢出
0116-bit Capture
1XBaud Rate Generator

 


推荐
热点排行
一周推荐
关闭