《微機(jī)原理與通信接口》課程設(shè)計(jì)說明書_第1頁(yè)
《微機(jī)原理與通信接口》課程設(shè)計(jì)說明書_第2頁(yè)
《微機(jī)原理與通信接口》課程設(shè)計(jì)說明書_第3頁(yè)
《微機(jī)原理與通信接口》課程設(shè)計(jì)說明書_第4頁(yè)
《微機(jī)原理與通信接口》課程設(shè)計(jì)說明書_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、武漢理工大學(xué)微機(jī)原理與通信接口課程設(shè)計(jì)說明書1. 系統(tǒng)需求分析1.1 dos中斷及功能調(diào)用簡(jiǎn)介目前dos常用的9類中斷(20h-27h和2fh)分為兩種:dos專用中斷和dos可調(diào)用中斷。(1) dos專用中斷。dos專用中斷是指int 22h、int 23h和int 24h三個(gè)中斷,屬dos操作時(shí)專用,用戶不要直接使用。(2) dos可調(diào)用中斷。dos可調(diào)用中斷是指int 20h、int 21h、int 25h、int 26h、int 27h和int 2fh六個(gè)中斷。這六個(gè)中斷都供用戶直接調(diào)用,但都必須要滿足一定的入口條件。1) 磁盤讀/寫中斷。int 25h和int 26h分別用來(lái)讀和寫磁

2、盤上的若干扇區(qū),這實(shí)際上是兩條bios調(diào)用。2) 程序退出中斷?!癷nt 20h”和“int 27h”都為程序的退出命令。其中“int 20h”為正常退出命令,當(dāng)用戶程序執(zhí)行完后,可用該命令退回操作系統(tǒng);“int 27h”為駐留退出命令,采用該退出命令時(shí),留下的程序被dos視為自身的一部分,不會(huì)被其他程序覆蓋。在其他用戶程序中,可通過使用軟中斷調(diào)用這部分駐留程序。3) 假脫機(jī)打印文件中斷?!癷nt 2fh”用來(lái)實(shí)現(xiàn)假脫機(jī)打印文件命令print。該命令的功能是,當(dāng)用戶在機(jī)器上執(zhí)行其他任務(wù)時(shí),打印機(jī)仍可打印處在打印隊(duì)列中的數(shù)據(jù)文件。一個(gè)打印隊(duì)列可容納多至32個(gè)文件。4) 系統(tǒng)功能調(diào)用。系統(tǒng)功能調(diào)用

3、是指“int 21h”中斷。它是可供系統(tǒng)程序和應(yīng)用程序調(diào)用的一個(gè)極其重要的中斷,內(nèi)含近百個(gè)系統(tǒng)子功能。操作系統(tǒng)的內(nèi)核主要由它構(gòu)成。系統(tǒng)功能調(diào)用的近百個(gè)系統(tǒng)子功能已經(jīng)標(biāo)準(zhǔn)化,調(diào)用它們時(shí)完全不依賴于任何硬件設(shè)備,因此,用這些子功能編寫研制成的所有系統(tǒng)軟件或應(yīng)用程序可在任何支持dos的機(jī)器上運(yùn)行。1.2 時(shí)間日期系統(tǒng)功能調(diào)用“int 21h”是一個(gè)使用方便的系統(tǒng)服務(wù)程序,它的功能豐富,共有84個(gè)子功能,此次課程設(shè)計(jì)中,主要用到時(shí)間日期系統(tǒng)的功能調(diào)用,如表1.1所示:表1.1 時(shí)間日期系統(tǒng)功能調(diào)用功能號(hào)功能入口參數(shù)出口參數(shù)dos版本2ah取日期cx:dx=日期1,2,3,62bh置日期cx:dx=日期

4、al=00,成功al=ff,失敗1,2,3,62ch取時(shí)間cx:dx=時(shí)間1,2,3,62dh置時(shí)間cx:dx=時(shí)間al=00,成功al=ff,失敗1,2,3,62. 程序流程圖若為“q”程序退出,結(jié)束在屏幕上實(shí)時(shí)顯示日期或時(shí)間調(diào)用時(shí)間數(shù)值轉(zhuǎn)換子程序調(diào)用日期數(shù)值轉(zhuǎn)換子程序利用bios中時(shí)間參數(shù)的調(diào)用方法取時(shí)間利用bios中時(shí)間參數(shù)的調(diào)用方法取日期若為“t”調(diào)用顯示時(shí)間子程序若為“d”調(diào)用顯示日期子程序從鍵盤輸入一個(gè)字符設(shè)置顯示方式和顯示提示信息開始 圖2.1 程序流程圖3. 程序設(shè)計(jì)stack segment stack dw 200 dup (?)stack endsdata segment

5、 time_style db 8 dup (:),12 dup ( ) date_style db 18 dup ( ) str db please select date(d) or time(t) or quit(q): $data endscode segment assume cs:code,ds:data,es:data,ss:stackstart: mov ax,0001h ;設(shè)置顯示方式為40*25彩色文本方式 int 10h mov ax,data mov ds,ax mov es,ax mov cx,0 mov ax,1300h int 10h mov dx,offset s

6、tr ;顯示提示信息 mov ah,9 int 21h mov ah,1 ;從鍵盤輸入單個(gè)字符 int 21h cmp al,44h ;al=d? jne a call date ;顯示系統(tǒng)日期a: cmp al,54h ;al=t? jne b call time ;顯示系統(tǒng)時(shí)間 b: cmp al,51h ;al=q? jne start mov ah,4ch ;返回dos狀態(tài) int 21hdate proc near ;顯示日期子程序display: mov ah,2ah ;取日期 int 21h mov si,0 mov ax,cx mov bx,100 div bl mov bl,

7、ah call bcdasc1 ;日期數(shù)值轉(zhuǎn)換成相應(yīng)的ascii碼字符 mov al,bl call bcdasc1 inc si mov al,dh call bcdasc1 inc si mov al,dl call bcdasc1 mov bp,offset date_style mov dx,0c0dh mov cx,18 mov bx,0007h mov ax,1301h int 10h mov ah,02h ;設(shè)置光標(biāo)位置 mov dx,0300h mov bh,0 int 10h mov bx,0018h rep: dec bx jnz rep mov ah,01h ;讀鍵盤緩沖

8、區(qū)字符到al寄存器 int 16h je display jmp start mov ax,4c00h int 21h retdate endptime proc near ;顯示時(shí)間子程序display1: mov si,0 mov bx,100 div bl mov ah,2ch ;取時(shí)間 int 21h mov al,ch call bcdasc ;將時(shí)間數(shù)值轉(zhuǎn)換成ascii碼字符 inc si mov al,cl call bcdasc inc si mov al,dh call bcdasc mov bp,offset time_style mov dx,0c0dh mov cx,1

9、8 mov bx,007h mov ax,1301h int 10h mov ah,02h mov dx,0300h mov bh,0 int 10h mov bx,0018hre: mov cx,0ffffhrea: loop rea dec bx jnz re mov ah,01h int 16h je display1 jmp start mov ax,4c00h int 21h rettime endpbcdasc proc near ;時(shí)間數(shù)值轉(zhuǎn)換成ascii碼字符子程序 push bx cbw mov bl,10 div bl add al,0 mov time_stylesi,a

10、l inc si add ah,0 mov time_stylesi,ah inc si pop bx retbcdasc endpbcdasc1 proc near ;日期數(shù)值轉(zhuǎn)換成ascii碼字符子程序 push bx cbw mov bl,10 div bl add al,0 mov date_stylesi,al inc si add ah,0 mov date_stylesi,ah inc si pop bx retbcdasc1 endpcode ends end start4. 運(yùn)行結(jié)果和分析將程序編譯成功后運(yùn)行,從鍵盤輸入字母“d”,運(yùn)行結(jié)果如圖4.1所示:圖4.1 顯示系統(tǒng)日

11、期從鍵盤輸入字母“t”,運(yùn)行結(jié)果如圖4.2所示:圖4.2 顯示系統(tǒng)時(shí)間該程序由主程序分別調(diào)用顯示日期和顯示時(shí)間的子程序,利用bios中對(duì)時(shí)間參數(shù)的調(diào)用方法,實(shí)現(xiàn)取時(shí)間和取日期。由于取到的值與顯示在屏幕上的字符有類型的差別,于是通過時(shí)間和日期的子程序,進(jìn)行數(shù)值轉(zhuǎn)換,得到需要的字符類型對(duì)應(yīng)的ascii碼,從而顯示在屏幕上。5. 心得體會(huì)這次微機(jī)原理的課程設(shè)計(jì),我們的題目是系統(tǒng)時(shí)間顯示程序設(shè)計(jì),經(jīng)過翻閱微型計(jì)算機(jī)原理與接口技術(shù)的課本,以及相關(guān)資料,還有在網(wǎng)上搜集的類似設(shè)計(jì),最終我們確定了設(shè)計(jì)思路和電路原理圖。根據(jù)要求,程序設(shè)計(jì)中分為兩個(gè)功能模塊,一個(gè)是顯示日期:年、月、日,一個(gè)是顯示時(shí)間:時(shí)、分、秒

12、。這里可以將兩個(gè)功能分別編寫為一個(gè)子程序,分別實(shí)現(xiàn)相對(duì)應(yīng)的功能,然后通過判斷功能的選擇來(lái)實(shí)現(xiàn)對(duì)應(yīng)子程序的調(diào)用。首先跟據(jù)設(shè)計(jì)思路,畫出程序流程圖,再用匯編語(yǔ)言實(shí)現(xiàn)單個(gè)流程,通過再次的翻閱課本及相關(guān)功能的實(shí)現(xiàn)程序,寫出對(duì)應(yīng)的匯編程序,然后通過條件控制語(yǔ)句將各個(gè)模塊連接在一起,從而得到整個(gè)程序,完成程序設(shè)計(jì)。接下來(lái)就是運(yùn)行以及修改調(diào)試。程序的主要問題在于如何利用bios中時(shí)間參數(shù)的調(diào)用方法實(shí)現(xiàn)功能,以及相關(guān)參數(shù)在作為字符顯示時(shí)的數(shù)值轉(zhuǎn)換,解決了這兩個(gè)問題,程序的主要功能已達(dá)到要求,再加以完善和補(bǔ)充即可。在程序編譯過程中也出現(xiàn)了些小問題,如漏掉“,” ,指令鍵入錯(cuò)誤等,但經(jīng)過檢查和修改,終于編譯成功了!通過這次微機(jī)原理的課程設(shè)計(jì),我從中不僅學(xué)到了系統(tǒng)時(shí)間顯示程序的設(shè)計(jì)原理和基本思路,深入了解了匯編語(yǔ)言中bios時(shí)間參數(shù)的調(diào)用,而且也加深了對(duì)理論的認(rèn)識(shí),進(jìn)一步理解了匯編語(yǔ)言的指令功能和用法,了解了如何通過程序去實(shí)現(xiàn)功能,通過功能測(cè)試如何發(fā)現(xiàn)問題并通過修改程序而解決問題,更學(xué)會(huì)了如何通過各種途徑收集資料,從中獲取需要的信息,并為我所用,成為自己的能力,這對(duì)于今后的學(xué)習(xí)還是工作都有著積極的影響。參考文獻(xiàn)1 姚燕南,薛鈞義.微型計(jì)算機(jī)原理與接口技術(shù).北京:高等教育出版,2004.11.2 艾德才.微型計(jì)算機(jī)原理與接口技術(shù).北京:清華大學(xué)出版社,2005.9.3 沈美明.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論