单片机如何实现定时和计数器的功能?

Home / 博客 / 单片机如何实现定时和计数器的功能?

今天为大家献上单片机的定时/计数器知识,欢迎大家一起讨论学习。

 

在测量控制系统中,常常要求有一些实时时钟,以实现定时控制,定时测量或延时动作,也往往要求有计数器能对外部事件计数,如测电机转速,频率,工作个数等.

实现定时/计数,有软件,数字电路和可编程定时/计数3种主要方式.

 

定时/计数器的结构和工作原理

51单片机的定时/计数器T1由寄存器TH1和TL1组成,定时/计数器T0由寄存器TH0和TL0组成.它们均是8位寄存器.它们用于存放定时或计数的初始值.

定时/计数器实质上是加1计数器,它可以工作与定时方式,也可以工作于计数方式.两种工作方式实际上都是对脉冲计数,只不过所计脉冲的来源不同.

 

定时方式:

TMOD.2=0,开关打向上,计数器TH0,TL0的计数脉冲来自振荡器的12分频后的脉冲,即对系统的机器周期计数.每过一个机器周期,寄存器TH,TL自动加1,当计满了预设的个数,TH,TL回零.产生溢出中断.

计数方式:

TMOD.2=1,开关打向下,计数器的计数脉冲分别来自于引脚T0和T1上的外部脉冲.当计满预制数后回零,并产生中断.

计数器的最高频率不得超过振荡器的24分频.

定时/计数器的寄存器

51单片机的定时/计数器为可编程定时/计数器.在定时/计数器工作之前,必须将控制命令写入定时/计数器的控制寄存器,即进行初始化.

定时/计数器方式寄存器TMOD

TMOD寄存器为8位,高4位用于选择T1的工作方式,低4位用于选择T0的工作方式.

 

定时/计数器控制寄存器TCON

TCON寄存器是一个多功能的寄存器.

 

TF1:T1溢出中断请求标志。

TR1:T1运行控制位

TF0:T0溢出中断请求标志

TR0:T0运行控制位

定时/计数器的工作方式

51单片机的定式/计数器有4种工作方式:

 

 

工作方式0

方式0为13位定时计数方式,由TH提供高8位,TL提供低5位的计数初值,最大计数值为 (8192个脉冲)。

工作方式1

方式1与方式0基本相同。唯一的区别在于计数寄存其的位数是16位,由TH提供高8位,TL提供低8位的计数初值,最大计数值为 (65536个脉冲)。

工作方式2

方式2是8位的可自动装入的定时计数方式。最大计数数值为 (256个脉冲)。

工作方式3

方式3只是用于定时/计数器0。只有将T1用做串行口的波特率发生器时,T0才工作在方式3,以便增加一个定式/计数器。

定时/计数器的计数初值的计算

关于单片机的相关博文可以看这里:

网络单片机

软件协议栈PK硬件协议栈,你更看好谁?

单片机以太网控制芯片— iMCU W7100A

也可进入我们的官方网站或博客查看更多。