微機課程設計計算器_第1頁
微機課程設計計算器_第2頁
微機課程設計計算器_第3頁
微機課程設計計算器_第4頁
微機課程設計計算器_第5頁
已閱讀5頁,還剩12頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設 計 課程名稱 微機課程設計 題目名稱_ 計算器(1) 學生學院_ _ 自動化_專業班級_ _學 號 學生姓名_ _ _指導教師_ 李傳芳 _2008 年 12月 25日一、課程設計的目的1、鞏固和加深對微機原理及應用課程內容的認識和理解,提高應用水平2、掌握匯編語言程序的編程方法3、熟悉鍵盤控制和七段數碼管的使用二、課程設計的內容 1.把存儲器單元中的0AH,02H,0FH,09H從四位七段LED數碼管同時顯示出來,要求做成循環程序,并使用XLAT來譯碼。2編寫程序,實現以下鍵盤功能,按任意鍵在顯示器上顯示對應鍵值,要求顯示值能夠實現左移功能。5A7FB3C0 3.實現:a)定義鍵

2、盤按鍵,5個為數字鍵3、4、5、6、7,7個功能鍵:減號,除號÷,等號;b)可進行三位8進制減法運算;c)可進行兩位10進制除法運算。三、課程設計應完成的工作1.搜集、整理和研究資料,可參考教材后的實例。2.按電路框圖連接電路,編寫程序完成各個程序設計要求,并完成調試。3.完成課程設計的報告書一一、源程序51程序一51.1 題目51.2 源程序52程序二62.1題目62.2 源程序63程序三103.1題目103.2 源程序10二、心得與體會19三、參考文獻191.程序一1.1題目:把存儲器單元中的0AH,02H,0FH,09H從四位七段LED數碼管同時顯示出來,要求做成循環程序,并使

3、用XLAT來譯碼。1.2源程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTAB1 DB 0AH,02H,0FH,09H ;設置四位查詢位TAB2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;設置0F的十六位數碼管段碼 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,80H ;8255A初始化 OUT 63H,ALL1: M

4、OV DL,0FEH MOV SI,OFFSET TAB1 MOV CX,0004HL2: MOV AL,DL ;位碼送給AL OUT 60H,AL MOV AL,SI MOV BX,OFFSET TAB2 ;查表取出數碼管的段碼 XLAT TAB2 OUT 61H,AL ;查表的段碼送A口顯示 INC SI ROL DL,01H ;下個要顯示的數碼管位碼 CALL TIME LOOP L2 JMP L1TIME: PUSH AX ;延時程序 PUSH CX MOV CX,0002HTIME1: MOV AX,0300HTIME2: DEC AX JNZ TIME2 LOOP TIME1 PO

5、P CX POP AX RETCODE ENDS END START2.程序一2.1題目:2編寫程序,實現以下鍵盤功能,按任意鍵在顯示器上顯示對應鍵值,要求顯示值能夠實現左移功能。5A7FB3C02.2源程序:STACK SEGMENT STACK DW 64 DUP (?)STACK ENDSDATA SEGMENTVAR1 DB 07H,0BH,0DH,0EHVAR2 DB 3FH,3FH,3FH,3FH,3FHVAR3 DB 00H,00H,00H,00H,00HTABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,

6、5EH,79H,71HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,88H OUT 63H,AL ;8255A初始化STT: MOV AL,00H ;鍵盤測試 OUT 60H,ALNEXT: IN AL,62H AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP ;調用顯示程序 JMP STT;-KEYABC: CALL TIME ;延時,去抖動 IN AL,62H AND AL,60H CMP AL,60H JNZ KEY JMP STTKEY:

7、 MOV AL,0FEH ;鍵盤掃描識別 OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_B CALL KEY5 JMP STTKKEY_B: TEST AL,20H JNZ KEY_A CALL KEYB JMP STTKKEY_A: MOV AL,0FDH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_3 CALL KEYA JMP STTKKEY_3: TEST AL,20H JNZ KEY_7 CALL KEY3 JMP STTKKEY_7: MOV AL,0FBH OUT 60H,AL IN AL,62H TEST

8、 AL,40H JNZ KEY_C CALL KEY7 JMP STTKKEY_C: TEST AL,20H JNZ KEY_F CALL KEYC JMP STTKKEY_F: MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_0 CALL KEYF JMP STTKKEY_0: TEST AL,20H JNZ KEY_01 CALL KEY0KEY_01: JMP STTK;- ;按鍵5處理子程序KEY5: CALL LP1 ;低4位字節前移 MOV AL,05H MOV DI+4,AL LEA BX,TABL ;查表取出要顯示數字的

9、數碼管段碼 XLAT TABL MOV SI+4,AL CALL DISP ;顯示 RET ;返回;-KEYB: CALL LP1 ;按鍵B處理子程序 MOV AL,0BH MOV DI+4,AL LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP RET;-KEYA: CALL LP1 ;按鍵A處理子程序 MOV AL,0AH MOV DI+4,AL LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP RET;-KEY3: CALL LP1 ;按鍵3處理子程序 MOV AL,03H MOV DI+4,AL LEA BX,

10、TABL XLAT TABL MOV SI+4,AL CALL DISP RET;-KEY7: CALL LP1 ;按鍵7處理子程序 MOV AL,07H MOV DI+4,AL LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP RET;-KEYC: CALL LP1 ;按鍵C處理子程序 MOV AL,0CH MOV DI+4,AL LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP RET;-KEYF: CALL LP1 ;按鍵F處理子程序 MOV AL,0FH MOV DI+4,AL LEA BX,TABL XLAT

11、 TABL MOV SI+4,AL CALL DISP RET;-KEY0: CALL LP1 ;按鍵0處理子程序 MOV AL,00H MOV DI+4,AL LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP RET ;-LP1: MOV CX,0004H ;數據移位保存子程序(前移四位) MOV SI,OFFSET VAR2 MOV DI,OFFSET VAR3LP2: MOV AL,SI+3 MOV SI+4,AL MOV AL,DI+3 MOV DI+4,AL DEC SI DEC DI LOOP LP2 RET;-DISP: MOV SI,OFF

12、SET VAR1 ;顯示子程序 MOV DI,OFFSET VAR2 MOV CX,0004HDIR: MOV AL,SI OUT 60H,AL MOV AL,DI OUT 61H,AL CALL TIME INC SI INC DI LOOP DIR RET;-TIME: PUSH AX ;延時程序 PUSH CX MOV CX,0002HTIME1: MOV AX,0300HTIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET;-STTK: CALL DISP ;放鍵測試程序 MOV AL,00H OUT 60H,AL IN AL,62H

13、 AND AL,60H CMP AL,60H JNZ STTK JMP STTCODE ENDS END START 3.程序一3.1題目:實現:a)定義鍵盤按鍵,5個為數字鍵3、4、5、6、7,7個功能鍵:減號,除號÷,等號;b)可進行三位8進制減法運算;c)可進行兩位10進制除法運算。3.2源程序:STACK SEGMENT STACK DW 64 DUP (?)STACK ENDSDATA SEGMENTVAR1 DB 07H,0BH,0DH,0EH ;數碼管位碼VAR2 DB 3FH,3FH,3FH,3FH,3FHVAR3 DB 00H,00H,00H,00H,00H ;當前

14、值VAR4 DB 00H,00H,00H,00H,00H ;保存值TABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,88H OUT 63H,AL ;8255A初始化 MOV BX,0000H ;BX清零STT: MOV AL,00H ;鍵盤測試 OUT 60H,ALNEXT: IN AL,62H AND AL,60H CMP AL,60H

15、JNZ KEYABC CALL DISP ;調用顯示程序 JMP STT;-KEYABC: CALL TIME ;延時,去抖動 IN AL,62H AND AL,60H CMP AL,60H JNZ KEY JMP STTKEY: MOV AL,0FEH ;鍵盤掃描識別 OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_4 CALL KEYDEN JMP STTKKEY_4: TEST AL,20H JNZ KEY_JIAN CALL KEY4 JMP STTKKEY_JIAN:MOV AL,0FDH OUT 60H,AL IN AL,62H TEST AL,4

16、0H JNZ KEY_5 CALL KEYJIAN JMP STTKKEY_5: TEST AL,20H JNZ KEY_CHU CALL KEY5 JMP STTKKEY_CHU: MOV AL,0FBH OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_6 CALL KEYCHU JMP STTKKEY_6: TEST AL,20H JNZ KEY_3 CALL KEY6 JMP STTKKEY_3: MOV AL,0F7H OUT 60H,AL IN AL,62H TEST AL,40H JNZ KEY_7 CALL KEY3 JMP STTKKEY_7:

17、 TEST AL,20H JNZ KEY_71 CALL KEY7KEY_71: JMP STTK;-KEY3: CMP BH,00H ;按鍵3處理子程序 JZ KEY3_1 ;未按過符號鍵,不清零 CALL CLEAR ;已按過符號鍵,清零KEY3_1: CALL LP1 ;低4位字節前移 MOV AL,03H MOV DI+4,AL PUSH BX ;保護BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP ;顯示 POP BX RET ;返回;-KEY4: CMP BH,00H ;按鍵4處理子程序 JZ KEY4_1 CALL CLEARKEY4_

18、1: CALL LP1 MOV AL,04H MOV DI+4,AL PUSH BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP POP BX RET;-KEY5: CMP BH,00H ;按鍵5處理子程序 JZ KEY5_1 CALL CLEARKEY5_1: CALL LP1 MOV AL,05H MOV DI+4,AL PUSH BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP POP BX RET;-KEY6: CMP BH,00H ;按鍵6處理子程序 JZ KEY6_1 CALL CLEARKEY

19、6_1: CALL LP1 MOV AL,06H MOV DI+4,AL PUSH BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP POP BX RET;-KEY7: CMP BH,00H ;按鍵7處理子程序 JZ KEY7_1 CALL CLEARKEY7_1: CALL LP1 MOV AL,07H MOV DI+4,AL PUSH BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP POP BX RET;.KEYJIAN: CMP BH,00H ;按鍵-處理子程序 JNZ KEYJIAN_1 CALL

20、 LP3KEYJIAN_1: CMP BX,0101H RET;-KEYCHU: CMP BH,00H ;按鍵/處理子程序 JNZ KEYCHU_1 CALL LP3KEYCHU_1: CMP BX,0102H RET;-KEYDEN: CMP BL,00H ;按鍵=處理子程序 JNZ KEYDEN_1 CALL CLEAR CALL DISPKEYDEN_1: MOV BH,01H CMP BL,01H ;是-號? JZ K1 ;進行減法運算 CMP BL,02H ;是/號? JZ K2 ;進行除法運算STTE: RETK1: CALL JIAN JMP STTEK2: CALL CHU J

21、MP STTE ;-JIAN: MOV SI,OFFSET VAR3 ;三位8進制減法子程序 MOV DI,OFFSET VAR4 CLC MOV CX,0004H JIAN_1: MOV AL,DI SBB AL,SI CMP AL,08H JB B1 AND AL,07H STC JMP B2B1: CLCB2: MOV DI,AL INC SI INC DI LOOP JIAN_1 CALL CHANGE CALL DISP MOV BL,00H ;運算完畢符號位清零 RET;-CHU: MOV SI,OFFSET VAR3 ;兩位10進制除法子程序 MOV DI,OFFSET VAR4

22、 CLC MOV DL,DI ;調整VAR4,10進制轉換成16進制,保存在DX MOV DH,00H MOV BX,10 MOV AL,DI+1 AND AX,000FH PUSH DX MUL BX POP DX ADD DX,AX MOV BX,100 MOV AL,DI+2 AND AX,000FH PUSH DX MUL BX POP DX ADD DX,AX MOV BX,1000 MOV AL,DI+3 AND AX,000FH PUSH DX MUL BX POP DX ADD DX,AX PUSH DX MOV CL,SI ;調整VAR3,10進制轉換成16進制,保存在CX

23、MOV CH,00H MOV AL,SI+1 AND AX,000FH MOV BX,10 MUL BX ADD CX,AX MOV AL,SI+2 AND AX,000FH MOV BX,100 MUL BX ADD CX,AX MOV AL,SI+3 AND AX,000FH MOV BX,1000 MUL BX ADD CX,AX POP AX ;以16進制進行除法運算 MOV DX,0000H MOV CH,00H DIV CX ;調整結果為10進制 MOV CX,10 MOV DX,0000H DIV CX MOV DI,DL MOV DX,0000H DIV CX MOV DI+1

24、, DL MOV DX,0000H DIV CX MOV DI+2,DL MOV DX,0000H DIV CX MOV DI+3,DL CALL CHANGE CALL DISP MOV BL, 00H RET;-LP1: MOV CX,0004H ;數據移位保存子程序(前移四位) MOV SI,OFFSET VAR2 MOV DI,OFFSET VAR3LP2: MOV AL,SI+3 MOV SI+4,AL MOV AL,DI+3 MOV DI+4,AL DEC SI DEC DI LOOP LP2 RET;-LP3: MOV CX,0004H ;保存上一次數據子程序 MOV SI,OF

25、FSET VAR3 MOV DI,OFFSET VAR4LP4: MOV AL,SI MOV DI,AL INC SI INC DI LOOP LP4 RET;.CHANGE: MOV SI,OFFSET VAR2 MOV DI,OFFSET VAR4 MOV BX,OFFSET TABL MOV CX,0004HCOMP0: MOV AL,DI XLAT TABL MOV SI,AL INC SI INC DI LOOP COMP0 RET;-DISP: MOV SI,OFFSET VAR1 ;顯示子程序 MOV DI,OFFSET VAR2 MOV DL,DI+3 CMP DL,3FH JNZ DIR3 MOV DL,DI+2 CMP DL,3FH JNZ DIR2 MOV DL,DI+1 CMP DL,3FH JNZ DIR1 JMP DIR0DIR3: MOV CX,0004H JMP DIRDIR2: MOV CX,0003H JMP DIRDIR1: MOV CX,0002H JMP DIRDIR0: MOV CX,0001HDIR: MOV AL,SI OUT 60H,AL MOV AL,DI

溫馨提示

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

評論

0/150

提交評論