关于定时器的常考题目为已知晶振 ∫
、定时时间
,求定时器初值
。
重要公式
-
T = 12 / ∫
-
(2 - X) * T = T
- 其中
n
为定时器位数,定时器不同的工作方式对应不同的n
,见下文; X
为定时器初值;
- 其中
工作方式寄存器TMOD
-
[注]:TMOD
高4位
与T1
相关,低4位
与T0
相关。 -
GATE
- 0:定时器/计数器的运行由
TRX
决定; - 1: 定时器/计数器的运行由
TRX
和外中断
引脚共同决定;
- 0:定时器/计数器的运行由
-
C/T
- 0:定时器模式;
- 1:计数器模式;
-
M1/M0
常考题型
例题1
- 单片机采用
6MHZ
的晶振,定时1ms
,用定时器方式0/1的初值(即求TH0
,TL0
)分别是多少?
题解
我们将分别采用方式0与方式1进行演示。
方式0
- 由∫ = 6MHZ得 T = 12 / ∫ =
2微秒
; - 设方式0地初值为
X
,则由- (2 - X) * T = T 带入数值得:
- (2 - X)* 2 = 1000微秒
- 解得 X = 7029,将之转化为16进制为
1E0CH = 1 1110 0000 1100
- X
前8位
为TH0
,后5位
为TL0
(由于方式0只有13位,所以TL0高位补0);- TH0 = 1111 0000 = 0F0H
- TL0 = 0000 1100 = 0CH
如何将10进制转化为16进制
方式1
- 由(2 - X) * T = T (方式1时n为16)得
- (2 - X)* 2 = 1000
- 解得 X = 65036 = FEOCH
- 方式1为16位所以X的
高8位
为TH0 = 0FEH,低8位
为TL0 = 0CH;