微機原理課程設計-電子鐘_第1頁
微機原理課程設計-電子鐘_第2頁
微機原理課程設計-電子鐘_第3頁
微機原理課程設計-電子鐘_第4頁
微機原理課程設計-電子鐘_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE4PAGE3摘要微機控制即微型計算機原理控制。是集CPU,RAM,ROM,定時,計數和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產業(yè)和工業(yè)自動化上。微型計算機原理控制應用技術飛速發(fā)展,縱觀我們現在生活的各個領域,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網絡通訊與數據傳輸,到工業(yè)自動化過程的實時控制和數據處理,以及我們生活中廣泛使用的各種智能IC卡,電子寵物等,這些都離不開微型計算機原理控制。我們組本次設計的題目是簡單電子鐘程序設計,用到了定時芯片8254,中斷控制器8259和可編程并行芯片8255。在編輯1毫秒定時程序時,用到了中斷控制器8259。此程序主要由四部分組成:第一部分為最主要的部分定義顯示界面;第二部分為利用延時程序,并將調用的二進制表示的時間數轉換成ASCII碼,并將時間數存入內存區(qū);第三部分將存在系統內存區(qū)的時間數用七段數碼管顯示出來;第四部分利用循環(huán)程序分別對秒個位、秒十位、分個位、分十位與相應的規(guī)定值進行比較,結合延時程序來實現電子鐘數字的跳變,從而形成走時準確的電子鐘。該程序實現了準確顯示秒和分,讀數準確,走時精準。此電子鐘能準確的從0分0秒走時到59分59秒,然后能自動回復到0分0秒循環(huán)走時。關鍵詞:可編程并行芯片8255定時芯片8254中斷控制器8259七段數碼顯示管延時計數比較定時中斷1設計任務描述1.1設計題目簡單電子鐘設計1.2設計內容利用微機原理試驗箱的發(fā)光數碼管顯示單元,把時間顯示在LED數碼管上。1.2.1通過課程設計使學生更進一步掌握微機原理及應用課程的有關知識,提高應用微機解決問題的能力,加深對微機應用的理解。通過查閱資料,結合所學知識進行軟、硬件的設計,使學生初步掌握應用微機解決問題的步驟及方法。為以后學生結合專業(yè)從事微機應用設計奠定基礎1.2.2設計要求利用8254定時器設計一個具有分、秒顯示的電子時鐘,并定義一個啟動鍵,當按下該鍵時時鐘從當前設定值(可在顯示,緩沖區(qū)中予置)開始走時。利用微機原理試驗箱的發(fā)光數碼管顯示單元,把時間顯示在LED數碼管上?;疽螅?1)走時準確。(2)顯示無誤。1.2.3設計發(fā)揮(1)延時(2)顯示小時1.3設計環(huán)境與器材(1)PC微機一臺用于對程序的編譯測試等,同時還需要對實驗設備進行控制,提供整個程序的運行平臺,并且收集和釋放硬件信號,實現程序功能。(2)微機原理實驗箱一臺此設備必須能提供8254、8255、8259和數碼管等必要芯片。并且能通過接受PC機傳來的信息,顯示出相應的功能。以支持電子時鐘的實現。(3)導線若干條用于電路和芯片之間的連接。2設計思路電子鐘的總體設計原理是:首先利用定時芯片8254的定時作用定時計數,在給定的時間內逐漸變?yōu)?時,就會發(fā)出一個中斷信號,8259中斷器接到此中斷信號就會調用MIR7時間顯示程序,執(zhí)行此程序后8255就會工作,把接到的二進制時間碼轉換成ASCII碼在四個碼管上顯示時間。具體做法是為了實現精確走時,顯示分秒。我們先在數據段開辟一顯示緩沖區(qū),用來存儲系統時間,初始化我們所要應用的芯片8254,8255,8259后,允許中斷信號輸入,主程序開始。為了顯示分秒,并被我們識別,先調用DIS程序,實現片選的功能。為了得到良好的顯示效果,本程序調用了一段精確的延時程序沒,使各位在時間顯示上有短暫的間隔,延時程序要盡量接近1秒,但又不能超過一秒。為了實現會跳動的電子鐘,我們調用了子程序clear的清屏功能,不斷以刷新的方式來獲取時間,形成會跳動的電子鐘。同時,由于8254定時器的分頻功能,產生中斷信號,8259中斷器就會調用MIR7時間顯示程序,實現位選,最后通過LED數碼管顯示出來,時間刷新,再顯示,如此循環(huán),就形成了精確走時的電子鐘。3主要元器件介紹3.18254簡介8254具有3個獨立的16位計數器,6種不同的工作方式。計數寄存器用來寄存計數初值,計數工作單元為16位減1計數器,它的初值便是計數寄存器內容,計數單元對CLK脈沖計數,每出現一個CLK脈沖,計數器減1,當減為零時,通過OUT輸出指示信號表明計數單元已為零。當作為定時器工作時,每當計數單元為零時,計數寄存器內容會自動重新裝入計數單元,而且CLK輸入是均勻的脈沖序列,于是OUT輸出頻率是降低了的(相對于CLK信號頻率)脈沖序列。當作為計數器工作時,表明只關心在CLK端出現(代表事件)的脈沖個數,當CLK端出現了規(guī)定個數的脈沖時,OUT輸出一個脈沖。3.1.18254引腳功能圖3.3.1內部結構框圖和引腳圖上圖是8254的內部結構框圖和引腳圖,它是由與CPU的接口、內部控制電路和三個計數器組成。本次設計主要利用8254產生1ms的方波,其與總線相連接的引線主要是:D0~D7雙向數據線,用以傳送數據和控制字。這里分別與XD0~XD7相連接。CS輸入信號,低電平有效,當它有效時才能選中該定時器芯片,實現對它的讀或寫,這里與系統IOY3相連接。RD讀控制信號,低電平有效,與系統總線IOR#相連接。WR寫控制信號,低電平有效,與系統總線IOW#相連接。A0、A1為8254的內部計數器和一個控制寄存器的編碼選擇信號,其功能如下:A1A0選擇00計數器001計數器110計數器211控制寄存器CLK0是計數器的時鐘輸入端。本次設計的時鐘為1MHZ,計數器對此時鐘信號進行計數。GATE0門控信號,即計數器的控制輸入信號,用來控制計數器的工作,這里使其為高電平,直接接系統5V。OUT計數器輸出信號,用來產生不同方式工作時的輸出波形,本次設計的1ms方波由此輸出。3.1.28254的工作方式8254有6種方式工作,由于只用來產生方波,所以使其工作在方式3(方波發(fā)生器),在此方式下,GATA信號為低電平時,強迫OUT輸出高電平,當GATA主高電平時,OUT輸出時稱方波。(1)方式0:計數到0結束輸出正躍變信號方式。(2)方式1:硬件可重觸發(fā)單穩(wěn)方式。(3)方式2:頻率發(fā)生器方式。(4)方式3:方波發(fā)生器。(5)方式4:軟件觸發(fā)選通方式。(6)方式5:硬件觸發(fā)選通方式。3.1.38354內部控制字8254的控制字有兩個:一個用來設置計數器的工作方式,稱為方式控制字;另一個用來設置讀回命令,稱為讀回控制字。這兩個控制字共用一個地址,由標識位來區(qū)分。當讀回控制字的D4位為0時,由該讀回控制字D1~D2位指定的計數器的狀態(tài)寄存器內容將被鎖存到狀態(tài)寄存器中。狀態(tài)字格式如圖6.3.2所示:圖3.3.28254狀態(tài)字格式4源程序清單及注釋MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQU0604HMY8255_MODEEQU0606HA8254EQU06C0H;宏定義B8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACK DW32DUP(?);設置段,開辟一個內存空間SSTACKENDSDATASEGMENTDTABLE DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB7FH,6FH,77H,7CH,39H,5EH,79H,71HMSEC DW0;定義數據段SEC DB0MIN DB0DATAENDSCODE SEGMENT;定義代碼段 ASSUMECS:CODE,DS:DATA,SS:SSTACKSTART:PUSHDS;入棧代碼段 MOVAX,0000H MOVDS,AX MOVAX,OFFSETMIR7 ;取中斷入口地址 MOVSI,003CH ;中斷矢量地址 MOV[SI],AX ;填IRQ7的偏移矢量確定地址 MOVAX,CS ;段地址 MOVSI,003EH MOV[SI],AX ;填IRQ7的段地址矢量 CLI;清除中斷標志 POPDS;出棧 ;初始化主片8255 MOVDX,MY8255_MODEMOVAL,80HOUTDX ;初始化主片8254 MOVDX,CON8254MOVAL,36HOUTDXMOVDX,A8254MOVAL,0E8HOUTDXMOVAL,03HOUTDX ;初始化主片8259 MOVAL,11H OUT20H,AL ;ICW1 MOVAL,08H OUT21H,AL ;ICW2 MOVAL,04H OUT21H,AL ;ICW3 MOVAL,01H OUT21H,AL ;ICW4 MOVAL,6FH ;OCW1 OUT21H,AL STI;置中斷標志位IF MOVAX,DATA;數據傳給AXMOVDS,AX;再把AX中心數據送入段DS中 MOVSI,3000H;SI中的值設為3000H MOVAL,00H;把AL清0 MOV[SI],AL;把地址為3000H的空間清0給DEL初始化 MOV[SI+1],AL;把地址為3001H的空間清0 MOV[SI+2],AL;把地址為3002H的空間清0 MOV[SI+3],AL;把地址為3003H的空間清0 MOVDI,3003HBEGIN::CALLDIS;調用子程序DIS CALLCLEAR;調子程序CLEAR JMPBEGIN;無條件跳到BEGINMIR7:STI;置中斷標志位IF PUSHAX PUSHSI MOVAX,MSEC;毫秒內容0給AX,并讓其在AX中自增, INCAX然后再傳回到毫秒中 MOVMSEC,AXCMPAX,2000AX中的數經過自增后變化了,用這個 JBMRET數與2000比較,如果低于2000跳到MRETMOVAX,0 MOVMSEC,AX MOVAL,SEC ADDAL,1 DAA MOVSEC,AL CMPAL,60H JBMTODIS MOVAL,0 MOVSEC,AL MOVAL,MIN ADDAL,1 DAA MOVMIN,ALCMPAL,60HJNZMTODISMOVAL,0MOVMIN,ALMTODIS:MOVAL,SEC MOVAH,AL MOVSI,3000H ANDAL,0FH MOV[SI],AL RORAH,1 RORAH,1 RORAH,1 RORAH,1 ANDAH,0FH MOV[SI+1],AH MOVAL,MIN MOVAL,MIN MOVAH,AL ANDAL,0FH MOV[SI+2],AL RORAH,1 RORAH,1 RORAH,1 RORAH,1 ANDAH,0FH MOV[SI+3],AH MRET:MOVAL,20H OUT20H,AL ;中斷結束命令 POPSI POPAX IRETCLEAR::MOVDX,MY8255_BMOVAL,00H把00H寫入8255的B口,使B口停止工作OUTDX,RETDIS:PUSHAX;AX內容存在棧中 MOVSI,3000H MOVDL,0F7H MOVAL,DLAGAIN:PUSHDX;內容入棧保存MOVDX,MY8255_A把AL內容OF7H寫入A口中OUTDXMOVAL,[SI]MOVBX,OFFSETDTABLEANDAX,00FFHADDBX,AX MOVAL,[BX]MOVDX,MY8255_B把數據傳到A口,再經過B口傳出接DELOUTDX,AL段顯示器CALLDALLY INCSIPOPDXMOVAL,DLTESTAL,01HJZOUT1 RORAL,1;循環(huán)右移MOVDL,AL JMPAGAINOUT1::POPAX RETDALLY:PUSHCX;延時過程MOVCX,000FHT1: MOVAX,009FHT2: DECAXJNZT2LOOPT1POPCXRETCODEENDS;程序結束ENDSTART5設計原理流程圖6實際硬件電路接線圖系統的連線圖主要由五個部分構成。8259中斷控制器、8254可編程時間間隔定時器、8255并口控制器、鍵盤及數碼管顯示單元、開關及LED顯示單元構成。如下圖所示:芯片8254系統總線芯片8255DEL數碼管D0PB0D1PB1D2PB2D3PB3D4PB4D5PB5D6PB6D7PB7WRRDPA3CSPA2A0PA1A1PA0ABCDEFGHX1X2X3X4XD0XD1XD2XD3XD4XD5XD6XD7IOW#WOR#IOY3IOY0XA1XA2PCLKMIR7+5VD0D1D2D3D4D5D6D7WRRDCSA0A1CLK0OUT0GATE0設計總結為期一周的微機原理課程設計在緊張的期末復習期間匆忙的結束了,時間雖然很短暫,但是我卻收獲了不少。之前大半個學期的學習都是些理論知識,這次的課程設計才使我對微機原理的應用有了一次真正的感悟。在本次設計的時候,我們已經學完了《微型計算機原理及應用》這本教材,所以對于微機原理的一些基礎知識也有所掌握,但這離一個完整設計的距離還有很大的一步。這次課設的題目是簡單電子鐘課程設計,為了更好的完成這次課程設計,我去圖書館查閱了很多相關資料,并對課本進行了一次重新的學習,這一切讓我對微機原理知識有了進一步的認識,并豐富了我的相關知識。我真的很慶幸我有機會著手設計這么一個題目,它所應用到的知識覆蓋面很廣,所以本次課程設計讓我學習到了很多新的微機知識,并從中獲益良多。在剛開始設計的時候,我真的是一頭霧水,不知道從何下手,于是就借來了以前學長的程序設計作個參考,我先將他們的程序設計看懂,然后再自己嘗試著去設計。首先應該畫出硬件設計圖,這個過程是基礎,然后是流程圖,這個是重點,流程圖的完

溫馨提示

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

評論

0/150

提交評論