一、结构
51单片机有2个16位的定时器/计数器,它们有四种工作方式。定时器系统的结构如下:
定时器的工作方式由寄存器TMOD选择,TMOD如下:
定时器的四种工作方式由M1,M0选择,对应如下:
M1 M0
0 0 方式0
0 1 方式1
1 0 方式2
1 1 方式3
C/T(非)则选择定时器/计数器是工作在计数方式还是定时方式。1:counter 0:timer
GATE为1时选择定时/计数器工作在门控方式
定时器的的工作由寄存器TCON控制,TCON如下:
TCON的高四位与定时/计数器有关,低四位与外部中断有关,TRX=1时开启定时/计数器,THX+TLX开始计数,当THX 和TLX溢出时,TFX被置1.
THX(X=0,1)和TLX(X=0,1)两个8位的寄存器共同组成16位的寄存器,一起记录定时/计数器的计数值。
二、四种工作方式:
1.工作方式0
当TMOD中的M0=0,M1=0时,定时/计数器工作在方式0.
定时/计数器0(t0)在工作方式0时的结构图如下(t1与t0完全一样):
暂时不管下半部分。从图中可以看出,计数寄存器TH0的8位和TL0的低5位位组成13位计数器,TR0=1时(打开计数器----也和GATE有关,此时GATE=0),当C/T(非)=0时,计数时钟源接通晶振的的12分频,晶振每12个周期产生一个计数脉冲,计数寄存器+1,这时t0作定时器用;当C/T(非)=1时,计数时钟源接通外部引脚P3.4,外部输入一个脉冲,计数寄存器+1,这时t0作计数器。
当13位的计数寄存器溢出时,会把TF0位置1,如果设置了中断,则会产生定时中断。
书接上回,下面是定时器的其他工作方式。
一、工作方式1:(还是拿t0做说明)
定时/ 计数器的工作方式1是用的比较多的,它的结构图如下:
(图片遗失,转移的时候找不到链接了。。。。。)
TH0的八位和TL0的八位构成一个16位定时/计数器,可以定时时间最长
在工作方式1下,计数器的计数值范围是:
1—65536(216)
当为定时工作方式1时,定时时间的计算公式为:
(216—计数初值)╳晶振周期╳12
或 (216—计数初值)╳机器周期
其时间单位与晶振周期或机器周期相同。
如果单片机的晶振选为6.000MHz,则最小定时时间为:
[213—(216—1)]╳1/6╳10-6╳12=2╳10-6(s)=2(us)
(216—0)╳1/6╳10-6╳12=131072╳10-6(s)=131072(us)。
下面说GATE:
“GATE”顾名思意既门,它通过一个反相器与INT0(非)引脚,又叫T0引脚相或(图是在网上截的,估计有错),如果GATE=1,或门由INT0引脚控制,INT0=1时,或门打开,与TR0相与,事先打开TR=1,那么在INT0=1的这段时间内,内部计数器就可以计数,等INT0=0时,此时计数器的计数值(TH0<<8|TL0)*(12/osc)就是外部输入的脉冲高电平的持续时间,这种门控方式可以用来计算外部引脚输入的脉冲频率等。
定时器0应用举例: