技术文档

单片机 定时器 初值 学单片机这么久,还不会计算定时器初值就out了。

小编 2024-10-17 技术文档 23 0

学单片机这么久,还不会计算定时器初值就out了。

在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。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;

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

只需要支付硬件成本的STM32单片机学习板正在集资众筹,价格129元,。这款学习板包含了GPIO应用、RS232通讯、RS485通讯、CAN总线通讯、USB通讯、IIC总线、SPI总线、JTAG在线调试、SW在线调试、ISP自动下载、RTC实时时钟、TFT真彩屏应用等丰富的外设资源,详情请加微信号了解。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。

公众号:micropoint8。嵌入式学习网振兴网:www.picmcu.com

定时器初值计算及使用,虹润来解

虹润系列的数显定时器采用全自动贴片封装工艺,具有很强的抗干扰能力,并具有多种输出功能和控制功能,广泛运用于电力、石化、冶金、轻工、制药、航空等诸多领域。

  定时器系统是单片机内部一个独立的硬件部分,它与cpu和晶振通过内部某些控制线连接并相互作用,cpu一旦设置开启定时功能后,定时器便在晶振的作用下自动计时,但定时器的计数器计满后,会产生中断。计数时间一次为12/晶振频率。在晶振频率为11.0595mhz时,计数一次时间约等于1.09us。

  定时器初值计算:

  中断函数明白后,如何定时还是不清楚。开启定时器后,定时器就会开始计数,每次加1的间隔是固定的,而且到达大值就会溢出,触发中断。这样子的话我们可以设定一个初值,初值到大值的时间假设为50ms,那样的话定是的效果就达到了。定时器加1时间间隔约等于1.09us,定时器在没有赋值时默认初值为0,大值为65535,计算可得655351.09us约等于72ms,没有赋初值一次定时大为72ms。可以设置一个初值,就拿50ms来说,501000/1.09约等于45872,也就是说经过45872次计数时间为50ms,那初值就是65535-45872=19663。

  使用步骤:

  计算知道后,来看看定时器使用步骤:

  对TMOD赋值,确定T0和T1的工作方式

  计算初值,赋值TH0,TL0或TH1,TH1

  对IE赋值,启动中断

  TR0或TR1置位,启动定时器

  处理中断函数,定时器中断后变成默认值0,要重新赋初值

相关问答

单片机定时器初值 计算。我算的不对啊?

你的初值是对的,而你计算的时候错了。TH0=(65536-45872)/256你要知道,它的定时总周期数是45872,因为定时器要从65536-45872=19664开始计时,要从196...

单片机 工作主频12MHz, 定时器 计数器T0工作方式1,计算定时10ms的 初值 是多少?

(2^16—计数初值)╳晶振周期╳12=定时时间(2^16—计数初值)╳1/(12╳10^6)╳12=10Ms=10*10^(-3)S计数初值=2^16—10^4=55536=D8F0HTH0=...

单片机定时器初值 计算。我算的不对啊 - 176****5602 的回答 ...

你的初值是对的,而你计算的时候错了。TH0=(65536-45872)/256你要知道,它的定时总周期数是45872,因为定时器要从65536-45872=19664开始计时,...

单片机 --题设 单片机 晶振频率为12MHz,使用 定时器 T1以方式1产...

[最佳回答]TMOD=0x10;TH1=0xFC;L1=0x18;即为高电平时间为1ms.最大定时时间:2^16毫秒t=(2^16-计数初始值)X晶振周期X12.TMOD=0x10;TH1=0xFC;L1=0x...

51 单片机定时器 工作模式一, 初值 计算:当TC=3CB0H时,TH0和TL0各等于多少?望各位大侠多多指教,谢谢了?

工作在模式一,将在65536时溢出,这样,计数值就是50000。如果是定时工作方式,将计数50000个机器周期。如果51单片机选用12MHz晶振,将会定时50ms;如果51单片...

单片机定时器 中,比如TH1=(65536—10000)/256得到的数付给TH1,也就是 初值 ,为什?

这是工作在方式二吧?低八位计数,高八位放初值,何来装满装不满一说这是工作在方式二吧?低八位计数,高八位放初值,何来装满装不满一说

51 单片机定时器初值 公式中的256是什么?

用方式1时,16位的初值要分解成高8位、低8位,分别存放到TH0、TL0。对256求模,也就是除以256得到的整数商,这就是高八位。对256求余,也就是除以256,得到...

80c51 单片机 定时的时间与哪两个寄存器的 初值 有关?

th0和tl0,就是初值th0和tl0,就是初值

中断服务程序为什么要定时 初值 ?

初值在运行过程中计数器的不断加1,直到溢出时产生中断。因为这种定时方式(有的方式可以自动重置的),单片机不能重置初值,所以进入中断后必须人工重置初值,...

当80C51 单片机 晶振频率为12MHz时,时钟周期.机器周期各是多少?

2.一个机器周期等于12个时钟周期,所以是1微秒。资料拓展:80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加...资...

猜你喜欢