導航:首頁 > 操作系統 > 單片機定時誤差

單片機定時誤差

發布時間:2023-02-25 21:49:12

① 51單片機定時器問題,定時不精準,差不多30s就有一秒的誤差,

65536-46080=19456個機器周期。
你使用11.0592M,如果單片機是12T的話,那就是每秒有11059200/12=921600個周期
19456/921600=0.0211111秒
再加上你在中斷函數中到TH0,TL0賦值的操作,包括,跳轉,關鍵數據入棧,TH0,TL0賦值等的時間。
換句話說,你一次中斷大概是0.021120秒
接下來,你就自己算吧

② 單片機數字時鍾比實際時間的慢啊怎麼辦

單片機是利用定時器實現計時的,根據定時器的定時計算出的時間常數,是理想狀態下的數值。
如晶振頻率是12M,用定時器T0,按定時20ms 計算的時間常數
TH0=(65536-20000)/256=0XB1
TL0=(65536-20000)%256=0XE0
如果按這個數寫程序,電子鍾計時的時間肯定就比實際的時間慢。當然了,這需要時間長了,才能體現出來,如果只是計時幾個小時是比較不出來的。必須是長時間的計時,比如計時一周以上就體現出來計時的誤差了。
這是因為,單片機計時的誤差還是比較小的,假如一天慢1秒,那計時一周了,就慢7秒,才會發現的。
為什麼會慢呢,是因為定時到,要中斷,單片機從響應中斷,到在中斷程序中重寫時間常數,才能重新計時的,這是需要時間,只是這時間只有幾個微秒。就產生了計時誤差了。可是這向微秒的誤差,累計一周後就累計成幾秒了。
要計時比較准確的還是有辦法的,就是給時間常數的TL0加幾個數,來補償誤差。
通常加8就行,不過,還需要長時間的計時來校正。
在中斷程序中的時間常數改為
TH0=0XB1;
TL0=0XE8; //這低8位加8,補償誤差
這樣補償後,還有誤差,再改這低8位,慢了就加,快了就減

③ 單片機定時器做的時鍾,定時不準。

單片機定時器做時鍾,確切的說在環境溫度變化不大的前提下,可以調整的很准,畢竟它是基於MHz級的晶振的,提兩點建議,1】建議使用12MHz晶振;2】請注意對於不同的編程,定時器賦值時,如果需要50ms定時則絕不一定是賦值50000,也不一定是循環20次就是1S;你琢磨下這里的道理,你就明白了,具體方法是,找一個比較準的時鍾,比如在線時鍾,每10小時記錄一次找出規律,細細調整,畢竟它是在微秒范圍內進行調整,你肯定行的,祝成功。

④ 為什麼51單片機的定時器計時不準確

中斷函數裡面盡量少放語句,如果產生脈沖波形就只放一個

⑤ 單片機:用計時器給LCD計時間每一秒可能都會多個幾毫秒,要怎麼能減小這種誤差

千分之幾的誤差,用定時器計時的這種方法誤差很難消,
實在想消的話,可以用下面幾種法子試試:
1. 挑選晶振,晶振頻率有差,挑選個頻率高一點的。

2. 調大計數器的初值,然後在中斷服務 子程序中讓計數器停止計數、馬上再啟動計數,目的是微微調整定時的周期。

兩種方法都較難調好,要慢慢試,最好改其它定時法。比如用1302等晶元

閱讀全文

與單片機定時誤差相關的資料

熱點內容
如何創新我的世界伺服器 瀏覽:881
戰地怎麼看伺服器地址 瀏覽:348
vue怎麼打包放上伺服器 瀏覽:165
為什麼安卓服夏日活動沒有兔子頭 瀏覽:894
pubg為什麼顯示伺服器連接失敗 瀏覽:650
阿里雲掃碼登錄伺服器 瀏覽:971
化學基礎pdf 瀏覽:896
51單片機晶碼管 瀏覽:281
怎麼查伺服器假死原因日誌在哪看 瀏覽:277
掃描pdf文件 瀏覽:926
解壓密碼百度雲在線解壓 瀏覽:767
傳播學演算法推薦 瀏覽:749
我的世界網路游戲如何查找伺服器 瀏覽:257
安卓和蘋果通訊錄怎麼互傳 瀏覽:203
怎麼打開隱私與應用加密的菜單 瀏覽:416
我的世界伺服器小游戲的地址大全 瀏覽:578
在網路安全中加密安全機制提供了數據的 瀏覽:249
南京前端程序員私活怎麼收費 瀏覽:981
拓撲pdf 瀏覽:440
如何在工行app查我的訂單 瀏覽:214