80C52、AT89C52的定时/计数器2
扫描二维码
随时随地手机看文章
80C52、AT89C52、80C51FA/FB等单片机增加了一个16位定时/计数器T2,可用于定时或外部事件计数。它有三种工作方式:16位自动重装初值的定时/计数器、捕捉事件、串行口波特率发生器。与T2有关的外部引脚是:P1。0-外部计数脉冲输入端T2,P1。1-外部控制端T2EX。
8052、AT89C52、80C51FA/FB等单片机增加了一个16位定时/计数器T2,可用于定时或外部事件计数。它有三种工作方式:16位自动重装初值的定时/计数器、捕捉事件、串行口波特率发生器。与T2有关的外部引脚是:P1。0-外部计数脉冲输入端T2,P1。1-外部控制端T2EX。
1、 T2的特殊功能寄存器
1) 控制寄存器T2CON(C8H)
位:TF2 EXF2 RCLK TCLK EXEN2 TR2 C//T2 CP//RL2
TF2:T2溢出中断标志,在捕捉方式和自动重装初值方式中计数溢出时置1,对应中断入口002BH,但中断响应后,必须由软件清0。在串行口波特率发生器方式中TF2不会置1。
EXF2:T2外部中断标志。当EXEN2=1(T2外部中断允许)时,引脚T2EX(P1。1)的负跳变使EXF2=1,CPU响应中断,入口地址002BH;EXF2也必须由软件清0。
EXEN2:T2外部中断允许标志。使EXEN2=1,当T2工作在捕捉方式时,引脚T2EX上出现的负跳变使EXF2=1,申请中断,同时TH2、TL2的当前值自动送入RCAP2H、RCAP2L寄存器;如果T2工作在重载初值方式,那么T2EX的负跳变将RCAP2H和RCAP2L的内容自动装入TH2、TL2,同时EXF2=1,申请中断。EXEN2=0时,T2EX引脚上的变化对T2工作无影响。
RCLK、TCLK:选择串行口波特率发生器方式。RCLK=1和TCLK=1时,T2的溢出率是串行口发送和接收的时钟;当只有RCLK=1时,T2只是串口的接收时钟;只有 TCLK=1时,T2只是串口的发送时钟。此时忽略CP//RL2位。
CP//RL2:自动重装方式和捕捉方式选择(此时RCLK和TCLK应为0)。为0-自动重装方式,为1-捕捉方式。
2) TH2、TL2、RCAP2H、RCAP2L。
2、T2的工作方式
1) 初值自动重装入方式
寄存器TH2、TL2是16位加1的计数器,RCAP2H、RCAP2L是存放初值的寄存器。
此方式中,CP//RL2=0,打开了RCAP2H、RCAP2L 通向TH2、TL2的三态门,而关闭反方向的门。
当C//T2=0,TR2=1时,T2以定时器方式工作,12/fosc为计数最小单元。16位定时精度要比T0、T1高。
当C//T2=1,TR2=1时,T2以计数器方式工作,引脚P1。0上输入的脉冲为计数信号(负跳变)。
当T2计数溢出时,使TF2=1,同时把RCAP2H、RCAP2L的内容自动装入TH2、TL2并开始重新计数。
在此方式中,若置EXEN2=1时,除上述功能外,引脚P1。1上的负跳变将RCAP2H、RCAP2L的内容自动装入TH2、TL2使之提前开始重新计数,同时置EXF2=1,申请中断。
2) 捕捉方式
此方式中,CP//RL2=0,关闭了RCAP2H、RCAP2L 通向TH2、TL2的三态门,而打开反方向的门。因此不管是工作在定时器还是计数器方式,当T2溢出时,仅使EXF2=1,但计数初值不会自动重装,而须用软件装入。此方式的主要用途是,当EXEN2=1时,引脚T2EX(P1。1)上的电平负跳变会将TH2、TL2的当前数值锁存到RCAP2H、RCAP2L,并置EXF2=1,申请中断。这是‘捕捉方式’的含义,它可用于测试外部事件的发生时间。
在RCLK或TCLK为1时,T2就成为波特率发生器。它可以对内部或外部时钟脉冲计数(由C//T2决定)。
寄存器TH2、TL2是16位加1的计数器,RCAP2H、RCAP2L是存放初值的寄存器。
当C//T2=0时,T2是对频率为fosc/2的时钟脉冲计数,而不是fosc/12。计数溢出时,RCAP2H、RCAP2L的内容自动装入TH2、TL2并开始重新计数,但不会使EXF2=1,即不会产生中断。它的溢出脉冲经16分频成为串行口的发送或接收脉冲(由RCLK、TCLK决定)。
既然此方式不会引起中断,而且当EXEN2=1时,T2EX(P1。1)引脚上的负跳变对T2工作无任何影响,但又能使EXF2=1,申请中断。因此,T2EX可作为一个外部中断源使用。
在此方式工作进程中,CPU不要对TH2、TL2、RCAP2H、RCAP2L进行写的操作,否则使波特率不稳定。