51单片机定时计数器

时间:2022-09-03 23:31:53

作       者:武力戡乱

修改日期:2017-3-12

备        注:

1、总备注信息

2、联系方式

3、更多51文章请参见:单片机——51——目录

内        容:

一、作用

定时器/计数器以定时器的作用最为突出。一般来说涉及到定时器,都可以算作定时器算法。简单的如秒表等。复杂的如果系统内核的定时算法等。在学习单片机的路上,必学会定时器。

二、工作原理

定时器/计数器的原理其实没那么难。

定时器也就是一个计数器。而每计一个数的时间是一定的,于是就等价了定时器。51的定时器是从你设置的初值开始计数,直到他所能达到的最高数值为止。即:

定时时间 =(最大值初值)X每计一个数的时间

最大值因不同模式而定,初值需要你设计。

当达到定时器最大值的时候,就会触发定时器标志置位。当开启全局中断和定时器中断的时候,定时器标记置位会触发定时器中断函数,执行玩中断后,标记会自动复位。备注:如果没有触发中断函数,标记不会自动复位。

三、定时器术语理解

1、溢出:当定时器达到定时或者计数标准的时候,定时器就处在溢出停止状态。

2、溢出标记:当定时器溢出的时候,定时器标志就会置位。

3、初值:设计者自行设计的定时器计数的起步值。定时器是从这个值开始定时或者计数到最大值。

4、初值的计算:定时器有装载定时计数的寄存器,只要对这个寄存器进行操作即可。

四、工作模式寄存器TMOD,地址89H(不可按位寻址)

TMOD 定时器控制寄存器

B7

B6

B5

B4

B3

B2

B1

B0

GATE

C/T

M1

M0

GATE

C/T

M1

M0

1:工作模式寄存器TMOD

GATE:定时操作开关控制位。当GATE=1时,INT0INT1引脚为高电平,同时TCON中的TR0TR1控制位为1时,计时/计数器01才开始工作。若GATE=0,则只要将TR0TR1控制位设为1,计时/计数器01就开始工作。

C/T:定时器/计数器功能的选择位。C/T=1为计数器,通过外部引脚T0T1输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。

M1M0为定时器工作模式选择位。

定时器的工作模式如图2所示:

M1 、M0:T0、T1工作模式选择位

M1

M0

工作模式

0

0

方式0,13位计数/计时器

0

1

方式,1,16位计数/计时器

1

0

方式2,8位自动加载计数/计时器

1

1

方式3,仅适用于T0,定时器0分为两个独立的8位定时器/计数器TH0及TL0,T1在方式3时停止工作

2:定时器01的模式

五、控制寄存器TCON,地址位88H(可按位寻址)

 

TCON 定时器控制寄存器

B7

B6

B5

B4

B3

B2

B1

B0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

3:控制寄存器TCON

TF1:定时器T1溢出标志,可由程序查询和清零,TF1也是中断请求源,当CPU响应T1中断时由硬件清零。

TF0:定时器T0溢出标志,可由程序查询和清零,TF0也是中断请求源,当CPU响应T0中断时由硬件清零。

TR1T1充许计数控制位,为1时充许T1计数。

TR0T0充许计数控制位,为1时充许T0计数。

备注:其他位供其他功能使用

六、控制寄存器T2CON

T2定时器控制寄存器T2CON

B7

B6

B5

B4

B3

B2

B1

B0

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

4:控制寄存器T2CON

TF2T2溢出中断标志。TF2必须由用户程序清“0”。当T2作为串口波特率发生器时,TF2不会被置“1”。

EXF2:定时器T2外部中断标志。EXEN21时,当T2EXP1.1)发生负跳变时置1中断标志DXF2EXF2必须由用户程序清“0”。

TCLK:串行接口的发送时钟选择标志。TCLK=1时,T2工作于波特率发生器方式。

RCLK:串行接口的接收时钟选择标志位。RCLK1时,T2工作于波特率发生器方式。

EXEN2T2的外部中断充许标志。

C/T2:外部计数器/定时器选择位。C/T2=1时,T2为外部事件计数器,计数脉冲来自T2P1.0);C/T2=0时,T2为定时器,振荡脉冲的十二分频信号作为计数信号。

TR2T2计数/定时控制位。TR11时充许计数,为0时禁止计数。

CP/RL2:捕捉和常数自动再装入方式选择位。为1时工作于捕捉方式,为0T2工作于常数自动再装入方式。当TCLKRCLK1时,CP/RL2被忽略,T2总是工作于常数自动再装入方式。

定时器2工作模式如图5所示:

定时器T2方式选择

RCLK+TCLK

CP/RL2

TR2

工作方式

0

0

1

16位常数自动再装入方式

0

1

1

16位捕捉方式

1

×

1

串行口波特率发生器方式

×

×

0

停止计数

5:定时器2工作模式

七、定时器应用技巧

1、定时器定时长度扩展。可以人为的加入变量,每当定时器溢出,变量进行自加。这样就可以无限的扩展定时时间长度。

2、定时器误差问题。因为在执行定时器中断的时候,执行里面指令肯定要耗时。所以减少误差的就两种办法:简化中断服务程序;将定时器中断的程序外迁。