欢迎来到我司分流电阻产品网站!
如何计算51单片机定时器的初始值?
分流电阻 2024-11-24

在研究微控制器时,我们发现许多功能都是通过中断实现的。

在解释中断之前,我已经以沸水为例,今天,我将解释分配计时器初始值的方法。

一个8位定时器最多可以计数2到256的8次幂,而一个16位定时器最多可以计数2到65536的16次幂。

由于单片机的定时器是递增的,因此最大值减去计时值就是初始值,例如:最大值是100,我们只需要38,我们应该做什么,因为它是增量的,所以我们只需要在62点钟开始计时。

以Proteus仿真为例,简要说明计时器的初始值。

用proteus构建的电路图如下,晶体振荡器为12M,P2.0每10ms翻转一次,即P2.0的输出频率为100HZ。

这里使用一个16位定时器。

单片机定时器0的最大计数为65536。

晶体振荡器为12M,单片机的一个机器周期为1us。

当定时器0在模式1下工作时,最大定时为65.536ms。

计时器的计时时间T =(65536-X),单位为us;定时器初始值X = 65536-T;假设计时时间T = 10ms = 10000us,则计时器初始值X = 65536-10000 = 55536us,也就是计时器0从55536开始并递增到65536为10ms,因此55536是计时器的初始值55536转换为十六进制为0Xd8f0,因此计时器的初始值:TH0 = 0XD8; THL = 0XF0;用途虚拟示波器捕获的波形如下:免责声明:本文的内容经21ic授权后发布,版权归原作者所有。

该平台仅提供信息存储服务。

本文仅代表作者的个人观点,并不代表该平台的立场。

如有任何疑问,请与我们联系,谢谢!