微機(jī)課程設(shè)計(jì)計(jì)算器_第1頁
微機(jī)課程設(shè)計(jì)計(jì)算器_第2頁
微機(jī)課程設(shè)計(jì)計(jì)算器_第3頁
微機(jī)課程設(shè)計(jì)計(jì)算器_第4頁
微機(jī)課程設(shè)計(jì)計(jì)算器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計(jì) 課程名稱 微機(jī)課程設(shè)計(jì) 題目名稱_ 計(jì)算器(1) 學(xué)生學(xué)院_ _ 自動化_專業(yè)班級_ 自動化(1)班_ _學(xué) 號 學(xué)生姓名_ 謝曉新_ _指導(dǎo)教師_ 李傳芳 _2008 年 12月 25日廣東工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書題目名稱計(jì)算器(1)學(xué)生學(xué)院自動化專業(yè)班級自動化(1)班姓 名謝曉新學(xué) 號一、課程設(shè)計(jì)的目的1、鞏固和加深對微機(jī)原理及應(yīng)用課程內(nèi)容的認(rèn)識和理解,提高應(yīng)用水平2、掌握匯編語言程序的編程方法3、熟悉鍵盤控制和七段數(shù)碼管的使用二、課程設(shè)計(jì)的內(nèi)容 1.把存儲器單元中的0AH,02H,0FH,09H從四位七段LED數(shù)碼管同時(shí)顯示出來,要求做成循環(huán)程序,并使用XLAT來譯碼。2編

2、寫程序,實(shí)現(xiàn)以下鍵盤功能,按任意鍵在顯示器上顯示對應(yīng)鍵值,要求顯示值能夠?qū)崿F(xiàn)左移功能。5A7FB3C0 3.實(shí)現(xiàn):a)定義鍵盤按鍵,5個(gè)為數(shù)字鍵3、4、5、6、7,7個(gè)功能鍵:減號,除號,等號;b)可進(jìn)行三位8進(jìn)制減法運(yùn)算;c)可進(jìn)行兩位10進(jìn)制除法運(yùn)算。三、課程設(shè)計(jì)應(yīng)完成的工作1.搜集、整理和研究資料,可參考教材后的實(shí)例。2.按電路框圖連接電路,編寫程序完成各個(gè)程序設(shè)計(jì)要求,并完成調(diào)試。3.完成課程設(shè)計(jì)的報(bào)告書一份。四、課程設(shè)計(jì)進(jìn)程安排序號設(shè)計(jì)各階段內(nèi)容地點(diǎn)起止日期1領(lǐng)取任務(wù)書實(shí)2-20612.222收集,整理資料圖書館、宿舍12.223上機(jī)編寫調(diào)試程序?qū)?-20612.2312.244撰寫

3、課程設(shè)計(jì)報(bào)告宿舍12.25五、應(yīng)收集的資料及主要參考文獻(xiàn)1.微型計(jì)算機(jī)原理及應(yīng)用.許立梓等編.北京:機(jī)械工業(yè)出版社,20032.微型計(jì)算機(jī)原理及應(yīng)用習(xí)題解答、試驗(yàn)指導(dǎo)及課程設(shè)計(jì). 許立梓等編.北京:機(jī)械工業(yè)出版社,2008發(fā)出任務(wù)書日期:2008年 12月 22日 指導(dǎo)教師簽名:計(jì)劃完成日期: 2008 年 12月 25日 基層教學(xué)單位責(zé)任人簽章:主管院長簽章:目錄一、源程序51程序一51.1 題目51.2 源程序52程序二62.1題目62.2 源程序63程序三103.1題目103.2 源程序10二、心得與體會19三、參考文獻(xiàn)191.程序一1.1題目:把存儲器單元中的0AH,02H,0FH,0

4、9H從四位七段LED數(shù)碼管同時(shí)顯示出來,要求做成循環(huán)程序,并使用XLAT來譯碼。1.2源程序:STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTAB1 DB 0AH,02H,0FH,09H ;設(shè)置四位查詢位TAB2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;設(shè)置0F的十六位數(shù)碼管段碼 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV A

5、L,80H ;8255A初始化 OUT 63H,ALL1: MOV DL,0FEH MOV SI,OFFSET TAB1 MOV CX,0004HL2: MOV AL,DL ;位碼送給AL OUT 60H,AL MOV AL,SI MOV BX,OFFSET TAB2 ;查表取出數(shù)碼管的段碼 XLAT TAB2 OUT 61H,AL ;查表的段碼送A口顯示 INC SI ROL DL,01H ;下個(gè)要顯示的數(shù)碼管位碼 CALL TIME LOOP L2 JMP L1TIME: PUSH AX ;延時(shí)程序 PUSH CX MOV CX,0002HTIME1: MOV AX,0300HTIME2:

6、 DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETCODE ENDS END START2.程序一2.1題目:2編寫程序,實(shí)現(xiàn)以下鍵盤功能,按任意鍵在顯示器上顯示對應(yīng)鍵值,要求顯示值能夠?qū)崿F(xiàn)左移功能。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,

7、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初始化STT: MOV AL,00H ;鍵盤測試 OUT 60H,ALNEXT: IN AL,62H AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP ;調(diào)用顯示程序 JMP STT;-KEYABC: CALL TIME ;延時(shí),去抖動 IN AL,62H AND AL,60H

8、 CMP AL,60H JNZ KEY JMP STTKEY: 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

9、,0FBH OUT 60H,AL IN AL,62H TEST 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位字節(jié)前移 MOV AL,05H MOV

10、DI+4,AL LEA BX,TABL ;查表取出要顯示數(shù)字的數(shù)碼管段碼 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處理子程序

11、 MOV AL,03H MOV DI+4,AL LEA BX,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,0

12、FH MOV DI+4,AL LEA BX,TABL XLAT 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 ;數(shù)據(jù)移位保存子程序(前移四位) 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

13、 LOOP LP2 RET;-DISP: MOV SI,OFFSET 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 ;延時(shí)程序 PUSH CX MOV CX,0002HTIME1: MOV AX,0300HTIME2: DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RET;-STTK: CALL DISP ;放鍵測試程序

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

15、B 00H,00H,00H,00H,00H ;當(dāng)前值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,6

16、2H AND AL,60H CMP AL,60H JNZ KEYABC CALL DISP ;調(diào)用顯示程序 JMP STT;-KEYABC: CALL TIME ;延時(shí),去抖動 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 6

17、0H,AL IN AL,62H TEST AL,40H 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

18、 CALL KEY3 JMP STTKKEY_7: 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位字節(jié)前移 MOV AL,03H MOV DI+4,AL PUSH BX ;保護(hù)BX LEA BX,TABL XLAT TABL MOV SI+4,AL CALL DISP ;顯示 POP BX RET ;返回;-KEY4: CMP BH,00H ;按鍵4處理子程序

19、JZ KEY4_1 CALL CLEARKEY4_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處理子程

20、序 JZ KEY6_1 CALL CLEARKEY6_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 ;按鍵

21、-處理子程序 JNZ KEYJIAN_1 CALL 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 ;進(jìn)行減法運(yùn)算 CMP BL,02H ;是/號? JZ K2 ;進(jìn)行除法運(yùn)算STTE: RETK1: CALL JI

22、AN JMP STTEK2: CALL CHU JMP STTE ;-JIAN: MOV SI,OFFSET VAR3 ;三位8進(jìn)制減法子程序 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 ;運(yùn)算完畢符號位清零 RET;-CHU: MOV SI,OFFSET VAR3 ;兩位10進(jìn)

23、制除法子程序 MOV DI,OFFSET VAR4 CLC MOV DL,DI ;調(diào)整VAR4,10進(jìn)制轉(zhuǎn)換成16進(jìn)制,保存在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 ;

24、調(diào)整VAR3,10進(jìn)制轉(zhuǎn)換成16進(jìn)制,保存在CX 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進(jìn)制進(jìn)行除法運(yùn)算 MOV DX,0000H MOV CH,00H DIV CX ;調(diào)整結(jié)果為10進(jìn)制 MOV CX,10 MOV DX,0000H DIV CX MOV DI,DL MOV

25、 DX,0000H DIV CX MOV DI+1, 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 ;數(shù)據(jù)移位保存子程序(前移四位) 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,00

26、04H ;保存上一次數(shù)據(jù)子程序 MOV SI,OFFSET 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,0001HDI

溫馨提示

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

最新文檔

評論

0/150

提交評論