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

下載本文檔

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

文檔簡介

1、課 程 設 計 課程名稱 微機課程設計 題目名稱 計算器(1) 學生學院 自動化學院 專業班級 學 號 學生姓名 指導教師 李傳芳 2013 年 10月 17日廣東工業大學課程設計任務書題目名稱計算器(1)學生學院自動化專業班級 姓 名學 號 一、課程設計的目的1、鞏固和加深對微機原理及應用課程內容的認識和理解,提高應用水平;2、掌握匯編語言程序的編程方法;3、熟悉鍵盤控制和七段數碼管的使用。二、課程設計的內容 1.在顯示器上顯示六位十六進制數:5 6 7 A B C 。2將8個健按實驗室要求定義健值,按任意鍵在顯示器上顯示對應鍵值,要求顯示值能夠實現左移功能:AB9346FC 3.實現:a)

2、定義鍵盤按鍵,13個為數字鍵3-F,3個功能鍵:加號+,除號÷,等號;b)可進行四位10進制加法運算;c)可進行四位16進制除法運算。三、課程設計應完成的工作1.搜集、整理和研究資料,可參考教材后的實例。2.按電路框圖連接電路,編寫程序完成各個程序設計要求,并完成調試。3.完成課程設計的報告書一份。四、課程設計進程安排序號設計各階段內容地點起止日期1領取任務書實2-20410.142收集,整理資料圖書館、宿舍10.153上機編寫調試程序實2-2044撰寫課程設計報告宿舍10.18五、應收集的資料及主要參考文獻發出任務書日期:2013年 10月 14日 指導教師簽名:計劃完成日期: 2

3、013 年 10月 18日 基層教學單位責任人簽章:主管院長簽章:目錄一、源程序61程序一61.1 題目61.2 流程圖61.3 源程序62程序二72.1題目72.2 流程圖82.3 源程序93程序三113.1題目113.2流程圖123.3源程序11二、心得與體會19三、參考文獻191.程序一1.1在顯示器上顯示六位十六進制數:5 6 7 A B C 。1.2 流程圖.1.3源程序:STACK SEGMENT STACK DW 32 DUP(?)STACK ENDSDATA SEGMENTSHUJU DB 0FCH,06H,0DAH,0F2H,66H,0B6H,0BEH,0E0H ;數碼管的位

4、選 DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;設置0F的十六位數碼管段碼VA1 DB 0FEH,OFDH,0FBH,0F7H,0EFH,0DFFVA2 DB 05H,06H,07H,0AH,0BH,0CH ;設置四位查詢位DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV DX,0606H MOV AL,80H ;8255初始化 OUT DX,ALA: LEA SI,VA2 LEA DI,VA1 MOV CX,0006HA1: MOV DX

5、,0600H MOV AL,0FFH OUT DX,AL MOV AL,DI MOV BX,OFFSET SHUJU XLAT SHUJU ;查表取出數碼管的段碼 MOV DX,0604H OUT DX,AL MOV DX,0600H ;查表的段碼送A口顯示 MOV AL,SI OUT DX,AL CALL DALLY INC SI INC DI LOOP A1 JMP ADALLY: PUSH CX ;延時程序 MOV CX,0001HA3: MOV AX,00FFHA4: DEC AX JNZ A4 LOOP A3 POP CX RETCODE ENDS END START2. 程序一2.

6、1題目:將8個健按實驗室要求定義健值,按任意鍵在顯示器上顯示對應鍵值,要求顯示值能夠實現左移功能:AB9346FC2.2流程圖. 開始8255初始化是否按健顯示掃描保存數據是否放鍵顯示掃描NYNY2.3源程序:STACK SEGMENT STACK DW 32 DUP (?)STACK ENDSDATA SEGMENTTABLE DB 0FCH,06H,0DAH,0F2H,66H,0B6H,0BEH,0E0H DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHVA1 DB 0FEH,OFDH,0FBH,0F7H,0EFH,0DFFVA2 DB 0FCH,0FCH,0FC

7、H,0FCH,0FCH,0FCHVA3 DB 00H,00H,00H,00H,00H,00H,00HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,0606H MOV AL,82H OUT DX,AL ;8255初始化 MOV BX,0000HSTT: MOV AL,00H ;鍵盤測試 MOV DX,0600H OUT DX,AL MOV DX,0602H IN AL,DX AND AL,18H CMP AL,18H JNZ KEYABC CALL DISP ;調用顯示程序 JMP

8、STT;-KEYABC: CALL TIME ;延時,去抖動 MOV DX,0602H IN AL,DX AND AL,18H CMP AL,18H JNZ KEY JMP STTKEY: MOV DX,0600H MOV AL,0FEH ;鍵盤掃描識別 OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_7 CALL KEY0 JMP STTKKEY_7: TEST AL,10H JNZ KEY_2 CALL KEY4 JMP STTKKEY_2: MOV DX,0600H MOV AL,0FDH OUT DX,AL MOV DX,0602

9、H IN AL,DX TEST AL,08H JNZ KEY_6 CALL KEY1 JMP STTKKEY_6: TEST AL,10H JNZ KEY_1 CALL KEY5 JMP STTKKEY_1: MOV DX,0600H MOV AL,0FBH OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_5 CALL KEY2 JMP STTKKEY_5: TEST AL,10H JNZ KEY_0 CALL KEY6 JMP STTKKEY_0: MOV DX,0600H MOV AL,0F7H OUT DX,AL MOV DX,06

10、02H IN AL,DX TEST AL,08H JNZ KEY_4 CALL KEY3 JMP STTKKEY_4: TEST AL,10H JNZ KEY_C1 CALL KEY7KEY_C1: JMP STTK;- ;按鍵0處理子程序KEY0: CALL LP1 MOV AL,0EEH MOV SI+5,AL MOV AL,00H MOV DI+5,AL CALL DISP ;顯示 RET ;返回;- ;按鍵1處理子程序KEY1: CALL LP1 MOV AL,3EH MOV SI+5,AL MOV AL,01H MOV DI+5,AL CALL DISP ;顯示 RET ;返回;-;

11、按鍵2處理子程序KEY2: CALL LP1 MOV AL,0F6H MOV SI+5,AL MOV AL,02H MOV DI+5,AL CALL DISP ;顯示 RET ;返回;-;按鍵3處理子程序KEY3: CALL LP1 MOV AL,0F2H MOV SI+5,AL MOV AL,03H MOV DI+5,AL CALL DISP ;顯示 RET ;返回 ;- ;按鍵4處理子程序KEY4: CALL LP1 MOV AL,66H MOV SI+5,AL MOV AL,04H MOV DI+5,AL CALL DISP ;顯示 RET ;返回 ;- ;按鍵5處理子程序KEY5: C

12、ALL LP1 MOV AL,0BEH MOV SI+5,AL MOV AL,05H MOV DI+5,AL CALL DISP ;顯示 RET ;返回 ;-;按鍵6處理子程序KEY6: CALL LP1 MOV AL,8EH MOV SI+5,AL MOV AL,06H MOV DI+5,AL CALL DISP ;顯示 RET ;返回 ;-;按鍵7處理子程序KEY7: CALL LP1 MOV AL,9CH MOV SI+5,AL MOV AL,07H MOV DI+5,AL CALL DISP ;顯示 RET ;返回 ;-;數據移位保存子程序 LP1: MOV SI,OFFSET VA2

13、 MOV DI,OFFSET VA3 MOV CX,0005H LP2: MOV AL,SI+4 MOV SI+5,AL MOV AL,DI+4 MOV DI+5,AL DEC SI DEC DI LOOP LP2 RET;-;顯示子程序DISP: MOV SI,OFFSET VA1 MOV DI,OFFSET VA2 MOV DL,DI+5 CMP DL,0FCH JNZ DIR5 MOV DL,DI+4 CMP DL,0FCH JNZ DIR4 MOV DL,DI+3 CMP DL,0FCH JNZ DIR3 MOV DL,DI+2 CMP DL,0FCH JNZ DIR2 MOV DL,

14、DI+1 CMP DL,0FCH JNZ DIR1 JMP DIR0DIR5: MOV CX,0006H JMP DIRDIR4: MOV CX,0005H JMP DIRDIR3: MOV CX,0004H JMP DIRDIR2: MOV CX,0003H JMP DIRDIR1: MOV CX,0002H JMP DIRDIR0: MOV CX,0001HDIR: MOV DX,0600H MOV AL,SI OUT DX,AL MOV DX,0604H MOV AL,DI OUT DX,AL CALL TIME INC SI INC DI LOOP DIR RET;-;延時程序TIME

15、: PUSH AX PUSH CX MOV CX,0005HTIME1: MOV AX,00F0HTIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET;- ;放鍵測試程序STTK: CALL DISP MOV AL,00H MOV DX,0600H OUT DX,AL MOV DX,0602H IN AL,DX AND AL,18H CMP AL,18H JNZ STTK JMP STTCODE ENDS END START 3.程序一3.1題目:實現:a)定義鍵盤按鍵,13個為數字鍵0-F,3個功能鍵:加號+,除號÷,等號;b)可

16、進行四位10進制加法運算;c)可進行四位16進制除法運算。3.2 流程圖 開始8255初始化有無壓鍵顯示掃描是數字鍵?標有志?加號?除號?設加好標志設除好標志清零顯示器,清標志位保存數據放鍵?顯示掃描清零顯示器進行加、乘運算,存結果等號?YYYYYYYNNNNNN3.3源程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENT VA1 DB 0DFH,0EFH,0F7H,0FDH,0FEH, VA2 DB 0FC,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH,0FCH VAR3 DB 00H,00H,0

17、0H,00H,00H,00H,00H,00H,00H,00H VAR4 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H TABL DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0FEH,0F6H, DB 0EEH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE:SEGMENT ASSUME CS:CODE,DS,DATA START:MOV AX,DATA MOV DS,AX MOV DX,0606H MOV AL ,82H OUT DX,AL MOV BX,0000H STT: MOV AL,00H MOV D

18、X,0600H OUT DX,AL OUT DX,0602H IN AL,DX AND AL,78H CMP AL,78H JNZ KEYABC CALL DISP JMP STTKEYABC:CALL TIME MOV DX,0602H IN AL,DX AND AL,78H CMP AL,78H JNZ KEY JMP STT;-第一列鍵盤掃描;按鍵鍵碼確定程序,采用掃描法確定按鍵的鍵碼KEY: MOV DX,0600H MOV AL,OFEH OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_B CALL KEYF JMP STTK

19、KEY_B:TEST AL,10H JNZ KEY_7 CALL KEYB JMP STTK KEY_7:TEST AL,20H JNZ KEY_JIA CALL KEY7 JMP STTK KEY_JIA:TEST AL,40H JNZ KEY_E CALL KEYABB JMP STTK ;- ; 第二列鍵盤掃描 KEY_E:MOV DX,0600H MOV AL,OFDH OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_A CALL KEYF JMP STTK KEY_A:TEST AL,10H JNZ KEY_6 CALL KEY

20、A JMP STTK KEY_6:TEST AL,20H JNZ KEY_JIA CALL KEY6 JMP STTK KEY_2:TEST AL,40H JNZ KEY_D CALL KEYCHU JMP STTK ;- ; 第三列鍵盤掃描 KEY_D:MOV DX,0600H MOV AL,OFBH OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_9 CALL KEYD JMP STTK KEY_9:TEST AL,10H JNZ KEY_5 CALL KEY9 JMP STTK KEY_5:TEST AL,20H JNZ KEY_1

21、 CALL KEY5 JMP STTK KEY_1:TEST AL,40H JNZ KEY_D CALL KEYDEN ;等號 JMP STTK ;- ; 第四列鍵盤掃描KEY_C:MOV DX,0600H MOV AL,OFBH OUT DX,AL MOV DX,0602H IN AL,DX TEST AL,08H JNZ KEY_8 CALL KEY8 JMP STTK KEY_8:TEST AL,10H JNZ KEY_4 CALL KEY8 JMP STTK KEY_4:TEST AL,20H JNZ KEY_3 CALL KEY4 JMP STTK KEY_3:TEST AL,40H

22、 JNZ KEY_C CALL KEYCHU JMP STTK KEY_C1:JMP STTK;- 每一個子程序 KEYF:CMP BH,00H ;按鍵F處理子程序 JZ KEYF_1 CALL CLEARKEYF_1: CALL LP1 MOV AL,8EH MOV SI+5,AL MOV AL,0FH MOV DI+5,AL CALL DISP RETKEYB:CMP BH,00H ;按鍵B處理子程序 JZ KEYF_B CALL CLEARKEYB_1: CALL LP1 MOV AL,3EH MOV SI+5,AL MOV AL,0BH MOV DI+5,AL CALL DISP RE

23、T KEY7:CMP BH,00H ;按鍵7處理子程序 JZ KEY7_1 CALL CLEARKEY7_1: CALL LP1 MOV AL,0E0H MOV SI+5,AL MOV AL,07H MOV DI+5,AL CALL DISP RET KEYADD:CMP BH,00H ;按鍵+處理子程序 JZ KEYADD_1 CALL CLEARKEYADD_1: MOV BX,0101H RET;- 每一個子程序 KEYE:CMP BH,00H ;按鍵E處理子程序 JZ KEYE_1 CALL CLEARKEYE_1: CALL LP1 MOV AL,9EH MOV SI+5,AL MO

24、V AL,0EH MOV DI+5,AL CALL DISP RETKEYA: ;按鍵A處理子程序CMP BH,00H JZ KEYA_1 CALL CLEARKEYA_1: CALL LP1 MOV AL,0EEH MOV SI+5,AL MOV AL,0AH MOV DI+5,AL CALL DISP RET KEY6:CMP BH,00H;按鍵6處理子程序 JZ KEY7_1 CALL CLEARKEY6_1: CALL LP1 MOV AL,0BEH MOV SI+5,AL MOV AL,06H MOV DI+5,AL CALL DISP RET KEYCHU:CMP BH,00H;按

25、鍵/處理子程序 JZ KEYADD_1 CALL CLEARKEYCHU_1: MOV BX,0102H RET ;- 每一個子程序 KEYD:CMP BH,00H;按鍵=處理子程序 JZ KEYD_1 CALL CLEARKEYD_1: CALL LP1 MOV AL,7AH MOV SI+5,AL MOV AL,0DH MOV DI+5,AL CALL DISP RETKEY9:CMP BH,00H;按鍵9處理子程序 JZ KEYF_B CALL CLEARKEY9_1: CALL LP1 MOV AL,0F6H MOV SI+5,AL MOV AL,09H MOV DI+5,AL CAL

26、L DISP RET KEY5:CMP BH,00H;按鍵5處理子程序 JZ KEY7_1 CALL CLEARKEY5_1: CALL LP1 MOV AL,0B6H MOV SI+5,AL MOV AL,05H MOV DI+5,AL CALL DISP RET KEYDEN:MOV BH,01H;按鍵=處理子程序 CMP BL,01H JZ K1 CMP BL,02H JMP CLEAR ;不進行運算時就清零 STTE: RET K1:CALL ADD1 JMP STTE K2: CALL CHU JMP STTE;- 每一個子程序 KEYC:CMP BH,00H;按鍵C處理子程序 JZ

27、 KEYC_1 CALL CLEARKEYC_1: CALL LP1 MOV AL,9CH MOV SI+5,AL MOV AL,0CH MOV DI+5,AL CALL DISP RETKEY8:CMP BH,00H;按鍵8處理子程序 JZ KEYF_B CALL CLEARKEY8_1: CALL LP1 MOV AL,0FEH MOV SI+5,AL MOV AL,08H MOV DI+5,AL CALL DISP RET KEY4:CMP BH,00H ;按鍵4處理子程序 JZ KEY7_1 CALL CLEARKEY4_1: CALL LP1 MOV AL,66H MOV SI+5,

28、AL MOV AL,04H MOV DI+5,AL CALL DISP RET KEY3:CMP BH,00H;按鍵3處理子程序 JZ KEY3_1 CALL CLEARKEY3_1: CALL LP1 MOV AL,0F2H MOV SI+5,AL MOV AL,03H MOV DI+5,AL CALL DISP RET;- -;數據清零子程序CLEAR: MOV SI,OFFSET VA2 MOV DI,OFFSET VA3 MOV CX,000AHCLEAR1: MOV AL,0FCH MOV SI,AL MOV AL,00H MOV DI,AL INC SI INC DI LOOP C

29、LEAR1 MOV BH,00H RET ;-;4位十六進制加法子程序 ADD1:LEA SI,DATA3 LEA DI,DATA4CLCMOV CX,0004HADD2:MOV AL,DIADD AL,SICMP AL,10HJL ADD3SUB AL,10HMOV BL,01HADD DI+1,BLADD3:MOV DI,ALINC SIINC DILOOP ADD2CALL CHANGECALL DISPRET ;- ;4位10進制除法子程序CHU: MOV SI,OFFSET VA3 MOV DI,OFFSET VA4 CLC MOV CL,04H MOV AL,DI+3 SHL AL

30、,CL ADD AL,DI+2 MOV AH,AL MOV AL,DI+1 SHL AL,CL ADD AL,DI MOV BL,SI+3 SHL BL,CL ADD BL,SI+2 MOV BH,BL MOV BL,SI+1 SHL BL,CL ADD BL,SI XOR DX,DX DIV DX MOV BX,AX AND BH,0F0H SHR BH,CL AND AH,0F0H SHR BL,CL AND AL,0F0H MOV DI+3,BH MOV DI+2,AH MOV DI+1,BL MOV DI,AL CALL CHANGE CALL DISP RET;-CHANGE: MO

31、V SI,OFFSET VA2 MOV DI,OFFSET VA4 MOV BX,OFFSET TABL MOV CX,0006HCOMP0: MOV AL,DI XLAT MOV SI,AL INC SI INC DI LOOP COMP0 RET ;-;保存上一次數據子程序LP3: MOV CX,0006H MOV SI,OFFSET VA3 MOV DI,OFFSET VA4LP4: MOV AL,SI MOV DI,AL INC SI INC DI LOOP LP4 RET ;- ;顯示子程序DISP: MOV SI,OFFSET VA1 MOV DI,OFFSET VA2 MOV DL,DI+5 CMP DL,0FCH JNZ DIR5 MOV DL,DI+4 CMP DL,0FCH JNZ DIR4 MOV DL,DI+3 CMP DL,0FCH JNZ DIR3 MOV DL,DI+2 CMP DL,0FCH JNZ DIR2 MOV DL,DI+1 CMP DL,0FCH JNZ DIR1 JMP DIR0 JMP DIR0DIR5: MOV CX,0006H JMP DIR DIR4: MOV CX,0005H JMP DIRDIR3: MOV CX,0004H JMP DIRDIR2:

溫馨提示

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

評論

0/150

提交評論