欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 52單片機小白求助關于定時器初值求模和取余 [打印本頁]

作者: SHANWAZI    時間: 2021-1-4 10:42
標題: 52單片機小白求助關于定時器初值求模和取余
想問問壇友們單片機定時器工作方式1  設定為16位計數
TH0和TL0裝初值
例如定時50MS:
TH0=(65536-50000=15536)/256;  
TL0=(65536-50000=15536)%256;
結果查質料得知是對TH0初值進行求模和對TL0初值進行求余可是始終不得解
這過程是怎么計算啊?知道的壇友能不能告知一下呢?
比如以實例舉個例子呢!!!   跪謝了!!!


作者: suncat0504    時間: 2021-1-4 11:31
定時器的額工作過程是這樣的:在設定初始值的基礎上,每個計數周期,計數自動加一。當計數值達到0xFFFF時,下一個脈沖到來的時候,數據達到65536,就會溢出,從而產生中斷。所以說這個初始值決定了產生中斷所需要花費的時間。
對16位計數器模式,TH0和TL0兩個存儲器構成一個16位,TH0存儲高八位,TL0存儲低八位。也就是說,初始值=TH0 * 256 + TL0
如果設置某個初始值,使定時器再接收到50000個計數脈沖后(對12M晶振,時鐘周期為1微秒,50000個時鐘周期,就是50ms),產生溢出并中斷的話,因為中斷溢出的數值是65536(對無符號數據,兩字節數據的最大值是65536),那么初始值就應該是65536-50000=15536這個數據,也就是15536=TH0 * 256 + TL0,那么以下計算方式就是確定TH0和TL0應該設置的初始數據。
TH0=15536/256=60;  
TL0=15536%256=176;
驗算方式很簡單:TH0*256+TL0=60*256+176=15536
作者: robinsonlin    時間: 2021-1-4 11:40
知道計算原理就好了。 沒必要糾結如何計算出來的。  就想現在很多時候,你在計算百位*百位運算的時候,都會掏出手機計算來按幾下一樣,而不是再用筆列個豎式去驗算。  51單片機定時器的取值,也有專門的計算工具的。 目前我一直是用 stc-isp ,設好晶振頻率,設好工作模式,代碼都直接出來了。也不容易把高低位搞反。網上一搜就找到了。
作者: SHANWAZI    時間: 2021-1-4 11:46
suncat0504 發表于 2021-1-4 11:31
定時器的額工作過程是這樣的:在設定初始值的基礎上,每個計數周期,計數自動加一。當計數值達到0xFFFF時, ...

真的是太感謝樓主一語道破困惑我好幾天的問題終于解決!!!!!
作者: SHANWAZI    時間: 2021-1-4 11:47
robinsonlin 發表于 2021-1-4 11:40
知道計算原理就好了。 沒必要糾結如何計算出來的。  就想現在很多時候,你在計算百位*百位運算的時候,都會 ...

您說的是單片機燒寫軟件吧!!!!
作者: 人人學會單片機    時間: 2021-1-4 12:07

這個就是定時器的工作原理圖。看圖操作
歡迎你們去觀看《人人學會單片機》視頻教程。B站和原子哥網站,我們都有播放的。


作者: SHANWAZI    時間: 2021-1-4 16:34
人人學會單片機 發表于 2021-1-4 12:07
這個就是定時器的工作原理圖。看圖操作
歡迎你們去觀看《人人學會單片機》視頻教程。B站和原子哥網站, ...

有點聽不太懂有點深奧
作者: zwf33    時間: 2021-1-5 17:23
例如定時50MS(晶振用11.0592MHZ),初值計算方法:

12*(1÷11.0592)=1.085us


50ms=50000us
50000÷1.085=46083


TH0=(65536-46083)/256;  
TL0=(65536-46083)%256;
作者: SHANWAZI    時間: 2021-1-9 09:56
zwf33 發表于 2021-1-5 17:23
例如定時50MS(晶振用11.0592MHZ),初值計算方法:

12*(1÷11.0592)=1.085us

非常感謝!
作者: SHANWAZI    時間: 2021-1-9 09:57
問題已解決




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1