微機(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),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 課 程 設(shè) 計(jì) 課程名稱 微機(jī)課程設(shè)計(jì) 題目名稱_ 計(jì)算器(1) 學(xué)生學(xué)院_ _ 自動(dòng)化_ 一、課程設(shè)計(jì)的目的1、鞏固和加深對(duì)微機(jī)原理及應(yīng)用課程內(nèi)容的認(rèn)識(shí)和理解,提高應(yīng)用水平2、掌握匯編語言程序的編程方法3、熟悉鍵盤控制和七段數(shù)碼管的使用二、課程設(shè)計(jì)的內(nèi)容 1.把存儲(chǔ)器單元中的0ah,02h,0fh,09h從四位七段led數(shù)碼管同時(shí)顯示出來,要求做成循環(huán)程序,并使用xlat來譯碼。2編寫程序,實(shí)現(xiàn)以下鍵盤功能,按任意鍵在顯示器上顯示對(duì)應(yīng)鍵值,要求顯示值能夠?qū)崿F(xiàn)左移功能。5a7fb3c0 3.實(shí)現(xiàn):a)定義鍵盤按鍵,5個(gè)為數(shù)字鍵3、4、5、6、7,7個(gè)功能鍵:減號(hào),除號(hào),等號(hào);b)可進(jìn)行三位8

2、進(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)程安排序號(hào)設(shè)計(jì)各階段內(nèi)容地點(diǎn)起止日期1領(lǐng)取任務(wù)書實(shí)2-20612.222收集,整理資料圖書館、宿舍12.223上機(jī)編寫調(diào)試程序?qū)?-20612.2312.244撰寫課程設(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è)出版

3、社,2008發(fā)出任務(wù)書日期:2008年 12月 22日 指導(dǎo)教師簽名:計(jì)劃完成日期: 2008 年 12月 25日 基層教學(xué)單位責(zé)任人簽章:主管院長(zhǎng)簽章:目錄一、源程序51程序一51.1 題目51.2 源程序52程序二62.1題目62.2 源程序63程序三103.1題目103.2 源程序10二、心得與體會(huì)19三、參考文獻(xiàn)191.程序一1.1題目:把存儲(chǔ)器單元中的0ah,02h,0fh,09h從四位七段led數(shù)碼管同時(shí)顯示出來,要求做成循環(huán)程序,并使用xlat來譯碼。1.2源程序:stack segment stack dw 64 dup(?)stack endsdata segmenttab1

4、 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 al,80h ;8255a初始化 out 63h,all1: mov dl,0feh mov si,offset tab1 mov cx,0004hl2: mov al,dl ;位碼送給al out 60h,al

5、 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: dec ax jnz time2 loop time1 pop cx pop ax retcode ends end start2.程序一2.1題目:2編寫程序,實(shí)現(xiàn)以下鍵盤功能,按任意鍵在顯示器上顯示對(duì)應(yīng)鍵

6、值,要求顯示值能夠?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,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71hdata endscode segment assume cs:code,ds:datastart: mov ax,data

7、mov ds,ax mov al,88h out 63h,al ;8255a初始化stt: mov al,00h ;鍵盤測(cè)試 out 60h,alnext: in al,62h and al,60h cmp al,60h jnz keyabc call disp ;調(diào)用顯示程序 jmp stt;-keyabc: call time ;延時(shí),去抖動(dòng) in al,62h and al,60h cmp al,60h jnz key jmp sttkey: mov al,0feh ;鍵盤掃描識(shí)別 out 60h,al in al,62h test al,40h jnz key_b call key5

8、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 al,40h jnz key_c call key7 jmp sttkkey_c: test al,20h jnz key_f call keyc

9、 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 di+4,al lea bx,tabl ;查表取出要顯示數(shù)字的數(shù)碼管段碼 xlat tabl mov si+4,al call disp ;顯示 ret ;返回;-keyb: call lp1 ;按鍵b處理子程

10、序 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,tabl xlat tabl mov si+4,al call disp ret;-key7: call lp1 ;按鍵7處理子程序 mov al,

11、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 tabl mov si+4,al call disp ret;-key0: call lp1 ;按鍵0處理子程序 mov al,00h mov d

12、i+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 loop lp2 ret;-disp: mov si,offset var1 ;顯示子程序 mov di,offset var2 mov cx,0004hdir: mov al,si out 60h,al m

13、ov 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 ;放鍵測(cè)試程序 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

14、)定義鍵盤按鍵,5個(gè)為數(shù)字鍵3、4、5、6、7,7個(gè)功能鍵:減號(hào),除號(hào),等號(hào);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 db 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,

15、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 ;鍵盤測(cè)試 out 60h,alnext: in al,62h and al,60h cmp al,60h jnz keyabc call disp ;調(diào)用顯示程序 jmp stt;-keyabc: call time ;延時(shí),去抖動(dòng) in al,62h and al

16、,60h cmp al,60h jnz key jmp sttkey: mov al,0feh ;鍵盤掃描識(shí)別 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,40h jnz key_5 call keyjian jmp sttkkey_5: test al,20h jnz key_chu call key5 jmp s

17、ttkkey_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: test al,20h jnz key_71 call key7key_71: jmp sttk;-key3: cmp bh,00h ;按鍵3處理子程序 jz

18、 key3_1 ;未按過符號(hào)鍵,不清零 call clear ;已按過符號(hào)鍵,清零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處理子程序 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 cal

19、l 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 clearkey6_1: call lp1 mov al,06h mov di+4,al push bx lea bx,tabl xlat tabl mov si+4,al c

20、all 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 lp3keyjian_1: cmp bx,0101h ret;-keychu: cmp bh,00h ;按鍵/處理子程序 jnz keychu_1 call

21、lp3keychu_1: cmp bx,0102h ret;-keyden: cmp bl,00h ;按鍵=處理子程序 jnz keyden_1 call clear call dispkeyden_1: mov bh,01h cmp bl,01h ;是-號(hào)? jz k1 ;進(jìn)行減法運(yùn)算 cmp bl,02h ;是/號(hào)? jz k2 ;進(jìn)行除法運(yùn)算stte: retk1: call jian jmp sttek2: call chu jmp stte ;-jian: mov si,offset var3 ;三位8進(jìn)制減法子程序 mov di,offset var4 clc mov cx,000

22、4h 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)算完畢符號(hào)位清零 ret;-chu: mov si,offset var3 ;兩位10進(jìn)制除法子程序 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

23、,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 ;調(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 a

24、x,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 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

25、 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,0004h ;保存上一次數(shù)據(jù)子程序 mov si,offset var3 mov di,offset var4lp4: mov al,si mov di,al inc si inc di loop lp4 ret;

26、.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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論