300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 请描述定时器初值的计算方式_51单片机定时器初值计算方法详解

请描述定时器初值的计算方式_51单片机定时器初值计算方法详解

时间:2024-07-26 18:49:25

相关推荐

请描述定时器初值的计算方式_51单片机定时器初值计算方法详解

在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:

最大值为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;

用虚拟示波器抓到的波形如下:

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。