單片機數(shù)字鐘設計論文_第1頁
單片機數(shù)字鐘設計論文_第2頁
單片機數(shù)字鐘設計論文_第3頁
單片機數(shù)字鐘設計論文_第4頁
單片機數(shù)字鐘設計論文_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機數(shù)字鐘設計-論文單片機數(shù)字鐘設計目    錄引言 3單片機數(shù)字鐘設計方案 3第一章    單片機數(shù)字鐘系統(tǒng)組成框圖及工作理 4第二章    模塊電路設計與比較 6第三章  系統(tǒng)原理及理論分析9第四章  各模塊電路 11第五章  系統(tǒng)軟件部分 17第六章  數(shù)字鐘時間校準研究 21結(jié)束語27參考文獻 28設計目標用單片機的定時器實現(xiàn)時,要求日誤差小于30秒;24小時內(nèi)最多允許設置24次打鈴操作;斷電時計時不中斷(用后備電池供電);可用作時鐘,也可用作定時器或延時

2、繼電器。電路裝配與調(diào)試利用protel99se軟件進行印制板設計,并進行裝配,利用單片機仿真工具對設計進行在線仿真,利用編程器進行程序固化。【摘要】 介紹了基于單片機的數(shù)字鐘的設計,詳細討論了它從軟件上實現(xiàn)的過程,重點在時鐘調(diào)整的方式:查詢和中斷的比較,然后,對數(shù)字鐘的穩(wěn)定性和精確性作了相關的討論。在文章的最后,給出了采用中斷方式實現(xiàn)的數(shù)字鐘的源程序。并且對精確性做了分析。  【關鍵字】 單片機,數(shù)字鐘,數(shù)據(jù)緩沖區(qū),中斷,定時,消抖【引言】 在單片機技術日趨成熟的今天,其靈活的硬件電路的設計和軟件的設計,讓單片機得到了廣泛的應用,幾乎是從小的電子產(chǎn)品,到大的工業(yè)控制,單片機都起到了舉

3、足輕重的作用。單片機小的系統(tǒng)結(jié)構幾乎是所有具有可編程硬件的一個縮影,可謂是“麻雀雖小,肝膽俱全”,單片機的學習和研究是對微機系統(tǒng)學習和研究的簡捷途徑。第一章 單片機數(shù)字鐘系統(tǒng)組成框圖及工作原理 本系統(tǒng)的設計電路由實時時鐘模塊、環(huán)境溫度檢測模塊、電網(wǎng)檢測模塊、人機接口模塊、報警模塊等部分組成。其中實時時鐘采用ds12887可實現(xiàn)年月日時分秒等時間信息的采集和鬧鐘功能。溫度檢測模塊由ds18b20集成溫度傳感器對現(xiàn)場環(huán)境溫度進行實時檢測。電網(wǎng)檢測模塊由ad536、icl7135等實現(xiàn)對電網(wǎng)電壓有效值的采樣和頻率的間接測量及電網(wǎng)電壓的欠壓、過壓檢測。人機接口模塊由2×8鍵盤和ca12864

4、a點陣液晶組成,可實現(xiàn)題目要求的時間顯示、鬧鐘設置、環(huán)境溫度測量、電網(wǎng)電壓、電網(wǎng)頻率顯示等功能。報警模塊由報警蜂鳴器和帶音樂芯片的揚聲器等可實現(xiàn)鬧鈴控制和電網(wǎng)電壓的過壓、欠壓報警功能。abstractthe system ,with an at89c55 system as its core ,is implemented mainly for clock part,the measurement of the temperature part,the measurement of the frequency and the virtual value of ac voltage,microc

5、omputer process part and display part.ds12887 is a real time clock chip.ds18b20 is used as a temperature sensor.we use ic ture rms to dc convertor ad536a and a/d convertor icl7135 to measure the virtual value of ac voltage.display part is made of ca12864a.   總體方案比較與論證 方案一:采用 cpld作為主控制器控制外圍電路進行電

6、壓、頻率測量,時鐘控制、溫度測量、鍵盤和led控制、報警控制活性較低,不利于各種功能的擴展,在測電壓時將通過a/d測得的數(shù)值轉(zhuǎn)化為電壓有效值時有一定的困難。 方案二:采用 89c55單片機來實現(xiàn)系統(tǒng)的控制。鍵盤用芯片7289控制,時鐘芯片采用ds12887,溫度傳感器采用ds18b20。市電信號電壓可通過更高精度的ad536a、icl7135等測得,頻率可采用測周期法間接測得。此系統(tǒng)硬件簡潔,將復雜的硬件功能用軟件實現(xiàn),因此系統(tǒng)控制靈活,能很好地滿足本題的基本要求和擴展要求。此方案基本原理框圖如圖1所示。 比較以上兩種方案的優(yōu)缺點,方案二簡潔、靈活、可擴展性好,能完全達到設計要求,故采用第二種

7、方案。717單片機數(shù)字鐘設計第二章  模塊電路設計與比較 21 時鐘方案選擇方案一:因為題目中只要求顯示小時和分鐘,因此可以用門電路組合構成時鐘發(fā)生器,但此方案硬件復雜,穩(wěn)定性低,且不易控制。 方案二:采用帶 ram的時鐘芯片ds12887。該芯片可以進行時分秒的計數(shù),具有100年日歷,可編程接口,還具有報警功能和掉電保存功能,并且可以對其方便的進行程序控制,完全能滿足題目的要求。22 溫度檢測方案選擇 方案一:采用熱電偶或熱敏電阻作感溫元件,但熱電偶需冷端補償,電路設計復雜,熱敏電阻雖然精度較高,但需要標準穩(wěn)定電阻匹配才能使用,而且重復性、可靠性都比較差。 方案二:采用集成溫度傳感

8、器 ds18b20 。該傳感器結(jié)構簡單,不需外接電路,數(shù)據(jù)傳輸采用 one-wire 總線,可用一根 i/o數(shù)據(jù)線即供電又傳輸數(shù)據(jù),在-10 -+85范圍內(nèi)精度為±0.5,完全能滿足題目±1的要求,且分辨率較高,重復性和可靠性好。23 電壓有效值測量方案選擇方案一:采用分段逼近式有效值檢波電路。該方法示值雖然是被測電壓的有效值,但由于放大器動態(tài)范圍的限制,對于被測信號會產(chǎn)生一定的波形誤差,并且硬件電路搭接復雜,且穩(wěn)定性能不好。方案二:采用真有效值轉(zhuǎn)換芯片 ad536和高速a/d芯片icl7135測量市電有效值。將從變壓器引入的交流信號通過ad536轉(zhuǎn)換成直流信號后

9、接入icl7135,利用單片機讀取數(shù)據(jù)后進行相應的幅值變換得到電壓有效值。利用集成電路芯片測量精度高,誤差小、穩(wěn)定性好,硬件電路實現(xiàn)簡單,可減小硬件體積。 24 頻率測量方案選擇 方案一:直接測頻法。把被測頻率信號經(jīng)過脈沖形成電路后加到閘門的一個輸入端,只有在閘門開通時間 t(以秒計)內(nèi),被計數(shù)的脈沖被送到計數(shù)器進行計數(shù)。設計數(shù)器的值為n,由頻率定義式計算得到被測信號頻率為發(fā)fn/t。 方案二:測量周期法。將被測量信號經(jīng)過過零檢測后轉(zhuǎn)換成方波信號,利用單片機查詢兩個上升沿,在此期間根據(jù)晶體振蕩器產(chǎn)生的周期為  的脈沖送計數(shù)器進行計數(shù),設計數(shù)值為n,則得被測量信號的周期值 

10、,然后取其倒數(shù)即為被測量信號的頻率。 經(jīng)分析,采用直接測頻法在測量低頻段信號時的相對測量誤差較大,但在高頻段測量信號的頻率有較高的精度。如果采用測頻法測量低頻段50hz頻率信號,要想提高精確度,勢必會大幅度增加閘門開通時間t,時效性較差。相反,采用測量信號周期然后取其倒數(shù)的方法在低頻段測量時精度很高。因此,本題在測量50hz左右的市電信號頻率時采用方案二。25 電壓過壓、欠壓方案選擇 方案一:采用兩片比較器芯片 lm311對輸入電壓與上下門限值進行比較。根據(jù)lm311的輸出驅(qū)動蜂鳴器報警。本方案對上下門限值精度和穩(wěn)定度的要求較高。方案二:軟件設定比較值。采用軟件編程判斷過、欠壓值,然后通過單片

11、機口線輸出電平驅(qū)動蜂鳴器報警。采用軟件判斷電壓過、欠壓,省掉了硬件搭接,節(jié)省成本。故采用方案二。26 顯示模塊的選擇 方案一:采用數(shù)碼管顯示。數(shù)碼管亮度高、體積小、重量輕,但其顯示信息簡單、有限,在本題目中應用受到很大的限制。 方案二:采用液晶顯示。液晶顯示功耗低,輕便防震。由于本題顯示信息比較復雜,采用液晶顯示界面友好清晰,操作方便,顯示信息豐富。 27 其他設計的考慮 由于單片機接口線有限,我們采用一片 8255擴展口線,做相應的控制。鬧鈴響采用帶音樂芯片的揚聲器,為實現(xiàn)題目中非接觸止鬧功能,我們可以采用接近開關或無線接收發(fā)送模塊通過單片機控制鬧鈴停止。 28總結(jié)方案所以經(jīng)上面的分析,二種

12、方案的各有所長,電子鐘已經(jīng)是一項很成熟的技術,一般不去進行復雜的硬件設計(方案一需要進行硬件設計)或硬件電路設計(方案二需要軟件電路),所以目前用得較多的是方案二。由于我們是進行單片電路設計,按方案二進行設計有利于我們掌握單片機在現(xiàn)在生活中的作用。在今后進行復雜電路設計時能拿來就用。另外,方案二所用的元件易于采購,成本也不高。第三章  系統(tǒng)原理及理論分析31 單片機最小系統(tǒng)組成 單片機系統(tǒng)是整個硬件系統(tǒng)的核心,它即協(xié)調(diào)整機工作,又是數(shù)據(jù)處理器,是軟硬件系統(tǒng)連接的橋梁。它包括:   單片機89c55   鍵盤管理芯片7289   可編程外圍并行接口芯片82

13、55   2×8鍵盤   hm12864液晶模塊 32 頻率測量原理 本系統(tǒng)測量市電信號的頻率,即 50hz左右的頻率信號,屬于低頻段信號頻率測量,基于此實際,我們采用測量輸入信號周期然后取倒數(shù)的方法測量信號的頻率,即測周法,這樣能提高測量的精度,測量信號周期的原理框圖圖2 所示,波形示意圖如圖3所示。  圖 2 信號周期測量原理圖 單片機數(shù)字鐘設計圖 3 頻率測量計數(shù)波形示意圖 33 有效值測量原理 對于交流工頻信號,一般是以有效值進行計量,其計算公式為:  , 其中t為信號周期; 故  為此,我們把電信號的有效值作為我們測量的參數(shù)

14、,具體方法是:將已經(jīng)經(jīng)過電源濾波的市電信號經(jīng)過變壓器后接入真有效值轉(zhuǎn)換芯片 ad536,輸出與有效值相等的直流信號,將其作為高速a/d轉(zhuǎn)換芯片icl7135的輸入,其中,icl7135芯片的基準源如右圖所示,然后利用單片機讀取數(shù)據(jù)并進行 相應的轉(zhuǎn)換運算,從而得到市電信號的有效值。原理性框圖如圖 5 所示  圖 4 有效值測量方框圖 第四章  各模塊電路圖 41 時鐘模塊  圖 5 ds12887 時鐘硬件電路圖42 鬧鈴響及報警模塊 鬧鈴響采用帶音樂芯片的揚聲器,過、欠壓報警采用不同聲音的蜂鳴器完成報警功能。具體電路圖如圖 6所示。  圖 6 鬧鈴及報警

15、電路圖43 高速 a/d轉(zhuǎn)換模塊 我們采用芯片icl7135作為高速a/d轉(zhuǎn)換芯片為轉(zhuǎn)換核心 ,該芯片為  位bcd碼輸出的的cmos集成電路,具有精度高,抗干擾能力強,分辨率能達到二萬分之一,對電源變化穩(wěn)定性高、高輸入阻抗、自動調(diào)零、自動判別極性,性能價格比高。其輸出為4位bcd碼,5根掃描線,1根符號位以及“忙”、“運行/保持”、“過量程”、“欠量程”等輔助信號。完全能滿足題目基本要求和發(fā)揮部分的精度指標。 圖 7 icl7135 高速 a/d 轉(zhuǎn)換原理圖 44 電壓真有效值轉(zhuǎn)換模塊 ad536是單片集成的有效值變換器,具有精度高,可靠性好,轉(zhuǎn)換頻率范圍寬的特點,而且具

16、有分貝輸出功能,采用本芯片完全能滿足題目要求,而且還可以方便的進行擴展。  圖 8 ad536 真有效值轉(zhuǎn)換電路圖45 鍵盤模塊 我們采用 2 × 8 的鍵盤,原理圖如圖 9 所示。  圖 9 鍵盤原理圖46 液晶顯示模塊 hm12864擁有128×64位的顯示存儲器,8位并行數(shù)據(jù)接口,簡單的操作指令,如顯示開關設置,顯示起始行設置,地址指針設置和數(shù)據(jù)讀/寫等指令,低功耗,寬電壓工作。  圖 10 液晶顯示模塊47 單片機最小系統(tǒng) at89c55單片機是低功耗、高性能的片內(nèi)含有20kb閃速存儲器的8位cmos微控制器,存儲器可循環(huán)寫入/擦除10

17、00次,具有128×8位內(nèi)部ram,32條可編程i/o口線,3個定時器/計數(shù)器,具有5個中斷源和2個優(yōu)先級的中斷結(jié)構,可編程全雙工串行通道等功能,因此,我們選用89c55單片機來滿足程序容量大,控制較為復雜的特點,以完成題目的基本要求和發(fā)揮部分的要求。具體原理圖如圖 11 所示。  圖 11 單片機最小系統(tǒng)原理圖單片機數(shù)字鐘設計第五章  系統(tǒng)軟件部分 為實現(xiàn)系統(tǒng)功能,系統(tǒng)軟件共設九個運行狀態(tài)(見圖 12中s1-s9)和一個中斷處理程序(sr)。各部分功能描述如下:  圖 12 軟件整體流程圖 s1:時鐘日期顯示狀態(tài)。   89c55從ds128

18、87循環(huán)讀取時間日期值并顯示。   時間值與鬧鐘設置值比較,若定時到,則進入鬧鈴狀態(tài)( s8)。   從 7135讀取電壓值并與上下限電壓比較,若過壓或欠壓則進入報警狀態(tài)(s9)。s2:時間設置狀態(tài)。進行時間和日期的設置,寫入ds12887中。 s3:溫度顯示狀態(tài)。從ds12b80中讀取溫度值顯示。s4:鬧鐘設置。顯示選擇菜單,可選擇鬧鐘開、鬧鐘開、鬧鐘時間設置。s5:電壓及頻率顯示狀態(tài)。循環(huán)檢測電壓有效值與頻率并顯示。 s6:時制選擇。按1鍵選擇24小時時制,按2鍵選擇12小時時制。 s7:設置鬧鐘時間狀態(tài)。 s8:鬧鈴狀態(tài)。接通音樂芯片s9:報警狀態(tài)。接通過壓或欠壓報警

19、。sr:中斷服務程序。讀取鍵盤按鍵值并根據(jù)系統(tǒng)所處的不同的狀態(tài)設置標志位。 測試方法及結(jié)果 51 測試方法 采用先分別調(diào)試各單元模塊,調(diào)通后再進行整機調(diào)試的方法,以提高調(diào)試效率。 ( 1) 時鐘測試 在帶有單片機的電路板上編程調(diào)試芯片ds12887,使其在液晶上顯示出時分秒,并可以通過鍵盤控制設定時間和鬧鈴開關的時間。利用仿真機調(diào)試成功后通過編程器將程序?qū)懭胄酒姓{(diào)試,調(diào)試結(jié)果顯示,該模塊可以顯示時分秒,可以正常工作。 ( 2) 鬧鐘測試 通過鍵盤控制設定鬧鐘開關和鬧鐘響的時間,并通過單片機程序驅(qū)動音樂電路發(fā)聲。經(jīng)過調(diào)試,鬧鐘功能正常,滿足題目的基本要求。 ( 3) 溫度測試 利用仿真機通過程

20、序讀出溫度傳感器 ds18b20中的溫度數(shù)據(jù),并且進行了定標,通過鍵盤操作切換界面,送到液晶顯示,并與tm6801a溫度表測得的數(shù)值相比較,看是否在誤差允許范圍內(nèi)。在實際測量中,我們發(fā)現(xiàn)ds18b20在低溫時變化比較緩慢,誤差相對較大一些,在室溫時測量比較正常。經(jīng)過測試,溫度顯示正常。 ( 4) 頻率測試 結(jié)合硬件電路通過編寫的程序?qū)⑺腿氲男盘栠M行處理測試,通過鍵盤操作切換界面,將結(jié)果送到液晶顯示??紤]到工頻交流電信號的頻率非常穩(wěn)定,為檢驗我們系統(tǒng)測頻的準確性,我們采用頻率計輸入 40hz60hz的信號進行檢驗。擬交流電壓信號,先用仿真機代替89c52單片機進行模擬調(diào)試,對每一芯片的片選、啟動

21、進行檢測,并對數(shù)據(jù)線和地址線也進行檢測。調(diào)試成功后再將程序?qū)懙絾谓?jīng)過反復調(diào)測,該模塊能在允許誤差范圍內(nèi)正常工作。( 5) 有效值測試 用函數(shù)發(fā)生器輸出 05v的正弦信號電壓作為交流信號,先用數(shù)字萬用表測量電壓有效值,再用設計的電路測量此交流信號,然后求出誤差,反復調(diào)整改進到在誤差允許的范圍內(nèi)。 ( 6)過、欠壓報警測試 通過 tdgc-015/0.5型調(diào)壓變壓器在電路輸入端加入高于242v或低于198v的市電信號,通過軟件設定比較,驅(qū)動過壓蜂鳴器或欠壓蜂鳴器報警。 ( 7)非接觸止鬧測試 通過仿真機將程序運行,我們采用接近開關或無線收發(fā)模塊來控制,看是否能實現(xiàn)此功能。經(jīng)過調(diào)試,該功能模塊正常。

22、 各功能模塊均調(diào)通后,進行整機調(diào)試,其過程如下:將調(diào)好的各功能模塊連接在一起,用函數(shù)信號發(fā)生器模片機中進行調(diào)試。調(diào)試結(jié)果顯示,整個系統(tǒng)能夠正常工作,且能進行更多的功能擴展。 52 測試用的儀器 方正商祺 pc機 yb4360型示波器 ss1792d型可跟蹤直流穩(wěn)定電源 m890c+數(shù)字萬用表 ee1642b型函數(shù)信號發(fā)生器/計數(shù)器 偉福g6w型仿真器 mcs-51編程器 tdgc-015/0.5型調(diào)壓變壓器 tm6801a溫度表53 測試數(shù)據(jù) 溫度測量數(shù)據(jù) 我們選取四個特定溫度點進行測量:0、室溫、體溫和100。將溫度傳感器ds18b20放入分別放入冰水混合物和沸水中測量標定,顯示示數(shù)分別為0

23、和99.1。將傳感器置于手掌中和實驗室環(huán)境中進行測量,顯示值分別為35.6和26.4(空調(diào)設定溫度為27)。 市電頻率測量數(shù)據(jù)(通過信號源產(chǎn)生) 頻率計設定值 /hz  本系統(tǒng)測量值 /hz  測量誤差 /hz 40.01  40.48  0.47 44.08  44.64  0.56 48.01  48.60  0.59 49.00  49.45  0.45 50.00  50.45  0.45 51.00  51.65  0.65 55.00 

24、0;55.70  0.70 57.00  57.71  0.71 60.00  60.74  0.64 市電有效值測量數(shù)據(jù)(通過自耦變壓器產(chǎn)生電壓信號) 數(shù)字萬用表測量值 /v  本系統(tǒng)測量值 /v  測量誤差 /v 234  233  1 230  230  0 224  224  0 222  221  1 220  220  0 218  217  1 212  211  1 20

25、8  208  0 200  200  0 198  197  1 54測量誤差分析及改善措施 整個系統(tǒng)板由手工焊接完成,其余器件在單面板上完成布局和布線,無法避免線路之間與外界的電磁干擾,從而會導致一定誤差。 在頻率測量時,我們采用測周法以提高精確度,并通過軟件算法的合理優(yōu)化,彌補了硬件上的不足,一定程度提高了精確度。55、小結(jié)這款多功能數(shù)字鐘采用了現(xiàn)在廣泛使用用的單片機技術為核心,軟硬件結(jié)合,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,并采用液晶顯示、紅外遙控裝置和電壓報警裝置使人機交互簡便易行。 為了提高數(shù)字鐘的準確性,給于校準。第六

26、章  數(shù)字鐘設技及時間校準用單片機來設計數(shù)字鐘,軟件實現(xiàn)各種功能比較方便。但因軟件的執(zhí)行需要一定的時間,所以就會出現(xiàn)誤差。對比實際的時鐘,查找出誤差的來源,并作出調(diào)整誤差的方法,使得誤差近可能的小,使得系統(tǒng)可以達到實際數(shù)字鐘的允許誤差范圍內(nèi)61系統(tǒng)原理分析系統(tǒng)設計中用到 89 c52 單片機的部分功能:包括內(nèi)部定時器,鍵盤擴展,程序中斷, 串口通信等。用一個四聯(lián)體的共陰極八段顯示器,可通過一個輸入輸出口作為顯示器數(shù)據(jù)發(fā)送端;另一個輸入輸出口的四位作為顯示器各位的片選信號,另四位作為鍵盤擴展口使用。采用一個頻率為 11.0592 mhz 的晶振構成時鐘電路。系統(tǒng)原理圖如圖 13 :&#

27、160;圖1 3系統(tǒng)原理圖6,2軟件實現(xiàn)與流程(1) 主程序由于系統(tǒng)的主要功能都是有程序中斷來完成的,主程序基本上沒什么事可做,但因鍵盤掃描是通過程序查詢的方式實現(xiàn)的,所以主程序只循環(huán)掃描鍵盤。主程序流程圖如圖14所示:(2)定時和串口程序定時和串口都是中斷響應程序,它們的調(diào)用都是系統(tǒng)執(zhí)行過程中采用中斷事件觸發(fā)產(chǎn)生(中斷部分處理如圖14所示)。定時中斷是周期性發(fā)生的,而串口中斷則須串口有數(shù)據(jù)傳輸才發(fā)生中斷。定時程序是整個系統(tǒng)的核心代碼,這段代碼不光涉及到顯示,還涉及到系統(tǒng)計時, 這段代碼的優(yōu)劣關系到整個系統(tǒng)的可靠性,后面還將詳細討論。為初步減小系統(tǒng)誤差, 置定時初值一定要在程序開始就設置。單片

28、機數(shù)字鐘設計圖14 主程序流程 圖14 中斷程序流程圖6.3 數(shù)據(jù)的顯示與刷新更新顯示器涉及到兩個操作:發(fā)數(shù)據(jù)和改片選信號。但實踐發(fā)現(xiàn),代碼中無論是先改片選信號還是先發(fā)數(shù)據(jù)信號,都會出現(xiàn)重影(即相鄰兩位顯示差不多)這也是動態(tài)掃描引起的。實踐先該片選,則前一位的數(shù)據(jù)會在下一位顯示一段時間;先發(fā)數(shù)據(jù),則后一位的數(shù)據(jù)會在前一位顯示一段時間。因而出現(xiàn)重影。解決這個問題的辦法是先進行一個消影操作,然后再發(fā)片選,最后發(fā)數(shù)據(jù)。這樣就很好地解決了重影問題。這樣做的關鍵在于,在極短的一段時間內(nèi)讓顯示器都不亮,等一切準備工作都做好了以后再發(fā)數(shù)據(jù),只要顯示頻率足夠快,是看不出顯示器有閃爍的(程序用定時中斷頻率作為顯

29、示更新頻率,在表 1 中,只當更新率?00 赫茲時,才發(fā)現(xiàn)顯示器有閃爍)。這段顯示程序代碼如下:      p1=0 x00;        / 消影         p2=選擇選擇;/ 發(fā)片選信號      codetmp=acode echoarray選擇;      如果 (選擇 =2&&

30、;mod=0&&dotflag)/ 判斷是否顯示 "."       codetmp|=0 x80;           p1=codetmp;         / 發(fā)數(shù)據(jù)      選擇=+選擇%4;  / 片選計數(shù)器下移6.4 鍵盤響應程序鍵盤處理程序流程相對

31、簡單,只是簡單的判鍵與處理。這里不再給出流程圖。所謂鍵盤消抖就是一次按建的多次響應問題。當然,一般一次按建只須響應一次,但有的時候需要多次響應,如系統(tǒng)進入修改模式,數(shù)字的增減。當出現(xiàn)這種問題時,用戶的一次擊鍵是作為一次還是多次處理,必須有一個標準。程序中我用到了一個標志位,相當于中斷系統(tǒng)的中斷標志。當用戶按下鍵時,標志清零,松開鍵時,標志恢復;鍵按下超過一定時間(靠一掃描計數(shù)器判定)后,恢復標志,則經(jīng)過一定的時間延遲(也靠一掃描計數(shù)器判定)可以響應一次按鍵(即一次按鍵的多次響應)。而事實上,鍵盤響應程序就是一個事件觸發(fā)器,鍵盤的每一個狀態(tài)(按下,松開, 點擊)都可能引發(fā)一段響應程序(如:重新設

32、定鍵按下 => 準備復位;松開=> 系統(tǒng)復位)。這里的時間延遲靠的是指令計數(shù),由于受硬件中斷等不確定因素影響,這個延遲一般不準確,但通過實踐測試,可以找到一些合適的值。65系統(tǒng)性能測試與功能說明(1)定時計數(shù)器的初始值設置公式推導系統(tǒng)中所選用的晶振的頻率為fosc,則機器周期為:公式1:  2 設定時器要求的中斷頻率為k,計數(shù)器位數(shù)為n,則定時計數(shù)器的初值x設置有如下公式: 2 。于是:原始公:  而實驗測得的數(shù)據(jù)顯示,這個公式所得的結(jié)果并不可靠:(下表中的所有數(shù)據(jù)都是在計數(shù)器初始值嚴格按照原始公式給出的條件下測得,以個人計算機機系統(tǒng)時鐘為標準)。從表 1 中的

33、數(shù)據(jù)可知,嚴格按照原始公式得出的計數(shù)初值是存在極大誤差的,這個誤差總使系統(tǒng)時間變慢,而且,系統(tǒng)時間的誤差值隨著每秒中斷次數(shù)的增多而增大,隨計時總長的增長而增大,并且總是成比例(在誤差允許的范圍內(nèi))。這就是說,系統(tǒng)的誤差跟每秒中斷次數(shù)和個人計算機標準時長的乘積(即中斷總次數(shù))成正比。也就是說,每次中斷計時的時間誤差是一個常數(shù)。誤差來源分析不考慮晶振等固件的誤差,則系統(tǒng)機器周期可以由公式 1 準確給出,因而系統(tǒng)誤差不可能來自于硬件,而應該主要來自于軟件方面。系統(tǒng)每次調(diào)用定時中斷程序的過程中,硬件并沒有自動進入下一個定時周期,而是在調(diào)用中斷程序以后由軟件置數(shù)來實現(xiàn)的。而在程序表1 系統(tǒng)時間校正測試數(shù)

34、據(jù) 調(diào)用過程中,堆棧建立,參數(shù)傳遞等都是需要耗時的,而這些時間都被無形中加到了定時長度中去。所以,使得每次定時長度都大于理論推導值,在宏觀上表現(xiàn)出來就是系統(tǒng)比理論計算出來的結(jié)果變慢了(這于表格 1 所得的結(jié)論恰好一致)。另外,由于系統(tǒng)每次調(diào)用中斷處理程序所執(zhí)行的操作都是相同的,也就是說,系統(tǒng)每次定時的時間誤差應該是一個常數(shù)(這也恰好跟實驗數(shù)據(jù)相吻合)。由上面的數(shù)據(jù)和分析可知,原始公式應該修改為:公式2: 則由表格 1 ,關于的計算公式如下:公式3: 由表格 1 數(shù)據(jù),實際中要求 k 最小,而又不影響顯示效果,才能使誤差越小,故實測中取 k=160 。根據(jù)表格一計算得 20

35、(所用晶振頻率為 11.0592 mhz )。按表 1 的實驗方法,得表 2 :表2 參數(shù)優(yōu)化后的計時測試數(shù)據(jù) 這些數(shù)據(jù)較表 1 已有很大準確性,但與實際應用還有一定差距。末兩行是根據(jù)前面參數(shù)規(guī)律稍做改動得到的, 與公式 2 有一定出入, 但與個人計算機系統(tǒng)標準時間已經(jīng)相當接近。由于表 1 的數(shù)據(jù)本身是肉眼估出來的,本身就帶有很大的誤差,實際運用可用精密儀器得到表 1 數(shù)據(jù),則系統(tǒng)參數(shù)可以更進一步接近實用值。(2)系統(tǒng)功能與操作說明主要功能:二十四進制時間顯示 ( 時、分), 秒以"."的閃爍表示;電子跑表計數(shù)功能;可通過按鍵修改,顯示時,分,秒,復位;可通過個人計算機機串口設置時,分,設置時連續(xù)發(fā)送四位十六進制數(shù),

溫馨提示

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

評論

0/150

提交評論