51单片机之定时器\计数器的工作原理
定时器/计数器的结构:
PS:此处涉及到了TCON和TMOD特殊功能寄存器,详见51单片机之特殊功能寄存器SFR篇
TH0、TH1:俩个加法型的计数变量,当外部产生一次时钟信号时,计数加一,直到加到最大值时发生溢出
何时处于计数器方式?何时处于定时器方式?
1、当计数变量使用单片机内部的时钟作为时钟源,我们称这种方式为定时器方式
2、当计数变量使用片外引脚P3.4、P3.5上存在的方波脉冲的时候,我们称这种方式为计数器方式
在使用片外引脚P3.4、P3.5上存在的方波脉冲时,需要俩个机器周期的时间才能确定一次脉冲信号,即需要产生下降沿时才能确定一次脉冲信号
TCON和TMOD特殊功能寄存器:
定时器/计数器工作方式:
方式0:13位的定时器/计数器
因为存在俩个8位的计数变量TLx和THx,所以最大可计数16位,在方式一中,只使用13位,则最大计数2^13;
需要注意的是:THx装入的是高8位,TLx装入的是低5位,如上图实例
方式1:16位的定时器/计数器
同方式0相同
方式2:自动装载初值的8位定时器/计数器
这种工作模式下,TLx用于计数,而THx则是用于存放初值,当TLx溢出时,THx中的初值自动装入TLx中;用于严格的计数场景
方式3:俩个8位的定时器/计数器,只有T0有
定时器/计数器的使用:
例1:
例2: