日期時(shí)間顯示系統(tǒng)_第1頁
日期時(shí)間顯示系統(tǒng)_第2頁
日期時(shí)間顯示系統(tǒng)_第3頁
日期時(shí)間顯示系統(tǒng)_第4頁
日期時(shí)間顯示系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、鄭州科技學(xué)院微機(jī)原理與接口技術(shù)課程設(shè)計(jì)題 目 日期時(shí)間顯示系統(tǒng)目 錄1課程設(shè)計(jì)的目的12課程設(shè)計(jì)的任務(wù)與要求13 設(shè)計(jì)方案與論證14設(shè)計(jì)原理及功能說明14.1 程序流程圖 24.2 系統(tǒng)工作原理 35硬件的制作與調(diào)試45.1 方案所需軟件與硬件條件55.2 具體各部分功能實(shí)現(xiàn)55.3實(shí)驗(yàn)結(jié)果86總結(jié) 9參考文獻(xiàn)11附錄111 課程設(shè)計(jì)的目的用匯編語言獨(dú)立完成一個(gè)程序題,以達(dá)到熟練運(yùn)用匯編語言編程實(shí)現(xiàn)有比較完整功能的程序的目的。 (1)學(xué)習(xí)分支、中斷、和邏輯表達(dá)。  (2)熟悉匯編語言程序的編譯、鏈接過程。2課程設(shè)計(jì)的任務(wù)與要求設(shè)計(jì)一個(gè)顯示日期或時(shí)間的匯編程序間且滿

2、足以下要求:基本功能:運(yùn)行可執(zhí)行程序RQSZ.exe,在出現(xiàn)的提示信息中輸入大寫字母“D”,可顯示系統(tǒng)當(dāng)前日期;輸入大寫字母“T”,可顯示系統(tǒng)當(dāng)前時(shí)間;輸入大寫字母“Q”,可結(jié)束程序。3設(shè)計(jì)方案與論證根據(jù)鍵盤輸入的相關(guān)內(nèi)容,如:若輸入D,則設(shè)計(jì)程序代碼依次讀取系統(tǒng)日期年、月、日,并轉(zhuǎn)換成BCD碼調(diào)用號(hào)中斷予以顯示;若在鍵盤輸入T,則設(shè)計(jì)程序代碼依次讀取系統(tǒng)時(shí)間時(shí)、分、秒,并轉(zhuǎn)換成碼并調(diào)用號(hào)中斷予以顯示;若輸入大寫字母Q,則退出當(dāng)前狀態(tài);若不是相關(guān)字符,則不于任何響應(yīng),并不顯示任何信息。4設(shè)計(jì)原理及功能說明4.1 程序流程圖由課程設(shè)計(jì)任務(wù)要求可知,程序的大致過程是:先判斷輸入的字符是否為“D”、

3、“T”、“Q”,否則回到初始狀態(tài)等待重新輸入。若為“D”,則調(diào)用日期讀取程序,顯示出日期并回到初始狀態(tài);若為“T”,則調(diào)用時(shí)間讀取程序,顯示出時(shí)間并回到初始狀態(tài);若為“Q”,則直接退出程序。由此可以畫出如下程序流程圖:4.2 系統(tǒng)工作原理說明本次課程設(shè)計(jì)的程序編譯和調(diào)試應(yīng)該都是在DOS環(huán)境中進(jìn)行的。程序的工作過程如前一節(jié)的流程圖所示。其中調(diào)用日期的子程序需要用到DOS中的2AH號(hào)功能,而調(diào)用系統(tǒng)時(shí)間的子程序需要用到DOS中的2CH號(hào)功能,最后退出程序的功能則需要用到I/O中斷。在調(diào)用子程序之前還用到了簡單的判斷程序,判斷符合要求才調(diào)用子程序,否則退出。在程序讀取系統(tǒng)時(shí)間和日期時(shí),由于讀取的數(shù)據(jù)

4、都是二進(jìn)制數(shù),所以要顯示正常結(jié)果必須加上一個(gè)二進(jìn)制轉(zhuǎn)化為BCD碼的程序。5硬件的制作與調(diào)試5.1 方案所需軟件與硬件條件所需軟件條件:武漢大學(xué)開發(fā)的輕松匯編軟件。輕松匯編是一個(gè)匯編語言的集成開發(fā)環(huán)境,主要面向匯編語言的初學(xué)者。它提供了一個(gè)在Windows界面下的匯編語言開發(fā)環(huán)境,具有了一般的集成開發(fā)環(huán)境所提供的功能。所需硬件條件:一臺(tái)PC機(jī)5.2 具體各部分功能實(shí)現(xiàn)程序調(diào)試本次課設(shè)的程序調(diào)試所用到的軟件是武漢大學(xué)開發(fā)的輕松匯編軟件。調(diào)試步驟如下:(1) 打開輕松匯編軟件,在右側(cè)的程序編輯區(qū)輸入自己寫的匯編程序。然后點(diǎn)擊保存按鈕。(2) 再點(diǎn)擊“運(yùn)行”菜單欄中的“編譯”按鈕,出現(xiàn)如圖4提示:出現(xiàn)

5、提示說明編寫的程序有錯(cuò)誤和警告,按照提示將錯(cuò)誤改正?!癛eserved word used as symbol:STACK”,說明STACK與系統(tǒng)默認(rèn)標(biāo)識(shí)符相同,改成STACK1即可。(3) 程序改正后,再一次點(diǎn)擊“運(yùn)行”菜單欄里的“生成”和“運(yùn)行”,生成zhaohao.exe文件(4) 在光標(biāo)后輸入D或T,分別實(shí)現(xiàn)調(diào)用系統(tǒng)日期、時(shí)間功能。(5) 若在光標(biāo)后輸入字符Q,則會(huì)出現(xiàn)如下字符串并退出程序INT 21H ;顯示BUF2中的字符串MOV AH,2AHINT 21H ;利用DOS的2AH功能來調(diào)用系統(tǒng)日期 MOV YEAR,CXMOV MON,DHMOV DAY,DLMOV DI,OFFS

6、ET BUFMOV AX,YEARMOV CX,4CALL DIVNUMCALL LISNUMCALL DIS1MOV AL,MONMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL DIS1MOV AL,DAYMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL ENTER1JMP START ; 分別定義時(shí)分秒數(shù)據(jù)寄存器 ;對(duì)年進(jìn)行二進(jìn)制轉(zhuǎn)換并存于寄存器中 ;輸出寄存器中的數(shù)據(jù) ;在年后加入分隔符-,將年與月分開;對(duì)月進(jìn)行二進(jìn)制轉(zhuǎn)換并存于寄存器中 ;輸出寄存器中的數(shù)據(jù) ;加入分隔符-,將月與日隔開 ;調(diào)用顯示字符子程序5.3

7、實(shí)驗(yàn)結(jié)果雙擊RQSZ.exe,程序初始運(yùn)行界面:如果按錯(cuò)了鍵,會(huì)出現(xiàn)如下界面,沒任何反應(yīng),也不顯示任何信息:如果輸入正確如“D”將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)日期):如果輸入正確如“T”將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)時(shí)間):如果輸入“Q”,則退出以上界面。6總結(jié)1. 在完成課程設(shè)計(jì)過程中,我認(rèn)識(shí)到平時(shí)基礎(chǔ)知識(shí)的重要性,只有能夠熟練的掌握才能在實(shí)驗(yàn)過程中得心應(yīng)手,否則一步錯(cuò)則整個(gè)試驗(yàn)都會(huì)陷入困境,因而,嚴(yán)謹(jǐn)?shù)膽B(tài)度是試驗(yàn)成功的重要保障!2. 通過這次課程設(shè)計(jì),我們對(duì)各個(gè)函數(shù)以及語句有了進(jìn)一步的了解,對(duì)各個(gè)語句的功能有了更深刻的認(rèn)識(shí)和體會(huì),平時(shí)上課的理論知識(shí)只是停留在理論的層面,

8、只有通過了這樣的試驗(yàn)才能更好的體會(huì)到,做到了理論和實(shí)際的相結(jié)合,使理論知識(shí)真正運(yùn)用到了實(shí)踐中去。在課程設(shè)計(jì)過程中,同組人員之間相互合作,共同研究使我更加堅(jiān)信了團(tuán)體的力量。在團(tuán)體的共同協(xié)作和努力下,任何的難題都可以被解決!參考文獻(xiàn)1、微型計(jì)算機(jī)原理與接口技術(shù) 中國礦業(yè)大學(xué)出版社 李長青 主編2、匯編語言程序設(shè)計(jì) 科學(xué)出版社 盧中華等 主編3、微型計(jì)算機(jī)匯編語言程序設(shè)計(jì) 電子科學(xué)技術(shù)出版社 龍尚福 主編4、微機(jī)原理與匯編語言實(shí)用教程 清華大學(xué)出版社 王富榮 主編5、微機(jī)原理與接口技術(shù)課程設(shè)計(jì) 中南大學(xué)出版社 王南蘭 主編6、微機(jī)原理及應(yīng)用 西南交通大學(xué)出版社 晏寄夫 主編7、32位微機(jī)原理與接口技

9、術(shù) 化學(xué)工業(yè)出版社 馬興錄 主編8、微機(jī)原理與接口技術(shù) 電子科技大學(xué)出版社 倪繼烈 主編附錄:STACK1 SEGMENT STACKDW 200 DUP (?)STACK1 ENDSDATA SEGMENTSPACE DB 1000 DUP (' ')PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ')DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ')DB 6 DUP (' '),0C8

10、H,26 DUP (0CDH),0BCH,6 DUP (' ')DBUFFER DB 8 DUP (':'),12 DUP (' ')DBUFFER1 DB 20 DUP (' ')STR1 DB 0DH,0AH, 'PLEASE INPUT DATE(D) OR TIME(T) OR QUIT(Q): $'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK1START: MOV AX,0001H ;設(shè)置顯示方式為40*25彩色文本方式INT 1

11、0HMOV AX,DATAMOV DS,AXMOV ES,AXMOV BP,OFFSET SPACEMOV DX,0B00HMOV CX,1000MOV BX,0040HMOV AX,1300HINT 10HMOV BP,OFFSET PATTERN ;顯示矩形條MOV DX,0B00HMOV CX,120MOV BX,004EHMOV AX,1301HINT 10HLEA DX,STR1 ;顯示提示信息MOV AH,9INT 21HMOV AH,1 ;從鍵盤輸入單個(gè)字符INT 21HCMP AL,44H ;AL='D'?JNE ACALL DATE ;顯示系統(tǒng)日期A: CMP

12、 AL,54H ;AL='T'?JNE BCALL TIME ;顯示系統(tǒng)時(shí)間B: CMP AL,51H ;AL='Q'?JNE STARTMOV AH,4CH ;返回dos狀態(tài)INT 21HDATE PROC NEAR ;顯示日期子程序dis:MOV AH,2AH ;取日期INT 21HMOV SI,0MOV AX,CXMOV BX,100DIV BLMOV BL,AHCALL BCDASC1 ;日期數(shù)值轉(zhuǎn)換成相應(yīng)的ASCII碼字符MOV AL,BLCALL BCDASC1INC SIMOV AL,DHCALL BCDASC1INC SIMOV AL,DLCAL

13、L BCDASC1MOV BP,OFFSET DBUFFER1MOV DX,0C0DHMOV CX,20MOV BX,004EHMOV AX,1301HINT 10HMOV AH,02H ;設(shè)置光標(biāo)位置MOV DX,0300HMOV BH,0INT 10HMOV BX,0018HREPEA: MOV CX,0FFFFH ;延時(shí)REPEAT:LOOP REPEATDEC BXJNZ REPEAMOV AH,01H ;讀鍵盤緩沖區(qū)字符到AL寄存器INT 16HJE disJMP STARTMOV AX,4C00HINT 21HRETDATE ENDPTIME PROC NEAR ;顯示時(shí)間子程序D

14、ISPLAY1:MOV SI,0MOV BX,100DIV BLMOV AH,2CH ;取時(shí)間INT 21HMOV AL,CHCALL BCDASC ;將時(shí)間數(shù)值轉(zhuǎn)換成ASCII碼字符INC SIMOV AL,CLCALL BCDASCINC SIMOV AL,DHCALL BCDASCMOV BP,OFFSET DBUFFERMOV DX,0C0DHMOV CX,20MOV BX,004EHMOV AX,1301HINT 10HMOV AH,02HMOV DX,0300HMOV BH,0INT 10HMOV BX,0018HRE: MOV CX,0FFFFHREA: LOOP READEC

15、BXJNZ REMOV AH,01HINT 16HJE DISPLAY1JMP STARTMOV AX,4C00HINT 21HRETTIME ENDPBCDASC PROC NEAR ;時(shí)間數(shù)值轉(zhuǎn)換成ASCII碼字符子程序PUSH BXCBWMOV BL,10DIV BLADD AL,'0'MOV DBUFFERSI,ALINC SIADD AH,'0'MOV DBUFFERSI,AHINC SIPOP BXRETBCDASC ENDPBCDASC1 PROC NEAR ;日期數(shù)值轉(zhuǎn)換成ASCII碼字符子程序PUSH BXCBWMOV BL,10DIV BLA

16、DD AL,'0'MOV DBUFFER1SI,ALINC SIADD AH,'0'MOV DBUFFER1SI,AHINC SIPOP BXRETBCDASC1 ENDPCODE ENDSEND STARTcursor equ 45H attrib equ 2fh code segment assume cs:code,ds:code start: jmp go oldcur dw ? OLD1C DW 2 DUP(?) NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C push ax PUSH BX PUSH CX PUSH D

17、X XOR BH,BH MOV AH,3 INT 10H MOV CS:OLDCUR,DX MOV AH,2 xor bh,bh MOV DX,CURSOR INT 10H MOV AH,2;讀取系統(tǒng)時(shí)鐘 INT 1AH PUSH DX PUSH CX POP BX PUSH BX CALL SHOWBYTE CALL SHOWCOLON POP BX XCHG BH,BL CALL SHOWBYTE CALL SHOWCOLON POP BX CALL SHOWBYTE MOV DX,CS:OLDCUR MOV AH,2 XOR BH,BH INT 10H POP DX POP CX POP

18、 BX POP AX IRET SHOWBYTE PROC NEAR PUSH BX MOV CL,4 MOV AL,BH SHR AL,CL ADD AL,30H CALL SHOW CALL CURMOVE POP BX MOV AL,BH AND AL,0FH ADD AL,30H CALL SHOW CALL CURMOVE RET SHOWBYTE ENDP SHOWCOLON PROC NEAR MOV AL,':' CALL SHOW CALL CURMOVE RET SHOWCOLON ENDP CURMOVE PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,3 MOV BH,0 INT 10H INC DL MOV AH,2 INT 10H POP DX POP CX POP BX POP AX RET CURMOVE ENDP SHOW PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09H MOV BX,attrib MOV CX,1 INT 10H PO

溫馨提示

  • 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)論