定时/计数器 第二部分


定时/计数器 T0/T1


定时/计数器是一种可编程部件,必须通过软件进行正确配置,确定其工作方式后,才能启动它。所以在定时/计数器开始工作之前,CPU 必须将一些命令(“控制字”)写入定时/计数器的特殊功能寄存器。写入控制字的过程称作“定时/计数器初始化”。

控制与管理 T0,T1 工作的特殊功能寄存器为:TMOD 和 TCON。


工作方式寄存器 TMOD
D7 D6 D5 D4 D3 D2 D1 D0
高半字节 低半字节
GATE C/T M1 M0 GATE C/T M1 M0
配置定时器 T1 配置定时器 T0

TMOD 不能进行位寻址,只能使用字节传送指令设置定时器的工作方式,复位后,TMOD 所有位均被置 0,定时器停止工作。

符号 功能 开关值
GATE Tx 的门控位 0 只需内部开启:TRx = 1,Tx 就开始工作
1 除了要内部开启:TRx = 1 外,还需外部中断 INTx 引入高电平,才能启动 Tx。
C/T Tx 的功能选择位 0 Timer: 以定时器方式工作
1 Counter: 以计数方式工作
M1 Tx 的方式选择位 0/1 M1 和 M0 的组合定义可以设置 Tx 的工作方式,见第三部分
M0 Tx 的方式选择位 0/1

由于不能进行位寻址,所以只能对 TMOD 寄存器进行整体赋值,比如:

TMOD D7 D6 D5 D4 D3 D2 D1 D0 备注
GATE C/T M1 M0 GATE C/T M1 M0

 

T0 以 16 位计数器进行定时工作;

T1 以自动重装 8 位计数器进行计数工作;

都不需要外部触发就能启动工作。

BIT 0 1 1 0 0 0 0 1
BIN 0110 0001B
HEX 0x61
DEC 97

控制寄存器 TCON
D7 D6 D5 D4 D3 D2 D1 D0
8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
高半字节 低半字节
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0

 TCON 可进行位寻址操作,当系统复位时,所有位均被置 0。

符号 功能
TF1 T1 溢出标志,并申请中断,进入中断函数后,该位被硬件置 0
TR1 T1 运行控制,TR1 = 1 时启动,TR1 = 0 时停止
TF0 T0 溢出标志,并申请中断,进入中断函数后,该位被硬件置 0
TR0 T0 运行控制,TR0 = 1 时启动,TR0 = 0 时停止
IE1 外部中断 INT1 让请求标志
IT1 INT1 触发方式选择位
IE0 外部中断 INT0 让请求标志
IT0 INT0 触发方式选择位

 

定时/计数器 T2


工作方式寄存器 T2MOD
D7 D6 D5 D4 D3 D2 D1 D0
/ / / / / / T2OE DCEN

 

符号 功能
T2OE 输出允许,T2OE = 1 时,允许输出,T2OE = 0 时,禁止输出
DCEN 加 1 / 减 1 计数允许

当 T2 工作于自动重新装入方式时,如果 DCEN = 1,则 T2 可以进行加/减 1 计数;

当 T2EX = 1 时,T2 进行加 1 计数,当 T2EX = 0 时,T2 进行减 1 计数;

复位后, DCEN = 0,则 T2 进行加 1 计数。

 

控制方式寄存器 T2CON
D7 D6 D5 D4 D3 D2 D1 D0
TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2

 

符号 功能
TF2 溢出中断标志
EXF2 外部中断标志
RCLK 串行口接收时钟选择标志
TCLK 串行口发送时钟选择标志
EXEN2 外部触发允许控制位
TR2 计数控制位
C/T2 定时器或计数器功能选择位
CP/RL2 捕捉或常数重装入方式选择位

T2 溢出时被硬件置 1,必须手动置 0,但是当 RCLK = 1 或 TCLK = 1 时,即使溢出也不会将 TF2 重置。

当 T2 工作在捕捉和常数自动重装入方式下,若 EXEN2 = 1,则当 T2EX(P1.1)发生负跳变时,将使 EXF2 置位;如果此时允许 T2 中断,EXF2 = 1 会使 CPU 响应中断,需要软件置 0;当 DCEN = 1 时,EXF2 不会置位。

当 RCLK = 1,T2 以波特率发生器方式工作,此时 T2 的溢出脉冲作为串行口方式 1 和方式 3 的接收脉冲;

当 RCLK = 0,T1 的溢出脉冲作为接收时钟脉冲。

当 TCLK = 1,T2 以波特率发生器方式工作,此时 T2 的溢出脉冲作为串行口方式 1 和方式 3 的发送时钟脉冲;

当 TCLK = 0, T1 的溢出脉冲作为发送时钟脉冲。

当 T2 工作于捕捉方式及常数自动重装入方式下,且 EXEN2 = 1 时,如果 T2EX 引脚(P1.1/PIN2)有一个负跳变信号,则会引发捕捉或常数重装入动作,同时使 EXF2 置 1;若 EXEN2 = 0,T2EX 的电平变化对 T2 没影响。

当 C/T2 = 0, T2 为内部定时器,C/T2 = 1, T2 为外部事件计数器,由 T2 引脚(P1.0/PIN1)的下降沿触发。

当 CP/RL2 = 1,T2 工作于捕捉方式(EXEN2 = 1),T2EX 引脚的负跳变引发捕捉动作;

当 CP/RL2 = 0,T2 工作于常数自动重装入方式(EXEN2 = 1),T2EX 引脚的负足迹引发常数重装入动作。


知识共享许可协议
《定时/计数器 第二部分》CRAFTOUR.COM 采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。