80C51单片机中有两个计数器,即T0和T1。
单片机内有一个定时器/计数器T0,可以用编程的方法将它设为计数器。当用作计数器时,它是一个16位计数器,它的最大计数值为65536。
定时器/计数器T0和T1分别是由TH0、TL0和TH1、TL1两个8位计数器构成的16位计数器,两者均为加1计数器。
定时器/
计数器
T0
或
T1
用作计数器时,通过单片机外部引脚
T0
或
T1
对外部脉冲信号计数,当加在
T0
或
T1
引脚上的外部脉冲信号出现一个
由1到0的负跳变时
,计数器加
1
,如此直至计数器产生溢出。
定时器 / 计数器 T0 或 T1 用作定时器时, 对外接晶振产生的振荡信号 经12 分频后,提供给计数器,作为计数的脉冲输入,计数器以 12 分频后的脉冲周期为基本计数单位,对输入的脉冲进行计数,直至产生溢出。
需要说明的是,无论 T0 或 T1 是工作于计数还是计时方式,它们在对内部时钟脉冲或外部脉冲进行计数时,都不占用 CPU 的时间,直到定时器 / 计数器产生溢出为止。它们的作用是:当发生溢出后, 通知CPU停下当前的工作,去处理“时间到”或“计数满”这样的事件。因此,定时器 / 计数器的工作并不影响 CPU 其它的工作。这也正是采用定时器 / 计数器的优点。