PIC16F单片机有3个定时器/计数器模块,它们的共同点是其核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并同时建立一个相应的溢出中断标志。TMRO可用于定时控制、延时、对外部事件计数和检测等场合。TMR1不仅可作通用的定时器和计数器;而且利用内置的低频时基振荡器,还可实现实时时钟RTC功能;通过TMR1与CCP模块配合使用,定时器/计数器TMR1又可实现输入捕捉和输出比较功能。TMR2只能工作于定时器模式。
定时器/计数器TMR0模块可分为4个组成部分,计数寄存器TMR0、分频器、各种控制逻辑电路和看门狗定时器WDT。
定时器/计数器TMR1模块的内部结构也分为4部分,即输入信号选择控制电路、预分频器、同步控制电路和累加计数寄存器。
TMR2由5部分构成,预分频器、TMR2累加计数器、比较器、PR2寄存器和后分频器。
对8位定时器TMR0来说,不使用分频器时,定时时间的计算公式为:256为2的8次方
(256 –计数初值) ×指令周期,
使用分频器时,定时时间的计算公式为:
分频比×(256–计数初值) ×指令周期
如设定定时时间为t,指令周期为T,分频比为P,不使用分频器时,计数寄存器写入的初始值X为:
X=256—t /T