文章目录
- 重要公式
- T~机器~ = 12 / ∫~晶振~
- (2^n^ - X) * T~机器~ = T~定时~
- 工作方式寄存器TMOD
- 常考题型
- 例题1
- 题解
- 方式0
- 方式1
关于定时器的常考题目为已知晶振 ∫
、定时时间
,求定时器初值
。
重要公式
-
T机器 = 12 / ∫晶振
-
(2n - X) * T机器 = T定时
- 其中
n
为定时器位数,定时器不同的工作方式对应不同的n
,见下文; X
为定时器初值;
- 其中
工作方式寄存器TMOD
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
GATE | C/T | M1 | M0 | IGATE | C/T | M1 | M0 |
-
[注]:TMOD
高4位
与T1
相关,低4位
与T0
相关。 -
GATE
- 0:定时器/计数器的运行由
TRX
决定; - 1: 定时器/计数器的运行由
TRX
和外中断
引脚共同决定;
- 0:定时器/计数器的运行由
-
C/T
- 0:定时器模式;
- 1:计数器模式;
-
M1/M0
M1 | M0 | 方式 | n | |
---|---|---|---|---|
0 | 0 | 方式0 | 13位 | (重要) |
0 | 1 | 方式1 | 16位 | (重要) |
1 | 0 | 方式2 | 8位 | |
1 | 1 | 方式3 | 2个8位 | (仅适用于T0) |
常考题型
例题1
- 单片机采用
6MHZ
的晶振,定时1ms
,用定时器方式0/1的初值(即求TH0
,TL0
)分别是多少?
题解
我们将分别采用方式0与方式1进行演示。
方式0
- 由∫晶振 = 6MHZ得 T机器 = 12 / ∫晶振 =
2微秒
; - 设方式0地初值为
X
,则由- (2n - X) * T机器 = T定时 带入数值得:
- (213 - 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
- 由(2n - X) * T机器 = T定时 (方式1时n为16)得
- (216 - X)* 2 = 1000
- 解得 X = 65036 = FEOCH
- 方式1为16位所以X的
高8位
为TH0 = 0FEH,低8位
为TL0 = 0CH;