当前位置: 代码迷 >> 单片机 >> 定时器初值计算?该如何解决
  详细解决方案

定时器初值计算?该如何解决

热度:63   发布时间:2016-04-28 15:41:14.0
定时器初值计算?
C51用11.0592MHZ的晶振。采用定时器T1,方式2怎么定时0.5S和1S。
这个初值是怎么计算的。TH1,TL1都要怎么计算。
求详细过程。(汇编)
------最佳解决方案--------------------
可以有很多种方法,查询和中断都行,直接查询时间到这种应该比较难,就先设置20ms然后时间到对变量如flag加1等到flag值为50就是一秒了
------其他解决方案--------------------
1秒貌似定不出 定小点 多次就是1秒了
------其他解决方案--------------------
这个是回炉看书的问题
------其他解决方案--------------------
选择定时器的定时时间能将500毫秒整除,例如500毫秒是定时时间的K倍;
在定时器里,对每次定时器中断计数,次数到达K时,就是0.5秒.

------其他解决方案--------------------
周期1S
计数器N=定时器周期t/机器周期T
定时器周期t×中断次数n=设定的周期T0


我当时也是学了好半天才懂得,加油
------其他解决方案--------------------
定不了1秒
------其他解决方案--------------------
12MHz
------其他解决方案--------------------
;11.0592MHZ下,C51的T1方式1最多可以定时65536us,
;定时50ms即50000us,须计数65536-50000=15536=0x3CB0,
;这个值即为定时器初值
ORG  0000H
AJMP  MAIN
MAIN: MOV  R6,    #2
MOV  R7,    #10
MOV  TMOD,  #10H
LOOP0: MOV  TH1, #3CH       ;定时50ms
MOV  TL1,   #B0H
SETB TR1
LOOP1:   JBC  TF1,   DLY500MS
SJMP LOOP1
DLY500MS:  DEC  R7 ;延时0.5S
DJNZ R7, LOOP0
DLY1000MS: DEC  R6 ;延时1S
DJNZ R6, DLY500MS
;分别调用DLY500MS和DLY1000MS即可
------其他解决方案--------------------
那个晶振一次才0.07秒左右呢!!!
------其他解决方案--------------------
555定时器的计算0.5s的方法
------其他解决方案--------------------
先定个1ms,再循环1000次就好了
------其他解决方案--------------------
直接下载工具软件,都给你算好了
  相关解决方案