數(shù)字式鐘表的課設(shè)說明書 (1)_第1頁
數(shù)字式鐘表的課設(shè)說明書 (1)_第2頁
數(shù)字式鐘表的課設(shè)說明書 (1)_第3頁
數(shù)字式鐘表的課設(shè)說明書 (1)_第4頁
數(shù)字式鐘表的課設(shè)說明書 (1)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理及應(yīng)用課程設(shè)計說明書設(shè)計題目:數(shù)字式鐘表的設(shè)計學(xué) 院 自動化與信息工程學(xué)院 專 業(yè) 電氣工程及其自動化 班 級 電氣111 姓 名 王盟光 學(xué) 號 3110421002 指導(dǎo)教師 李好文 副教授 同組同學(xué) 歐陽可 姚曉迪 李勇超 張璽 朱茂舉 周元立 2013 年 秋 季 學(xué)期起止時間:2013 年12月21日至2013年12月30日課程設(shè)計任務(wù):數(shù)字式鐘表的設(shè)計一、設(shè)計目的通過數(shù)字頻率計的設(shè)計,使同學(xué)們進一步掌握:(1) 匯編語言程序的設(shè)計和調(diào)試;(2) 信號頻率的數(shù)字測量方法;(3) 定時計數(shù)器8253的基本工作原理和應(yīng)用;(4) 微機基本應(yīng)用系統(tǒng)的設(shè)計方法;二、設(shè)計內(nèi)容 利用微機

2、原理實驗裝置,設(shè)計并實現(xiàn)一個信號頻率測試系統(tǒng),要求頻率測量范圍不小于5Hz50kHz,測量誤差不大于1Hz,并將測得的頻率顯示在LED數(shù)碼顯示器上。三、設(shè)計要求(1) 針對實驗裝置已有條件,設(shè)計頻率測量原理線路;(2) 編制相應(yīng)的測試軟件,實現(xiàn)頻率測量;(3) 實際上機調(diào)試,完成綜合試驗;(4) 編寫設(shè)計說明書(含原理圖,程序及說明,實驗方法,過程及結(jié)果)。評分:學(xué)習(xí)態(tài)度(占10)基礎(chǔ)知識掌握情況(占10)課設(shè)完成情況(占30)課設(shè)創(chuàng)新(占10)答辯(占10)設(shè)計報告(占20)考勤(占10)總評成績:指導(dǎo)教師:目 錄一、系統(tǒng)功能要求分析1二、方案設(shè)計及其說明1三、原理線路設(shè)計21 原理線路2

3、工作原理說明3 操作時序分析4 特點說明四、程序設(shè)計51 程序結(jié)構(gòu)及流程2 程序算法分析3 關(guān)鍵程序段說明4 源程序清單五、系統(tǒng)調(diào)試及結(jié)論181 調(diào)試方法2 重點問題及解決方法3 運行結(jié)果及結(jié)論六、設(shè)計體會19參考文獻201 系統(tǒng)要求功能分析 本設(shè)計利用試驗箱提供的8086,8253,8259及8279芯片,利用8位數(shù)碼管顯示完成對時間的顯示,顯示格式為HH:MM:SS,利用試驗箱提供的矩陣鍵盤,實現(xiàn)對時間的調(diào)整設(shè)定以及其他附加功能。 二.方案設(shè)計及其說明 首先利用8253計數(shù)/定時器作為中斷發(fā)生信號,利用8253計數(shù)器0與計數(shù)器1級聯(lián),采用方式0,在一秒計數(shù)結(jié)束后在OUT1口產(chǎn)生中斷信號。然

4、后利用8259可編程中斷控制器,將8253 OUT1口輸出的信號接到8259的時鐘中斷信號IR0口,讓其產(chǎn)生中斷,在中斷子程序中,對設(shè)計的變量s,m,h進行相應(yīng)處理,在一秒鐘一次的中斷,s,m,h便可實現(xiàn)時鐘的時分秒形式變化。然后利用8279可編程設(shè)置型鍵盤/顯示器作為數(shù)碼管與鍵盤的輸入輸出控制器,將s,m,h信號相應(yīng)的有8位數(shù)碼管顯示出來,最終顯示格式為HH-MM-SS。調(diào)時環(huán)節(jié)中,利用矩陣鍵盤產(chǎn)生的信號有8279送cpu判斷,完成相應(yīng)的處理,先進入調(diào)時狀態(tài),然后有鍵盤給出的不同信號所代表的不同數(shù)值完成對相應(yīng)位的時間調(diào)整。3 原理電路設(shè)計 1.原理線路2. 工作原理說明(1)定時計數(shù) 825

5、3: 8253是可編程定時/計數(shù)器,有三個獨立的十六位計數(shù)器。本設(shè)計采用計數(shù)器0與計數(shù)器1級聯(lián),初值均送1000,則定時時間=1000*1000*(1/1000000)=1s,然后采用方式0(計數(shù)結(jié)束產(chǎn)生中斷),將OUT1輸出的中斷信號送給8259 IR0口,讓其向CPU申請中斷。(2) 中斷管理部分 8259: 8259A是可編程中斷控制器,本設(shè)計中8259A用于產(chǎn)生中斷信號,向CPU申請中斷,然后去修改秒,時,分的變化。本設(shè)計中只需要IR0產(chǎn)生中斷,其他位屏蔽,中斷矢量寫入ICW4,其地址為20H。(3) 鍵盤顯示控制 8279: 8279是一種通用的可編程的鍵盤、顯示接口器件,本次采用矩

6、陣鍵盤掃描,然后用8位數(shù)碼管顯示,本設(shè)計鍵盤掃描程序和顯示程序已設(shè)置為庫函數(shù)程序,鍵值存于AL中。實驗中只需將E5區(qū)和G5區(qū)A,B,C,D對應(yīng)相連即可。3. 操作時序分析 上電后時間自動復(fù)位為23-58-00,需要調(diào)時,按下A1,時間復(fù)位,按下A2,時加一,按下A3,分加一4. 特點說明 本設(shè)計特點在于調(diào)時時,可以使相應(yīng)位一步到位跳到要跳的時間,相比其他相應(yīng)位加減調(diào)時更加快速,但是卻增加了按鍵數(shù)量。4 程序設(shè)計1.程序結(jié)構(gòu)及流程 開始 (1)主程序8253,8259初始化寫中斷矢量請顯示緩沖區(qū) 清時、分、秒及中斷計數(shù)單元開中斷 顯示 結(jié)束(2)中斷服務(wù)子程序 開始保護現(xiàn)場AX,BX壓入堆棧 C

7、ounters+Counters+=60? 否 是Counterm+Counters清零 Counterm+=60?? 否 Counterh+Counterm清零 是Counterh+=24? 否 是Counterh清零 顯示恢復(fù)現(xiàn)場AX,DX出棧 返回 開始(3)調(diào)時K1,K2,K3按下? 消除抖動K1按下? 否K2按下? 復(fù)位 是 否K3按下? 是 否 分+ 時+ 是 結(jié)束2. 程序算法分析 本設(shè)計利用中斷子程序中實現(xiàn)時間進制顯示,中斷次數(shù)作為基本單位秒,到60秒清零使分加一,分到60清零,時加一,時到24清零,如此循環(huán),便可實現(xiàn)始終顯示。若有調(diào)時鍵按下,則進入調(diào)時程序,K1復(fù)位,K2時加

8、一,K3分加一。 3.關(guān)鍵程序段說明TimeToBuffer 將時分秒十六進制轉(zhuǎn)化成十進制BCD的可顯示形式 Display_LED 數(shù)碼管顯示程序 Timer0Int: 中斷服務(wù)程序 Init8253 8253初始化 Init8259 8259初始化 WriIntver 寫中斷矢量 4.源程序清單 .MODELTINYEXTRNDisplay8:NEAR, GetKeyA:NEAR, GetKeyB:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCOM_ADDR EQU 0E003HT0_ADDR EQU 0E000HT1_ADDR EQU 0E001H.STA

9、CK 200.DATAcounters1DB0countersDB0countermDB0counterhDB0bufferDB8 DUP(0)buffer1DB8 DUP(0)bNeedDisplayDB0numberDB0bFlashDB0.CODESTART: MOV AX,DATA MOV DS,AX MOVES,AX NOP movcounters ,0 movcounterm,59 movcounterh,23MOVbNeedDisplay,1CALLInit8253CALLInit8259CALLWriIntverSTIstart1:CALLGetKeyAJNBstart2CMP

10、AL,0FHJNZstart2CALLSetTimestart2:CMPbNeedDisplay,0JZstart1CALLDisplay_LEDMOVbNeedDisplay,0start3:JMPstart1SetTimePROCNEARLEASI,buffer1CALLTimeToBufferMOVnumber,0Key:CMPbFlash,0JZKey2LEASI,buffer1LEADI,bufferMOVCX,8REPMOVSBCMPcounters1,0JNZFLASHMOVBL,numberNOTBLANDBX,07HLEASI,bufferMOVBYTE PTR SI+BX,

11、10HFLASH:LEASI,bufferCALLDisplay8MOVbFlash,0Key2:CALLGetKeyAJNBKeyCMPAL,0EHJNZKey1JMPExitKey1:CMPAL,0FHJZSetTime8SetTime1:CMPAL,10JNBKeyCMPnumber,0JNZSetTime2CMPAL,3JNBKeyMOVbuffer1 + 7,ALJMPSetTime7SetTime2:CMPnumber,1JNZSetTime3CMPbuffer1 + 7,1JZSetTime2_1CMPAL,4JNBKeySetTime2_1:MOVbuffer1 + 6,ALI

12、NCnumberJMPSetTime7SetTime3:CMPnumber,3JNZSetTime4CMPAL,6JNBKeyMOVbuffer1 + 4,ALJMPSetTime7SetTime4:CMPnumber,4JNZSetTime5MOVbuffer1 + 3,ALINCnumberJMPSetTime7SetTime5:CMPnumber,6JNZSetTime6CMPAL,6JBSetTime5_1JMPKeySetTime5_1:MOVbuffer1 + 1,ALJMPSetTime7SetTime6:MOVbuffer1,ALSetTime7:INCnumberCMPnum

13、ber,8JNBSetTime8MOVbFlash,1JMPKeySetTime8:MOVAL,buffer1 + 1MOVBL,10MULBLADDAL,buffer1MOVcounters,ALMOVAL,buffer1 + 4MULBLADDAL,buffer1 + 3MOVcounterm,ALMOVAL,buffer1 + 7MULBLADDAL,buffer1 + 6MOVcounterh,ALJMPExitExit:RETSetTimeENDP;hour min sec轉(zhuǎn)化成可顯示格式TimeToBufferPROCNEARMOVAL,countersXORAH,AHMOVBL,

14、10DIVBLMOVSI,AHMOVSI + 1,ALMOVBYTE PTR SI + 2,11HMOVAL,countermXORAH,AHDIVBLMOVSI + 3,AHbMOVSI + 4,ALMOVBYTE PTR SI + 5,11HMOVAL,counterhXORAH,AHDIVBLMOVSI + 6,AHMOVSI + 7,ALRETTimeToBufferENDP;顯示時分秒Display_LEDPROCNEARLEASI,bufferCALLTimeToBufferLEASI,bufferCALLDisplay8RETDisplay_LEDENDP;0.5s產(chǎn)生一次中斷T

15、imer0Int:PUSHAXPUSHDXMOVbFlash,1INCcounters1CMPcounters1,2JNZTimer0Int1MOVbNeedDisplay,1MOVcounters1,0INCcountersCMPcounters,60JNZTimer0Int1MOVcounters,0INCcountermCMPcounterm,60JNZTimer0Int1MOVcounterm,0INCcounterhCMPcounterh,24JNZTimer0Int1MOVcounterh,0Timer0Int1:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOP

16、DXPOPAXIRETInit8253 PROC NEAR MOV DX,COM_ADDR MOV AL,00110101B OUT DX,AL MOV DX,T0_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV DX,COM_ADDR MOV AL,77H OUT DX,AL MOV DX,T1_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,ALInit8253 ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOV

17、AL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FEHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,Timer0IntSTOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPENDSTART5、 系統(tǒng)調(diào)試及結(jié)論 1. 調(diào)試方法 分模塊調(diào)試。先讓8253產(chǎn)生1HZ方波,用邏輯燈測試至成功。然后用撥碼開關(guān)輸出中斷信號送入入中斷控制器8259,看中斷能否產(chǎn)生,記錄中斷次數(shù)送數(shù)碼管顯示,能顯示,則中斷申請運行正常,且數(shù)碼管顯示正常,然后將8253輸

18、出的1HZ脈沖信號代替撥碼開關(guān)信號送入8259,看中斷次數(shù)統(tǒng)計是否正常,至正常后,除按鍵外,硬件調(diào)試完成。然后修改中斷服務(wù)子程序,調(diào)整中斷次數(shù)為時,分,秒數(shù)據(jù),送數(shù)碼管顯示,至此時鐘顯示調(diào)試完成。然后加入按鍵控制,由鍵值判斷依次做時分秒的調(diào)整,至達到自己想要的結(jié)果。 2. 重點問題及解決方法 (1)程序中使用短跳轉(zhuǎn)JB,JNB跳轉(zhuǎn)距離過大至產(chǎn)生錯誤,可將其做以下修改即可,加長跳轉(zhuǎn)CMP JB LL *改為JB LL1 JMP LL2 LL1:JMP LL LL2:* (2)時間顯示為十六進制形式 中斷次數(shù)計數(shù)顯示為十六進制,須將其用DAA做BCD調(diào)整,分離開高地 位,然后送數(shù)碼管顯示。 3. 運行結(jié)果及結(jié)論結(jié)果:時間顯示正常且可以實現(xiàn)調(diào)時功能,顯示格式HH:MM:SS。結(jié)論:該程序可以實現(xiàn)時間的顯示和調(diào)整,實驗成功。6、 設(shè)計體會 兩周的課程設(shè)計結(jié)束了,在這次微機原理課程設(shè)計中,我不僅對自己所學(xué)的相關(guān)知識有了進一步鞏固,同時,也提高了自己的動手實踐能力,還有團隊

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論