51单片机系列——定时/计数器

此推文为学习笔记,如果错误麻烦大佬指出更正。


51定时/计数器简介

51单片机有2个16位定时器/计数器:定时器0(T0为P3.4)和定时器1(T1为P3.5)

 这里所说的16位是指定时/计数器内部分别有16位的计数寄存器。分别为低8位寄存器和高8位寄存器。

定时器模式

当工作在定时模式时,每经过一个机器周期内部的16位计数寄存器的值就会加1,当这个寄存器装满时溢出。

我们可以算出工作在定时模式时最高单次定时时间为
65535*1.085us=时间(单位us)

定时器作用:可以用于精确事件定时,PWM脉宽调制,波形发生,信号时序测量的方面。

计数器模式

当工作在计数器模式时,T0(P3.4引脚),T1(P3.5引脚)。每来一个脉冲,计数寄存器加1。


使用51定时/计数器步骤

1.启动定时/计数器(通过TCON控制器

2.设置定时/计数器工作模式(通过TMOD控制器

3.查询定时/计数器是否溢出(读TCON内TF位


51定时/计数器控制寄存器

每一位寄存器的详细功能请查阅芯片使用手册,这里是“stc8952”

TL是开始计时的最低位,TH是截止计时的最高位。通过调节这两个寄存器的值可以设置脉冲波大小和占空比等功能。一个方波完成后就清零。

Timer Control控制器(TCON)

“可位寻址”:        访问存储器、寄存器或输入/输出端口时,可指定其中一个位。

例如要指定P0输入/输出口中的bit 1,则指定为P0.1即可。

例子:可位寻址的IE中有八位EA - ET2 ES ET1 EX1 ET0 EX0可以直接用ET2=1来操作;

下面使用定时器1来讲解

Timer Flag

TF1(T1溢出标志位):当定时/计数器T1溢出时由硬件置“1”TF1,向CPU发出
中断请求,一直保持到CPU响应时,才由硬件清“0”(TF1也可以由程序查询清“0”)

Timer Run

TR1(定时器T1运行控制位):该位由软件置“1”或清零。TR1= 1就允许T1开始计
数,TR1=0时禁止T1计数。

TF0(T0溢出标志位)TR0(定时器T0运行控制位),配置方法与T1相同。
IE1、IT1、IE0、IT0与定时/计数器无关,是控制外部中断的。


Timer Mode

符号功能
TMOD.7GATE

控制T1,置“1”时只有在P3.3脚(INT1)为高及TR1置“1”时才可以启动T1,置“0”时TR1为“1”就允许T1启动。

TMOD.6C/T置“1”时T1做计数器,置“0”时T1做定时器。
TMOD.5M1

M1 = 0,M0 = 0时 工作模式0。

M1 = 0,M0 = 1,工作模式1,此时由TH1、TL1寄存器组成16位计数器,TH1为16位的高8位,TL1为16位的低8位,当这个16位计数器加满时,T1溢出。TF1被硬件置“1”。  
M1 = 1,M0 = 0 模式2,时8位自动重装定时器,当TL1溢
出时,将TH1的值自动装入到TL1中,TF1被硬件置“1”。
M1 = 1,M0 = 1 模式3,T1停止计数。

TMOD.4M0

 TMOD3~0位设置T0定时器的,和T1设置相同(除工作模式3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值