全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:7091
推到 Plurk!
推到 Facebook!

8051計時器精準計時1秒

答題得分者是:
topevo6
一般會員


發表:9
回覆:21
積分:16
註冊:2005-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-14 14:56:30 IP:59.113.xxx.xxx 未訂閱
小弟目前正在努力學習mcs-8051晶片,想用內部計時器0中斷產生1秒計時,但計時到差不多每10分鐘就會有1秒的誤差吔!如用延時程式的話誤差更多,是不是用8051做時鐘計時器功能較不妥呢?或有其他的改善方法?感謝指教!

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-14 16:17:53 IP:211.22.xxx.xxx 未訂閱
改用較精準的震蕩器, 確實模擬迴路動作的時間, 可改善.但仍會有誤差.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
dsplab
中階會員


發表:4
回覆:42
積分:64
註冊:2004-11-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-14 18:19:19 IP:61.229.xxx.xxx 未訂閱
使用22.1184Mhz的晶體震盪器,將Timer設定成Mode 0的13-bit模式, 讓Timer作Free Running的方式,不需重設Timer的TH及TL,設定Timer 中斷,可以產生225Hz的中斷頻率,然後利用一個Byte作為計數,每加到 225即歸零,同時產生每一秒。 大部分的Timer的時間誤差在於每次重設Timer的TH及TL時,因此利用Timer 作Free Runnung,即可避免,另外就是在Timer的中斷程式中執行過長的 程式碼,造成時間延遲所致。 DSP研究室 http://www.dsplab.idv.tw

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-15 19:44:16 IP:220.134.xxx.xxx 未訂閱
最好的方式是改用RTC, 再由51固定去讀取時間, 誤差會最小.    給你參考參考..
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
topevo6
一般會員


發表:9
回覆:21
積分:16
註冊:2005-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-18 21:17:33 IP:59.113.xxx.xxx 未訂閱
引言: 最好的方式是改用RTC, 再由51固定去讀取時間, 誤差會最小. 給你參考參考.. < face="Verdana, Arial, Helvetica"> 我有找到一顆RTC DS12C887真實時脈晶片,但不知道如何用法,請問有這顆RTC晶片的資料或參考網站嗎?

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-18 21:27:14 IP:220.134.xxx.xxx 未訂閱
引言: 我有找到一顆RTC DS12C887真實時脈晶片,但不知道如何用法,請問有這顆RTC晶片的資料或參考網站嗎?
請參考: http://www.alldatasheet.com/datasheet-pdf/pdf/58477/DALLAS/DS12C887.html 裡頭就有說明如何讀取與設定了.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-20 18:48:29 IP:61.66.xxx.xxx 未訂閱
一般的X'tal誤差約在30ppm 9小時誤差1秒以下 10分鐘誤差1秒(1/600) 這個誤差太誇張 使用延時程式會使誤差更多 表示計時器中斷會受到干擾 dsplab所說的是個好方法 不過標準8051只能12MHz 震盪器應改用11.0592MHz 產生112.5Hz頻率 或使用8Bit模式
benladn911
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-24 17:35:01 IP:218.5.xxx.xxx 未訂閱
一:要你选择的晶体震荡器要够精良。 二:要对定时中断进行中断补偿
系統時間:2024-05-02 6:07:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!