TMOD被分成两部份,每部份4位。分别用于控制T1和T0。TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(TF1、0在这)。TR0(1)称之为运行控制位,为1,开关才能合上,计数脉冲才能过来,可用指令SETB和CLR来置位以启动/关闭计数器/定时器。
定时/计数器的四种工作方式讲解
方式0
为13位计数器,由TL(1/0)的低5位和TH(0/1)的8位组成,,此时TL(1/0)的高3位未用。
M1、M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。
C/T:C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。
GATE:GATE后非门后是一或门,GATE=0时只要TR1=0则开关闭合
GATE=1时,开关合闭不仅要由TR1,而且还受到INT1管脚控制,两个都为高电平计数脉冲才能通过。
方式1
工作方式1是16位的定时/计数方式,将M1、M0设为01即可,其它特性与工作方式0相同。
方式2
自动装入预置数的工作方式。当溢出后,T(0/1)高、低八位之间的开关打开,放在高八位的预置数进入低八位,开始第二轮,由硬件完成。代价是计数范围少一半。
方式3
定时/计数器被拆成2个独立的定时/计数器来用。
(最下是TR1)
TL0能组成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用。
TLO使用T0状态控制位C/T、GATE、TR0、INT0,而TH0使用T1的状态控制位TR1,一般只有T1以方式2运行(当波特率发生器用),才能让T0以方式3工作。
定时器/计数器的定时/计数范围
工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。
工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是256次。
预置值计算:用最大计数量减去需要的计数次数即可。