定时/计数器 第三部分
工作方式寄存器 TMOD | |||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
高半字节 | 低半字节 | ||||||
GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
配置定时器 T1 | 配置定时器 T0 |
T0 工作方式选择表 | |||
M1 | M0 | 工作方式 | 备注 |
0 | 0 | 方式 0 | 13 位计数器 |
0 | 1 | 方式 1 | 16 位计数器 |
1 | 0 | 方式 2 | 自动再装入 8 位计数器 |
1 | 1 | 方式 3 | 分成两个 8 位计数器 |
T1 工作方式选择表 | |||
M1 | M2 | 工作方式 | 备注 |
0 | 0 | 方式 0 | 13 位计数器 |
0 | 1 | 方式 1 | 16 位计数器 |
1 | 0 | 方式 2 | 自动再装入 8 位计数器 |
1 | 1 | / | 停止计数 |
方式 0 |
完全可以用方式 1 代替。 |
C/T | 方式 1 |
0 | Tx 对机器周期计数,也就是定时工作方式。 |
1 | 由引脚 T0(P3.4/PIN14)或引脚 T1(P3.5/PIN15) 引入外部计数脉冲,当这个脉冲由 1 到 0 跳变时,计数器加 1,也就是外部事件计数器。 |
备注 | 每次计数溢出后,寄存器各位被置 0,重新计数需要重新装入计数初值。 |
定时 | t = (216 - Tmin) * Tm |
方式 2 | 与方式 1 的差异 |
除了最大计数值外,其它的基本上与方式 1 一样。 | 可以自动再装入初值,能够提高计数精度。 |
定时 | t = (28 - Tmin) * Tm |
方式 3 |
只有 T0 可以用这种方式工作。 |
此时 T0 被拆分人两个独立的 8 位计数器 TL0 和 TH0,此时 T0 的控制位,引脚和中断源(C/T,GATE,TR0,TF0,T0[P3.4],INT0[P3.2]),均用于对 TL0 的控制,除了仅用 8 位寄存器 TL0 外,其它功能和操作与方式 1 完全相同; 在该方式下分出来的另一个计数器 TH0 只能用作简单的内部定时功能,并占用原用于 T1 的控制位(TR1 与 TF1)和中断源,定时器 TH0 的启动和开启只受 TR1 的值(1/0)控制; 在该方式下,T1 仍可设置为方式 0 或方式 2,但是由于 TR1、TR2 和 T1 的中断源都被占用了,此时仅有控制位 C/T 可切换其定时器或计数器的工作方式,计数溢出时,只能将输出送入串行口,所以此时 T1 一般用于串行品波特率发生器; 当设置好 T0 为工作方式 3 后,T1 就能自动开始运行,若要停止,只须将 T1 配置为按方式 3 工作即可。 |
T2 工作方式选择表 | ||||
RCLK + TCLK | CP/RL2 | C/T2 | T2OE | 方式 |
0 | 0 | / | / | 16 位自动装入 |
0 | 1 | / | / | 16 位捕捉 |
1 | / | / | / | 波特率发生器 |
/ | / | 0 | 1 | 时钟输出 |
/ | / | 1 | / | 外部脉冲计数 |
/ | / | 0 | 0 | 定时器 |
/ | / | / | / | 停止计数 |
《定时/计数器 第三部分》 由 CRAFTOUR.COM 采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。