微機(jī)原理課程設(shè)計---電子鐘的設(shè)計報告_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  設(shè)計要求…………………………………………2</p><p>  設(shè)計目的…………………………………………2</p><p>  設(shè)計的具體實現(xiàn)…………………………………2</p><p>  系統(tǒng)概況……………………………………………2</p>

2、<p>  硬件電路設(shè)計………………………………………2</p><p>  顯示模塊…………………………………………3</p><p>  時鐘運(yùn)算模塊……………………………………3</p><p>  對時模塊…………………………………………4</p><p>  軟件程序設(shè)計………………………………………4</p>

3、;<p>  8259A的主要功能………………………………4</p><p>  8255的主要功能…………………………………4</p><p>  8253的主要功能…………………………………4</p><p>  程序框圖………………………………………………5</p><p>  結(jié)論與展望………………………………………8&

4、lt;/p><p>  心得體會及建議…………………………………8</p><p>  附錄………………………………………………9</p><p>  參考文獻(xiàn)…………………………………………19</p><p><b>  電子鐘的設(shè)計報告</b></p><p>  設(shè)計要求 設(shè)計一個電子

5、時鐘,使其具有二十四小時循環(huán)記時功能,走時要準(zhǔn)。并且有時鐘的對時功能。</p><p>  設(shè)計目的熟練掌握TND86/88教學(xué)系統(tǒng)的基本操作和調(diào)試程序的各種指令。熟悉編程及調(diào)試程序的方法。掌握8259中斷控制器的工作原理和應(yīng)用編程方法,練習(xí)編寫中斷程序的方法。掌握8255的各種工作方式及其應(yīng)用編程。掌握8253定時/計數(shù)器的工作原理、工作方式及其應(yīng)用編程。練習(xí)LED-KEYBOARD UNIT的使用

6、方法和數(shù)碼管的顯示編程方法。</p><p><b>  設(shè)計的具體實現(xiàn)</b></p><p><b>  摘要</b></p><p>  通過8253定時器產(chǎn)生秒脈沖信號,進(jìn)而實現(xiàn)定時中斷。在中斷服務(wù)程序中實現(xiàn)秒、分、小時的進(jìn)位(24小時制)。</p><p>  將當(dāng)前時分在數(shù)碼管上顯示(0

7、823)</p><p>  可調(diào)整電子鐘的時間當(dāng)前值(對準(zhǔn)時間)。</p><p><b>  具體實現(xiàn)</b></p><p>  1·系統(tǒng)概況 電子時鐘主要由顯示模塊、對時模塊和時鐘運(yùn)算模塊三大部分組成。其中對時模塊和時鐘運(yùn)算模塊要對時、分、秒的數(shù)值進(jìn)行操作,并且秒計算到60時,要自己清零并向分進(jìn)1;分計算到60時,要自

8、己清零并向時進(jìn)1;時計算到24時,要清零。這樣,才能實現(xiàn)循環(huán)計時。顯示時只顯示時和分,不顯示秒,利用實驗箱上的4個數(shù)碼管來顯示當(dāng)前時間。前兩個顯示小時,后兩個顯示分鐘。時鐘的運(yùn)算是利用中斷來實現(xiàn)的,利用8253的方式三輸出一定頻率的方波作為觸發(fā)中斷的條件。在中斷服務(wù)程序中計算時間,并通過8255并行輸出到數(shù)碼管顯示。2·硬件電路設(shè)計 電子時鐘主要由8259A中斷控制器、8253定時/計數(shù)器、8255A接口芯片、LED

9、數(shù)碼顯示管和兩個按鍵組成。主要用8259A的IRQ7的中斷服務(wù)程序完成秒、分、時的運(yùn)算即計時功能,IRQ6的中斷服務(wù)程序完成調(diào)時、調(diào)分功能。8253用來產(chǎn)生40ms的脈沖信號作為IRQ7的中斷請求信號。按鍵KK1+和KK2+分別作為IRQ2和IRQ6的中斷請求信號。按鍵KK1+啟動/關(guān)閉對時功能。它決定是否屏蔽IRQ7和IRQ6中斷源。8255A負(fù)責(zé)將內(nèi)存里的時位和分</p><p>  4·程序框圖

10、</p><p>  IRQ2中斷流程:</p><p>  IRQ6中斷流程圖:</p><p>  結(jié)論與展望 將編寫好的源程序輸入,編譯后出現(xiàn)很多問題,經(jīng)過反復(fù)修改程序終于運(yùn)行通

11、過。1:數(shù)碼管顯示的數(shù)字并不與理論計算值相符合,經(jīng)過反復(fù)分析源程序發(fā)現(xiàn)問題出現(xiàn)在內(nèi)存單元里時位和分位在轉(zhuǎn)化為十進(jìn)制時出錯,經(jīng)過更改內(nèi)存但愿數(shù)據(jù)。一開始數(shù)字閃動,后來請教同學(xué),原因應(yīng)該出在顯示子程序里,缺少延時程序。編寫延時子程序,并在顯示子程序調(diào)用它;編譯源程序,裝入生成的可執(zhí)行文件,并運(yùn)行。數(shù)碼管顯示的數(shù)字與理論值相符合,并能正常計時,2:如果按動KK1+鍵時,不能啟動對時功能或按動KK2+時,也不能調(diào)時、調(diào)分。問題很可能出在兩鍵控制

12、的中斷源上,可以采取更換中斷源來是進(jìn)行調(diào)試。</p><p>  心得體會與建議 為期兩周的微機(jī)原理課程設(shè)計已接近尾聲,在這兩周的學(xué)習(xí)中,我收獲了不少,在之前的理論學(xué)習(xí)中,有很多知識點沒有理解,這次課設(shè)才使我對微機(jī)原理的應(yīng)用有了更深的理解。</p><p>  盡管課設(shè)之前我們已經(jīng)學(xué)習(xí)完了《微機(jī)原理及應(yīng)用》這本書,但這離完成一個完整的課設(shè)還有很大的距離。我這次的題目是電子鐘課程設(shè)計

13、,比較簡單,為了更好地完成這次課設(shè),我去圖書館查閱了許多相關(guān)資料,也上網(wǎng)查閱了一些,這讓我對微機(jī)原理知識有了進(jìn)一步的認(rèn)識,并豐富了我的相關(guān)知識。對8259、8255、8253有了進(jìn)一步的了解,對中斷處理有了更深的理解,很好的復(fù)習(xí)了微機(jī)原理,同時對端口有了初步的理解。通過課程設(shè)計更加體會到了團(tuán)隊作戰(zhàn)的長處,大家一起受益頗多,取長補(bǔ)短,最主要的是認(rèn)識到了自己的不足,需要進(jìn)一步學(xué)習(xí)所含知識,尤其是端口,更需要勤加練習(xí)匯編語言與微機(jī)原理的結(jié)合,

14、課程設(shè)計受益頗多。 這次課設(shè)讓我收獲了很多,既讓我更加深刻的理解了微機(jī)原理的相關(guān)知識,更主要的是增強(qiáng)了自己理論聯(lián)系實際的能力。對一些常用芯片有了更深一步的認(rèn)識,并且能夠很好的使用它們。這次課設(shè)涉及到很多芯片的應(yīng)用,最大的特點就是軟硬件結(jié)合。應(yīng)該說,這次課程設(shè)計達(dá)到了目的。</p><p><b>  附錄</b></p><p><b>  元

15、器件明細(xì)表:</b></p><p>  1.8253定時器:</p><p>  8253的功能用途是:延時中斷、可編程頻率發(fā)生器、事件計數(shù)器、二進(jìn)倍頻器、實時時鐘等。</p><p>  8253有六種工作方式:</p><p>  方式0:計數(shù)結(jié)束產(chǎn)生中斷;方式1:可重觸發(fā)單穩(wěn)態(tài)方式;方式2:頻率發(fā)生器;方式3:方波發(fā)生器

16、;方式4:軟件觸發(fā)的選通信號發(fā)生器;方式5:硬件觸發(fā)的選通信號發(fā)生器。</p><p>  2.8259A中斷控制器: </p><p>  8259的工作方式:</p><p>  中斷嵌套方式:全嵌套方式、特殊全嵌套方式;</p><p>  循環(huán)優(yōu)先方式:優(yōu)先級自動循環(huán)方式、優(yōu)先權(quán)特殊循環(huán)方式;</p>

17、<p>  中斷屏蔽方式:普通屏蔽方式、特殊屏蔽方式;</p><p>  結(jié)束中斷處理方式:自動中斷結(jié)束方式、非自動中斷結(jié)束方式;</p><p><b>  程序查詢方式;</b></p><p>  中斷請求觸發(fā)方式:邊沿觸發(fā)方式、電平觸發(fā)方式。</p><p>  3.8255A并行接口:

18、 Intel8255A是一種通用的可編程并行接口芯片,它具有24條I/O引腳,采用雙排直插式封裝,使用單一+5V電源,全部輸入/輸出與TTL電平兼容。</p><p>  8255A的工作方式有三種:</p><p>  方式0:基本輸入輸出;方式1:選通輸入輸出;方式3:雙向選通輸入輸出。</p><p><b>  4.電路原理圖:</b>

19、</p><p>  5.程序代碼:STACK SEGMENT STACK</p><p>  DW 64 DUP(?)</p><p>  STACK ENDS</p><p>  DATA SEGMENT</p><p>  H DW 000CH</p><p>  M

20、 DW 0000H</p><p>  S DW 0000H</p><p>  COUNT DW 0000H</p><p>  OFF DW 0000H</p><p>  TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p&g

21、t;  DATA ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p><b>  START: </b></p><p>  MOV AX,DATA</p><p>  MOV DS,AX //把數(shù)

22、據(jù)送到DS中</p><p>  MOV AL,81H //A為輸出,B為輸入,工作方式為方式0</p><p>  OUT 63H,AL //設(shè)置8255的工作方式</p><p>  MOV AX,2300H</p><p>  MOV [0028],AX</p><p>  MOV AX,0000H<

23、;/p><p>  MOV [002A],AX //把IRQ2的中斷服務(wù)向量寫入中斷向量表中斷向量為0AH</p><p>  MOV AX,2200H</p><p>  MOV [0038],AX</p><p>  MOV AX,0000H</p><p>  MOV [003A],AX //把IR

24、Q6的中斷服務(wù)向量寫入中斷向量表中斷向量為0EH</p><p>  MOV AX,2100H</p><p>  MOV [003C],AX</p><p>  MOV AX,0000H</p><p>  MOV [003E],AX //把IRQ7的中斷服務(wù)向量寫入中斷向量表中斷向量為0FH</p><p>

25、;  MOV AL,0B6H</p><p>  OUT 43H,AL</p><p>  MOV AL,68H //寫計數(shù)初值Tc=tf=40ms*1.93MHz=68BA</p><p>  OUT 42H,AL</p><p>  MOV AL,0BAH</p><p>  OUT 42H,AL

26、 //設(shè)置8253的計數(shù)器2和工作模式3</p><p>  MOV AL,7BH</p><p>  OUT 21H,AL // 設(shè)置8259A的2號和7號中斷允許</p><p><b>  BEGIN:</b></p><p><b>  CALL DIS</b>&l

27、t;/p><p><b>  STI</b></p><p>  JMP BEGIN</p><p><b>  IRQ7: </b></p><p><b>  PUSH AX</b></p><p>  MOV AX,COUNT</p&g

28、t;<p><b>  INC AX</b></p><p>  MOV COUNT , AX //COUNT++</p><p><b>  POP AX</b></p><p>  CMP COUNT , 19H //與25比較</p><p>

29、;  JNZ RETURN //COUNT<25</p><p>  MOV AX,0000H</p><p>  MOV COUNT , AX //COUNT=0</p><p>  MOV AX , S</p><p><b>  INC AX</b></p>

30、;<p>  MOV S , AX //S++,秒加1</p><p>  CMP AX , 003CH</p><p>  JNZ RETURN //S<60</p><p>  MOV AX,0000H</p><p>  MOV S , AX //

31、S=0</p><p>  MOV BX , M</p><p><b>  INC BX</b></p><p>  MOV M , BX //M++,分加1</p><p>  CMP BX , 003CH //與60比較</p><p>  JNZ RET

32、URN //M<60</p><p>  MOV BX,0000H</p><p>  MOV M ,BX //M=0</p><p><b>  MOV DX,H</b></p><p><b>  INC DX</b></p>&l

33、t;p>  MOV H,DX //H++,時加1</p><p>  CMP DX,0018H //與24比較</p><p>  JNZ RETURN //H<24</p><p>  MOV DX,0000H</p><p>  MOV H,DX //

34、H=0 </p><p><b>  RETURN:</b></p><p>  MOV AL,7BH //設(shè)置OCW2</p><p>  OUT 21H,AL //2號和7號中斷允許,6號屏蔽</p><p>  MOV AL,20H</p><p>  O

35、UT 20H,AL //中斷結(jié)束</p><p><b>  IRET</b></p><p><b>  IRQ6: </b></p><p>  MOV AX,OFF //讀OFF</p><p>  CMP AX,0001H //與1比較&

36、lt;/p><p>  JNZ HR //OFF!=1跳轉(zhuǎn)</p><p><b>  MOV BX,M</b></p><p><b>  INC BX</b></p><p>  MOV M,BX //M+=1調(diào)整分鐘</p><

37、p>  CMP BX,003CH //與60比較</p><p>  JNZ R0 //不滿60分鐘跳出</p><p>  MOV BX,0000H</p><p>  MOV M ,BX //滿60分鐘清零</p><p>  JMP R0 //跳

38、出R0</p><p><b>  HR: </b></p><p>  CMP AX,0002H //與2比較</p><p>  JNZ R0 //OFF!=2</p><p>  MOV BX,H </p><p><

39、b>  INC BX</b></p><p>  MOV H,BX //H+=1調(diào)整小時</p><p>  CMP BX,0018H //與24比較</p><p>  JNZ R0 //不滿24小時跳出</p><p>  MOV BX,0000H

40、 </p><p>  MOV H ,BX //滿24小時清零</p><p><b>  R0: </b></p><p>  MOV AL,0BBH //設(shè)置OCW2</p><p>  OUT 21H,AL //8259的2號和6號中斷允許,7號中斷屏

41、蔽</p><p>  MOV AL,20H</p><p>  OUT 20H,AL //中斷結(jié)束</p><p>  IRET //中斷返回</p><p><b>  IRQ2: </b></p><p><b>  P

42、USH AX</b></p><p>  MOV AX,OFF</p><p><b>  INC AX</b></p><p>  MOV OFF,AX //OFF++</p><p><b>  POP AX</b></p><p> 

43、 MOV BX,OFF</p><p>  CMP BX,0003H //與3比較</p><p>  JZ R1 //OFF=3,跳轉(zhuǎn)到R1</p><p>  CMP BX,0001H //與1比較</p><p>  JZ R2 //OF

44、F=1,跳轉(zhuǎn)到R2</p><p>  CMP BX,0002H</p><p>  JZ R2 //OFF=2</p><p><b>  R1: </b></p><p>  MOV BX,0000H</p><p>  MOV OFF,BX

45、 //OFF清零</p><p>  MOV AL,7BH //設(shè)置OCW2,2號和7號中斷允許,其余屏蔽</p><p>  OUT 21H,AL</p><p>  MOV AL,20H</p><p>  OUT 20H,AL //中斷結(jié)束</p><p>  IR

46、ET //中斷返回</p><p><b>  R2:</b></p><p>  MOV AL,0BBH //OFF清零,設(shè)置OCW2,2號和6號中斷允許,其余屏蔽</p><p>  OUT 21H,AL </p><p>  MOV AL,20H</p>

47、<p>  OUT 20H,AL </p><p>  IRET </p><p><b>  DIS: </b></p><p><b>  PUSH AX </b></p><p>  MOV AX,M //讀分</p>

48、<p>  MOV BL,0AH</p><p><b>  DIV BL</b></p><p>  MOV DI,3000H</p><p>  MOV [3000],AH</p><p>  MOV [3001],AL //讀出當(dāng)前的分鐘數(shù)并轉(zhuǎn)換成十進(jìn)制后放入3000和3001單元中</

49、p><p>  MOV AX,H //讀時</p><p>  MOV BL,0AH</p><p><b>  DIV BL</b></p><p>  MOV [3002],AH</p><p>  MOV [3003],AL //讀出當(dāng)前的小時數(shù)并轉(zhuǎn)換成十進(jìn)制后放入

50、3002和3003單元中</p><p>  MOV DL,0F7H //選中一個數(shù)碼管</p><p><b>  MOV AL,DL</b></p><p><b>  AGAIN: </b></p><p>  OUT 60H,AL //通過A端口選中相應(yīng)數(shù)碼管&

51、lt;/p><p>  MOV BL,[DI]</p><p>  MOV BH,00H //讀出相應(yīng)數(shù)據(jù)放入BX</p><p>  MOV SI,OFFSET TABLE</p><p>  ADD BX,SI //獲得要顯示的數(shù)據(jù)</p><p>  MOV AL,[BX] <

52、;/p><p>  OUT 61H,AL //通過B端口送出數(shù)據(jù)</p><p>  CALL DALLY //調(diào)用延時功能</p><p><b>  INC DI</b></p><p><b>  MOV AL,DL</b></p><p>

53、  TEST AL,01H //判斷是否選中的是最前面的數(shù)碼管</p><p>  JZ OUT //如果是,跳出</p><p>  ROR AL,1 //不是,數(shù)碼管右移一個</p><p><b>  MOV DL,AL</b></p><p>  JMP

54、AGAIN </p><p><b>  OUT: </b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  DALLY: //延時子程序</p><p&g

55、t;  PUSH CX //CX代表循環(huán)次數(shù)</p><p>  MOV CX,000FH</p><p><b>  T1: </b></p><p>  MOV AX,0020H</p><p><b>  T2: </b></p><p>

56、<b>  DEC AX</b></p><p><b>  JNZ T2</b></p><p>  LOOP T1 //AX不斷減一直到為0</p><p><b>  POP CX</b></p><p><b>  RET</b

57、></p><p><b>  CODE ENDS</b></p><p>  END START //程序結(jié)束</p><p>  參考文獻(xiàn)[1]許立梓.微型計算機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003[2]戴梅萼等. 微型計算機(jī)技術(shù)及應(yīng)用.北京:清華大學(xué)出版社,2003</p>&l

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論