畢業(yè)設(shè)計151基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究.pdf_第1頁
畢業(yè)設(shè)計151基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究.pdf_第2頁
畢業(yè)設(shè)計151基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究.pdf_第3頁
全文預(yù)覽已結(jié)束

畢業(yè)設(shè)計151基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究.pdf.pdf 免費下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第 29 卷 第 4 期2005 年 8 月武 漢 理 工 大 學(xué) 學(xué) 報 (交通科學(xué)與工程版 )Jou rnal of W uhan U n iversity of T echno logy(T ran spo rtation Science & Engineering)V o l. 29 N o. 4A ug. 2005基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究 3收稿日期 : 2005 06 05陳姚節(jié) : 男 , 28 歲 , 碩士 , 助教 , 主要研究領(lǐng)域為數(shù)據(jù)通信和設(shè)備驅(qū)動開發(fā)3 國家 863 計劃項目資助 (批準(zhǔn)號 : 2003AA 414011)陳姚節(jié)戴澤軍(武漢科技大學(xué)計算機學(xué)院武漢 430081)摘要 : 用單片機來設(shè)計數(shù)字鐘 , 軟件實現(xiàn)各種功能比較方便 . 但因軟件的執(zhí)行需要一定的時間 , 所以就會出現(xiàn)誤差 . 對比實際的時鐘 , 查找出誤差的來源 , 并作出調(diào)整誤差的方法 , 使得誤差盡可能地小 , 使得系統(tǒng)可以達(dá)到實際數(shù)字鐘的允許誤差范圍內(nèi) .關(guān)鍵詞 : 顯示消影 ; 事件觸發(fā) ; 誤差分析中圖法分類號 : T P365. 11系統(tǒng)原理分析系統(tǒng)設(shè)計中用到 89 C52 單片機的部分功能 :包括內(nèi)部定時器 , 鍵盤擴展 , 程序中斷 , 串口通信等 . 用一個四聯(lián)體的共陰極八段顯示器 , 可通過一個輸入 輸出口作為顯示器數(shù)據(jù)發(fā)送端 ; 另一個輸入 輸出口的四位作為顯示器各位的片選信號 , 另四位作為鍵盤擴展口使用 . 采用一個頻率為11. 059 2 M H z的晶振構(gòu)成時鐘電路 . 系統(tǒng)原理如圖 1 所示 .圖 1系統(tǒng)原理圖2軟件實現(xiàn)與流程2. 1主程序由于系統(tǒng)的主要功能都是由程序中斷來完成的 , 主程序基本上沒什么事可做 , 但因鍵盤掃描是通過程序查詢的方式實現(xiàn)的 , 所以主程序只循環(huán)掃描鍵盤 . 主程序流程圖如圖 2 所示 .2. 2定時和串口程序定時和串口都是中斷響應(yīng)程序 , 它們的調(diào)用圖 2主程序流程圖都是系統(tǒng)執(zhí)行過程中采用中斷事件觸發(fā)產(chǎn)生 (中斷部分處理如圖 3 所示 ). 定時中斷是周期性發(fā)生的 , 而串口中斷則須串口有數(shù)據(jù)傳輸才發(fā)生中斷 1, 2 . 定時程序是整個系統(tǒng)的核心代碼 , 這段代碼不光涉及到顯示 , 還涉及到系統(tǒng)計時 , 這段代碼的優(yōu)劣關(guān)系到整個系統(tǒng)的可靠性 , 后面還將詳細(xì)討論 . 為初步減小系統(tǒng)誤差 , 置定時初值一定要在程序開始就設(shè)置 .2. 3數(shù)據(jù)的顯示與刷新更新顯示器涉及到兩個操作 : 發(fā)數(shù)據(jù)和改片選信號 . 但實踐發(fā)現(xiàn) , 代碼中無論是先改片選信號還是先發(fā)數(shù)據(jù)信號 , 都會出現(xiàn)重影 (即相鄰兩位顯示差不多 ) 這也是動態(tài)掃描引起的 . 證明先發(fā)片選 , 則前一位的數(shù)據(jù)會在下一位顯示一段時間 ; 先發(fā)數(shù)據(jù) , 則后一位的數(shù)據(jù)會在前一位顯示一段時間 , 因而出現(xiàn)重影 . 解決這個問題的辦法是先進(jìn)行圖 3中斷程序流程圖一個消影操作 , 然后再發(fā)片選 , 最后發(fā)數(shù)據(jù) . 這樣就能很好地解決了重影問題 . 這樣做的關(guān)鍵在于 ,在極短的一段時間內(nèi)讓顯示器都不亮 , 等一切準(zhǔn)備工作都做好了以后再發(fā)數(shù)據(jù) , 只要顯示頻率足夠快 , 是看不出顯示器有閃爍的 (程序用定時中斷頻率作為顯示更新頻率 , 在表 1 中 , 只有當(dāng)更新率 100 H z 時 , 才發(fā)現(xiàn)顯示器有閃爍 ). 這段顯示程序代碼如下 .P1= 0 x00; 消影P2= 選擇 選擇 ; 發(fā)片選信號codetmp= acode echoarray選擇 ;如果 (選擇 = = 2&mod= = 0&do tflag) 判斷是否顯示 . codetmp= 0 x80;P1= codetmp; 發(fā)數(shù)據(jù)選擇 = + + 選擇 % 4; 片選計數(shù)器下移表 1系統(tǒng)時間校正測試數(shù)據(jù)定時中斷頻率 k 次 s- 1PC 標(biāo)準(zhǔn)時長m in系統(tǒng)計時(初值為00: 00: 00)誤差$ t s 備注100 10 00: 09: 58 - 2 顯示器有閃爍200 10 00: 09: 57 - 3400 10 00: 09: 55 - 5800 10 00: 09: 49 - 111 600 10 00: 09: 39 - 213 200 10 00: 09: 18 - 423 200 20 00: 18: 38 - 82 顯示器無閃爍3 200 30 00: 27: 57 - 1233 200 60 00: 55: 54 - 2463 200 120 01: 51: 46 - 4943 200 180 02: 47: 38 - 7423 200 240 03: 43: 31 - 9893 200 300 04: 39: 24 - 1 2242. 4鍵盤響應(yīng)程序鍵盤處理程序流程相對簡單 , 只是簡單的判鍵與處理 . 這里不再給出流程圖 . 所謂鍵盤消抖就是一次按鍵的多次響應(yīng)問題 . 當(dāng)然 , 一般一次按鍵只須響應(yīng)一次 , 但有的時候需要多次響應(yīng) , 如系統(tǒng)進(jìn)入修改模式 , 數(shù)字的增減 . 當(dāng)出現(xiàn)這種問題時 ,用戶的一次擊鍵是作為一次還是多次處理 , 必須有一個標(biāo)準(zhǔn) . 程序中用到了一個標(biāo)志位 , 相當(dāng)于中斷系統(tǒng)的中斷標(biāo)志 . 當(dāng)用戶按下鍵時 , 標(biāo)志清零 ,松開鍵時 , 標(biāo)志恢復(fù) ; 鍵按下超過一定時間 (靠一掃描計數(shù)器判定 ) 后 , 恢復(fù)標(biāo)志 , 則經(jīng)過一定的時間延遲 (也靠一掃描計數(shù)器判定 )可以響應(yīng)一次按鍵 (即一次按鍵的多次響應(yīng) ). 而事實上 , 鍵盤響應(yīng)程序就是一個事件觸發(fā)器 , 鍵盤的每一個狀態(tài) (按下 , 松開 , 點擊 ) 都可能引發(fā)一段響應(yīng)程序 (如 : 重新設(shè)定鍵按下準(zhǔn)備復(fù)位 ; 松開系統(tǒng)復(fù)位 ). 這里的時間延遲靠的是指令計數(shù) , 由于受硬件中斷等不確定因素影響 , 這個延遲一般不準(zhǔn)確 , 但通過測試 , 可以找到一些合適的值 .3系統(tǒng)性能測試與功能說明3. 1定時計數(shù)器的初始值設(shè)置公式推導(dǎo)系統(tǒng)中所選用的晶振的頻率為 f o sc, 則機器周期為公式 1: t0 = 12 f o sc 3 設(shè)定時器要求的中斷頻率為 k, 計數(shù)器位數(shù)為 n, 則定時計數(shù)器的初值 X 設(shè)置有如下公式 : t0 (2n- X ) = 1 k 3 . 于是原始公式 : X = 2n - 1 (k t0). 而實驗測得的數(shù)據(jù)顯示 , 這個公式所得的結(jié)果并不可靠 (表 1 中的所有數(shù)據(jù)都是在計數(shù)器初始值嚴(yán)格按照原始公式給出的條件下測得 , 以個人計算機機系統(tǒng)時鐘為標(biāo)準(zhǔn) ). 從表 1 中的數(shù)據(jù)可知 , 嚴(yán)格按照原始公式得出的計數(shù)初值是存在極大誤差的 , 這個誤差總使系統(tǒng)時間變慢 , 而且 , 系統(tǒng)時間的誤差值隨著每秒中斷次數(shù)的增多而增大 , 隨計時總長的增長而增大 , 并且總是成比例 (在誤差允許的范圍內(nèi) ). 這就是說 , 系統(tǒng)的誤差跟每秒中斷次數(shù)和個人計算機標(biāo)準(zhǔn)時長的乘積 (即中斷總次數(shù) ) 成正比 . 也就是說 , 每次中斷計時的時間誤差是一個常數(shù) .誤差來源分析 . 不考慮晶振等固件的誤差 , 則系統(tǒng)機器周期可以由公式 1 準(zhǔn)確給出 , 因而系統(tǒng)誤差不可能來自于硬件 , 而應(yīng)該主要來自于軟件方面 . 系統(tǒng)每次調(diào)用定時中斷程序的過程中 , 硬件并沒有自動進(jìn)入下一個定時周期 , 而是在調(diào)用中斷程序以后由軟件置數(shù)來實現(xiàn)的 . 而在程序調(diào)用155 第 4 期 陳姚節(jié)等 : 基于單片機的數(shù)字鐘設(shè)計及時間校準(zhǔn)研究過程中 , 堆棧建立、參數(shù)傳遞等都是需要耗時 , 而這些時間都被無形中加到了定時長度中去 . 所以 ,使得每次定時長度都大于理論推導(dǎo)值 , 在宏觀上表現(xiàn)出來就是系統(tǒng)比理論計算出來的結(jié)果變慢了(這于表 1 所得的結(jié)論恰好一致 ). 另外 , 由于系統(tǒng)每次調(diào)用中斷處理程序所執(zhí)行的操作都是相同的 , 也就是說 , 系統(tǒng)每次定時的時間誤差應(yīng)該是一個常數(shù) (這也恰好跟實驗數(shù)據(jù)相吻合 ). 由上面的數(shù)據(jù)和分析可知 , 原始公式應(yīng)該修改為 : 公式 2X = 2n- 1 (k t0) + $x. 則由表 1 推導(dǎo)出定時初值的修正值的計算公式如下 , 公式 3, $x = $ t ( 60 T k t0). 由表 1 數(shù)據(jù) , 實際中要求 k 最小 , 而又不影響顯示效果 , 才能使誤差越小 , 故實測中取 k = 160. 根據(jù)表 1 計算近似等于 20 (所用晶振頻率為 11. 059 2 M H z). 按表 1 的實驗方法 ,得表 2.表 2參數(shù)優(yōu)化后的計時測試數(shù)據(jù)定時中斷次數(shù) k 次 s- 1PC 標(biāo)準(zhǔn)時長 m in $x系統(tǒng)計時(初值為00: 00: 00)誤差$ t s 備注16060 20 00: 59: 59 - 1120 20 01: 59: 58 - 2180 20 02: 59: 57 - 3240 20 03: 59: 56 - 4300 20 04: 59: 54 - 6300 21 04: 59: 59 - 1600 21 09: 59: 58 - 2顯示器無閃爍這些數(shù)據(jù)較表 1 已有很大準(zhǔn)確性 , 但與實際應(yīng)用還有一定差距 . 末兩行是根據(jù)前面參數(shù)規(guī)律稍做改動得到的 , 與公式 2 有一定出入 , 但與個人計算機系統(tǒng)標(biāo)準(zhǔn)時間已經(jīng)相當(dāng)接近 . 由于表 1 的數(shù)據(jù)本身是肉眼估計出來的 , 本身就帶有很大的誤差 , 實際運用可用精密儀器得到表 2 的數(shù)據(jù) , 則系統(tǒng)參數(shù)可以更進(jìn)一步接近實用值 .3. 2系統(tǒng)功能與操作說明主要功能 : 二十四進(jìn)制時間顯示 (時、分 ) , 秒以“ . ”的閃爍表示 ; 電子跑表計數(shù)功能 ; 可通過按鍵修改 , 顯示時、分、秒、復(fù)位 ; 可通過個人計算機機串口設(shè)置時、分 , 設(shè)置時連續(xù)發(fā)送四位十六進(jìn)制數(shù) , 依次為時的高、低位 , 分的高、低位 . 完成后秒自動復(fù)位 . 輔助功能 : 鍵盤共 4 個鍵 , 從左到右依次標(biāo)名為遞增、遞減 , 確認(rèn)修改和設(shè)定 , 用來修改和設(shè)置系統(tǒng)時鐘 . 同時 , 還可以通過串口來修改和設(shè)置系統(tǒng)時鐘 .4結(jié)論系統(tǒng)的功能完全符合設(shè)計任務(wù)的要求 , 經(jīng)過大量的測試數(shù)據(jù)顯示 , 系統(tǒng)的可靠性已經(jīng)完全達(dá)到了實際電子鐘的設(shè)計要求 . 同時系統(tǒng)具有很強的擴展性 : 添加 A D 轉(zhuǎn)換器可更改成數(shù)值儀表 ,而添加 D 轉(zhuǎn)換器則可以設(shè)計成波形發(fā)生器 , 同時擴充串口的功能可以道到很好的計算機控制系統(tǒng) . 系統(tǒng)擴展圖如圖 4.圖 4系統(tǒng)功能擴展原理圖參 考 文 獻(xiàn)1 陳姚節(jié) . 基于串行通信的數(shù)字監(jiān)控系統(tǒng) . 武漢理工大學(xué)學(xué)報 (交通科學(xué)與工程版 ) , 2002, 26 (5): 650 6532 趙鴿 , 陳姚節(jié) . 基于 WDM 設(shè)備驅(qū)動的虛擬儀器的研究與實現(xiàn) . 武漢理工大學(xué)學(xué)報 (交通科學(xué)與工程版 ) , 2002, 26 (6): 811 8143 李廣弟 , 朱月秀 , 王秀山 . 單片機基礎(chǔ) . 北京 : 北京航空航天大學(xué)出版社 , 2001. 200 240D igital C lock D esign Based on SCM and T im e A dap tChen Yaoj ie Da i Zhejun(Com p u ter D ep a rtm en t,W U S T ,W uhan 430081)AbstractIts very conven ien t to u se a SCM to design a digital clock w ith softw are. Bu t the erro r w ill easilycom e ou t w ith the tim e run by softw are. To con trast w ith the real clock a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論