单片机定时器计算?

2025-04-18 18:57:42
推荐回答(4个)
回答1:

计算定时器,最原始的公式是(65536-初值)*12/晶振值=定时的时间,由此式子推出:初值=65536-(晶振值*定时时间/12)。则TH0=初值/256,TL0=初值%256,最终结果就是
TH0 = 255-CLOCK/TIME_PER_SEC/12/256;
TL0 = 255-CLOCK/TIME_PER_SEC/12%256;
其中除以TIME_PER_SEC,是因为TIME_PER_SEC表示要定时的时间的倒数。

回答2:

 一、计算:
  1.晶振12M
  12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。 65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0
  2.晶振11.0592M
  11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。

  二、参考资料:
  http://wenku.baidu.com/link?url=NKwBgYZhresxh_H7Vr7wjRFmuwXwIvhK70DjBd0Alt7MT1oBdQvrm85WbXSQej3m2qwlYyoc4XbeNx0bY8-930MYa9hBU01VnlRtftho3FG

回答3:

TH0 =( 255-CLOCK/TIME_PER_SEC/12)/256;
TL0 = (255-CLOCK/TIME_PER_SEC/12)%256;
这个地方应该有括号,TH0=(255-22118400/200/12)/256
其中22118400/200这个代表所使用的晶振是多大的,这里使用的是11.0592mhz的。然后除以12是代表12分频, 这里给个公式给你 a=-T*f/12 其中a为记数初值,T为定时间隔,f为晶振mhz,-T代表无符号的意思!

回答4:

th0 = (255-22118400/200/12)/256 = 2;
TL0 = (255-22118400/200/12)%256=6