版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、微 機 原 理 課 程 設 計 書院別 信息科學技術學院 專業(yè) 計算機科學與技術 班級 題目 打字練習計時程序 教師 學生 2009年 6 月 1日內(nèi)容提要 本設計為打字計時系統(tǒng),其主要分為五章,第一章為設計概述,主要介紹設計的任務、目標,以及設計所用設備器材,第二章為軟件設計環(huán)境與DOS,主要是介紹軟件設計環(huán)境,以及DOS資料的介紹。并且在此之上畫出了原理框圖。第三章為軟件設計,其主要介紹本設計中采用何種軟件設計方案及相關的流程圖,在流程圖的基礎上,寫出本系統(tǒng)的程序。第四章為調(diào)試及運行結果,它是在完成軟件設計的基礎之上,對本系統(tǒng)進行測試,看是否滿足題目要求,最后以表格的方式對測試的結果給予反
2、應,直接明了。第五章為設計心得總結,主要是介紹在經(jīng)過本次設計后,自己的一些心得體會。最后還給出了本設計的一些參考文獻。前 言微機原理及應用是一門實踐性很強的課程;其課程設計目的在于綜合運用所學知識,全面掌握微型計算機與DOS方式的工作原理、編程和使用方法;在設計中,通過小組協(xié)作提出并論證設計方案,進行軟件調(diào)試,最后獲得正確的結果,可以加深和鞏固對理論知識的更好掌握,進一步建立計算機應用系統(tǒng)體概念,初步掌握DOS開發(fā)方法,為以后進行實際的軟件應用開發(fā)奠定良好的基礎。本設計是利用Masm for window集成實驗環(huán)境來實現(xiàn)的打字練習計時程序,在程序中利用自編的中斷程序kbint檢測按鍵時產(chǎn)生的
3、中斷,并把按鍵的掃描碼轉換為ASCII碼存入緩存區(qū)BUFFER(內(nèi)存中的一個區(qū)域),這個工作和EOM 09類型的鍵盤中斷例行程序所完成的工作大致相同,只是在解釋各個鍵時作了簡化,既只解釋了可顯示字符(入英文小寫字母、數(shù)字及一些字符),其他特殊鍵(如組合鍵、雙態(tài)鍵、功能鍵等)都未做解釋,只作字符碼0來處理。另外加入一個菜單模塊,增加了程序的觀賞性。本次課程設計由某某完成。其中主要負責軟件方案及程序設計,主要負責協(xié)調(diào)測試,是負責尋找資料與文檔的編寫。目 錄第一章 設計概述11.1設計任務11.2設計要求11.3設計目的11.4設備環(huán)境1第二章 設計環(huán)境22.1 Masm for window集成實
4、驗環(huán)境介紹22.2 DOS中斷介紹2第三章 軟件設計方案43.1 軟件設計思想43.2程序流程圖43.3 程序清單6第四章 調(diào)試及運行結果18第五章 課程設計心得19參考文獻20第一章 設計概述1.1設計任務利用PC機鍵盤和時間中斷、字符顯示實現(xiàn)打字練習程序。1.2設計要求在本系統(tǒng)中,要求所需執(zhí)行的操作由相應的開關狀態(tài)反映,其駕駛操作與燈光信號對應關系如下:。1) 自行編制鍵盤中斷和時間中斷處理程序,并保存原中斷向量,程序運行時,使用自編的中斷向量處理程序,程序退出時,恢復中斷向量;2) 在緩沖區(qū)中預放了一些字母,程序運行時,可按照屏幕上顯示的小寫字母進行輸入練習;3) 每輸入完一行按回車鍵后
5、,可顯示出練習輸入的時間。 1.3設計目的 熟悉與掌握有關鍵盤和時間的中斷及字符顯示技術。1.4設備環(huán)境在本設計中,所用到的設備環(huán)境如下所示:A. 計算機一臺;B. Masm for window集成實驗環(huán)境;第二章 設計環(huán)境2.1 Masm for window集成實驗環(huán)境介紹 Masm for Windows 集成實驗環(huán)境是從事一線教學的大學教師針對匯編語言初學者的特點開發(fā)的一個簡單易用的匯編語言的學習軟件,它具有錯誤信息自動定位、關鍵字實時幫助(動畫演示匯編指令執(zhí)行過程)、語法著色、無限的撤消與恢復、WORD式的查找、替換、定位、支持中文長文件名、軟件可以安裝在任意文件夾等功能;a.建立
6、匯編源程序通過b.編譯為目標文件d.連接為可執(zhí)行文件 c.不通過,重新修改(語句錯誤) f.不正確,用調(diào)試工具調(diào)試,重新修改(邏輯錯誤) e運行 正確g.完成2.2 DOS中斷介紹 使用DOS提供的程序控制硬件。優(yōu)點是兼容性好,使用方便。DOS是IBM PC系列微機的操作系統(tǒng)(現(xiàn)在的微機仍能運行DOS,而且新的操作系統(tǒng)也能繼續(xù)提供幾乎所有的DOS功能調(diào)用)負責管理系統(tǒng)的所有資源,協(xié)調(diào)微機的操作,其中包括大量可供用戶調(diào)用的服務程序。DOS的功能調(diào)用不依賴于具體的硬件系統(tǒng)。所有的DOS系統(tǒng)功能調(diào)用都是利用軟件中斷指令INT 21H來實現(xiàn)的。也就是說,在程序中需要調(diào)用DOS功能的時候,只要使用一條I
7、NT 21H指令即可。INT 21H是一個具有90多個子功能的中斷服務程序,這些子功能大致可以分為四類:設備管理、目錄管理、文件管理和其他。其功能一覽表可參見附錄。為了方便用戶使用這些子功能,INT 21H對每一個子功能都進行了編號稱為功能號。這樣,用戶就能通過指定功能號來調(diào)用INT 21H的不同子功能。DOS系統(tǒng)功能調(diào)用的方法如下:1) ->功能號。2) 在其他寄存器中放入該功能所要求的人口參數(shù)。3) 在執(zhí)行INT 21H指令。4) 分析出口參數(shù)。用戶程序與DOS、BIOS和硬件的關系見圖應 用程 序DOSBIOS硬 件第三章 軟件設計方案3.1 軟件設計思想在鍵盤上練習的打字例句及其
8、地址表、計時單元等預先放在DATA數(shù)據(jù)段中。自編的中斷程序kbint檢測按鍵時產(chǎn)生的中斷,并把按鍵的掃描碼轉換為ASCII碼存入緩存區(qū)BUFFER(內(nèi)存中的一個區(qū)域),這個工作和EOM 09類型的鍵盤中斷例行程序所完成的工作大致相同,只是在解釋各個鍵時作了簡化,既只解釋了可顯示字符(入英文小寫字母、數(shù)字及一些字符),其他特殊鍵(如組合鍵、雙態(tài)鍵、功能鍵等)都未做解釋,只作字符碼0來處理。在主程序部分保存原有09類型的中段向量,設置自編例行程序的中斷向量,設置中斷屏蔽位,然后開中斷。當鍵盤中斷處理后,主程序安排指令讀取緩存區(qū)中的字符并顯示在屏幕上。在主程序的末尾,利用DOS功能恢復原09類型的中
9、斷向量,然后返回DOS。在顯示鍵入的字符時,還應判斷字符是否為回車符(0DH)。如為回車符,說明一個句子輸入完畢,此時調(diào)用顯示時間的子程序顯示出打字時間,然后順序顯示一個例句。如果所存放的例句都已顯示完畢,則再次從第一個例句開始顯示,直至鍵入某一個功能(如Esc鍵、Shift鍵等)退出程序,結束打字練習。打字時間統(tǒng)計利用自編的定時器中斷處理程序Clint來完成。每輸入一個例句,計時一次。在此中斷例行程序中,定時器中斷的次數(shù)記錄在計數(shù)單元count中,當count的計數(shù)值為18時,sec計數(shù)單元加1,當sec計數(shù)值打到60時,min計數(shù)單元加1.因為輸入完一個句子無論如何也不會到達小時級,所以對
10、hours計數(shù)值的調(diào)整判斷,實際上只起到退出定時器的作用。加入一個顯示菜單程序,使得原來的程序更具有觀賞性;顯示時間的子程序disptime分別將各計時單元的二進制數(shù)轉換為十進制數(shù),并以min:sec:msec的形式出來。其中msec是有count中的計數(shù)值轉換成的: Count*1s/18.2=count*55ms此式中,18.2是計算機系統(tǒng)產(chǎn)生的一個時間中斷,每秒18.2次 3.2程序流程圖顯示菜單信息調(diào)用菜單宏清屏保存原中斷向量09H到自設的單元中設置自騙處理程序的中斷向量09H保存原中斷向量1CH到自設的單元中設置自騙處理程序的中斷向量1CH設置允許鍵盤和定時器中斷設置顯示方式為80&
11、#215;25顯示提示信息在屏幕上顯示例句初使化變量count、sec、min、hours開始中斷調(diào)用kbget檢測并等待鍵盤中斷的子程序kbflag=80h?(鍵盤輸入的是控制鍵或功能鍵嗎)調(diào)用dispchar顯示該字符鍵入的字符為回車符0DHAL換行符(0AH)調(diào)用dispchar顯示回車換行符字符調(diào)用disptime顯示打字時間顯示回車換行符字符5個例句都練習完了嗎?開始恢復原中斷向量1CH、09H,返回操作系統(tǒng)結束NYNYY3.3 程序清單Init_game macro op1,op2,op3,op4,op5,op6mov cx,00hmov dh,op1mov dl,op2op6:m
12、ov ah,02hmov bh,00hint 10hpush cxmov ah,0ahmov al,op3mov bh,00hmov cx,01hint 10hpop cxinc cxinc op4cmp cx,op5jne op6endmclear_screen macro op1,op2,op3,op4 ;清屏宏定義mov ah,06hmov al,00hmov bh,07hmov ch,op1mov cl,op2mov dh,op3mov dl,op4int 10hmov ah,02hmov bh,00hmov dh,00hmov dl,00hint 10hendmmenu macro
13、op1,op2,op3 ;菜單顯示宏定義mov ah,02hmov bh,00hmov dh,op1mov dl,op2int 10hmov ah,09hlea dx,op3int 21hendmSTACK SEGMENT PARA STACK 'STACK' ;堆棧段定義DB 256 DUP(0);改其他數(shù)字?TOP LABEL WORD STACK ENDS DATA SEGMENT PARA PUBLIC 'DATA' ;數(shù)據(jù)段定義BUFFER DB 16H DUP(0) BUFPT1 DW 0 BUFPT2 DW 0 KBFLAG DB 0 PROMPT
14、 DB ' *PLEASE PRACTISE TYPING*',0DH,0AH,'$' SCANTAB DB 0,0,'1234567890-=',8,0 ;檢測是否為規(guī)定字符DB 'QWERTYUIOP',0DH,0 DB 'ASDFGHJKL;',0,0,0,0 DB 'ZXCVBNM,./',0,0,0 DB ' ',0,0,0,0,0,0,0,0,0,0,0,0,0 DB '789-456+1230.' EVEN OLDCS9 DW ? OLDIP9 DW ?
15、 STR1 DB 'ABCD EFGH IJKL MNOP QRST UVWX YZ.' ;打字練習的字母DB 0DH,0AH,'$' STR2 DB 'THERE ARE SOME NEWSPAPERS ON THE TABLE.' DB 0DH,0AH,'$' STR3 DB 'THERE ARE SOME CLOUDS IN THE SKY.' DB 0DH,0AH,'$' STR4 DB 'SHE ALWAYS EATS HER LUNCH AT NOON.' DB 0DH,
16、0AH,'$' STR5 DB 'I DO NOT LIKE AUTUMN AND WINTER.' CRLF DB 0DH,0AH,'$' COLON DB ':','$' EVEN SADDR DW STR1,STR2,STR3,STR4,STR5 ;存放以上的字母COUNT DW 0 SEC DW 0 ;定義秒數(shù)MIN DW 0 ;定義分數(shù)HOURS DW 0 ;定義時數(shù)SAVE_LC DW 2 DUP(?) evenZK db "WELCOME TO PLAY$" ;菜單的形式信息no
17、db "date:2003/6/01$"meg db "press Enter key to continue.$"meg1 db "when a letter is dropping,please hit it!$"meg2 db "Producer:caopodian,kangyonghong,lirui,hancong$"meg3 db "Number:200624101002,20062410101031,200624101020,200624101032$"meg4 db "
18、Hope that we play happy!$"speed dw 600dDATA ENDS ;數(shù)據(jù)段結束STACK SEGMENT PARA STACK 'STACK' ;堆棧段定義DB 256 DUP(0) TOP LABEL WORD STACK ENDS DATA SEGMENT PARA PUBLIC 'DATA' ;數(shù)據(jù)段定義BUFFER DB 16H DUP(0) BUFPT1 DW 0 BUFPT2 DW 0 KBFLAG DB 0 PROMPT DB ' *PLEASE PRACTISE TYPING*',0DH,
19、0AH,'$' SCANTAB DB 0,0,'1234567890-=',8,0 ;檢測是否為規(guī)定字符DB 'QWERTYUIOP',0DH,0 DB 'ASDFGHJKL;',0,0,0,0 DB 'ZXCVBNM,./',0,0,0 DB ' ',0,0,0,0,0,0,0,0,0,0,0,0,0 DB '789-456+1230.' EVEN OLDCS9 DW ? OLDIP9 DW ? STR1 DB 'ABCD EFGH IJKL MNOP QRST UVWX
20、YZ.' ;打字練習的字母DB 0DH,0AH,'$' STR2 DB 'THERE ARE SOME NEWSPAPERS ON THE TABLE.' DB 0DH,0AH,'$' STR3 DB 'THERE ARE SOME CLOUDS IN THE SKY.' DB 0DH,0AH,'$' STR4 DB 'SHE ALWAYS EATS HER LUNCH AT NOON.' DB 0DH,0AH,'$' STR5 DB 'I DO NOT LIKE A
21、UTUMN AND WINTER.' CRLF DB 0DH,0AH,'$' COLON DB ':','$' EVEN SADDR DW STR1,STR2,STR3,STR4,STR5 ;存放以上的字母 saddr開辟存貯器空間COUNT DW 0 SEC DW 0 ;定義秒數(shù)MIN DW 0 ;定義分數(shù)HOURS DW 0 ;定義時數(shù)SAVE_LC DW 2 DUP(?) evenZK db "WELCOME TO PLAY$" ;菜單的形式信息no db "date:2003/6/01$"m
22、eg db "press Enter key to continue.$"meg1 db "when a letter is dropping,please hit it!$"meg2 db "Producer:caopodian,kangyonghong,lirui,hancong$"meg3 db "Number:200624101002,20062410101031,200624101020,200624101032$"meg4 db "Hope that we play happy!$"
23、speed dw 600d;? DATA ENDS ;數(shù)據(jù)段結束CODE SEGMENT ;定義代碼段ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK MAIN PROC FAR START: MOV AX,STACK MOV SS,AX MOV SP,OFFSET TOP ;把TOP的偏移地址賦給SPPUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX clear_screen 00d,00d,24d,79dInit_game 00d,00d,0ah,dl,80d,nextsign1Init_game
24、 24d,00d,0ah,dl,80d,nextsign2Init_game 00d,00d,0ah,dh,25d,nextsign3Init_game 00d,79d,0ah,dh,25d,nextsign4menu 05d,15d,ZK ;菜單信息的宏調(diào)用menu 07h,15d,nomenu 09d,15d,megmenu 11d,15d,meg1menu 13d,15d,meg2menu 15d,15d,meg3menu 17d,15d,meg4MOV AH,35H MOV AL,09H INT 21Hmov ah,01h ;從鍵盤輸入回車字符int 21hcmp al,0dhje s
25、peed3cmp al,45hje exitexit: mov ah,4chint 21hspeed3: mov ax,speed+12;?為什么加12mov speed,axjmp beginbegin: clear_screen 01d,01d,23d,78d ;清屏宏調(diào)用clear_screen 01d,01d,23d,78dInit_game 23d,01d,01h,dl,78d,nextsign5mov ah,02hmov bh,00hmov dh,01hmov dl,01hint 10hMOV OLDCS9,ES MOV OLDIP9,BX PUSH DS MOV DX,SEG K
26、BINT MOV DS,DX MOV DX,OFFSET KBINT MOV AL,09H MOV AH,25H INT 21H POP DS MOV AH,35H MOV AL,1CH INT 21H MOV SAVE_LC,BX MOV SAVE_LC+2,ES PUSH DS MOV DX,SEG CLINT MOV DS,DX MOV DX,OFFSET CLINT MOV AL,1CH MOV AH,25H INT 21H POP DS IN AL,21H AND AL,11111100B OUT 21H,ALFIRST: MOV AH,0 MOV AL,3 INT 10H MOV
27、DX,OFFSET PROMPT MOV AH,9 INT 21H MOV SI,0 NEXT: MOV DX,SADDRSI MOV AH,09H INT 21HMOV COUNT,0 MOV SEC,0 MOV MIN,0 MOV HOURS,0 STI FOREVER: CALL KBGET TEST KBFLAG,80H JNZ ENDINT PUSH AX CALL DISPCHAR POP AX CMP AL,0DH JNZ FOREVER MOV AL,0AH CALL DISPCHAR CALL DISPTIME LEA DX,CRLF MOV AH,09H INT 21H A
28、DD SI,2 CMP SI,5*2 JNE NEXT JMP FIRST ENDINT: CLI PUSH DSMOV DX,SAVE_LC MOV AX,SAVE_LC+2 MOV DS,AX MOV AL,1CH MOV AH,25H INT 21H POP DS PUSH DS MOV DX,OLDIP9 MOV AX,OLDCS9 MOV DS,AX MOV AL,09H MOV AH,25H INT 21H POP DS STI RET MAIN ENDP CLINT PROC NEAR PUSH DS MOV BX,DATA MOV DS,BX LEA BX,COUNT INC
29、WORD PTRBX CMP WORD PTRBX,18 JNE RETURN CALL INCT ADJ: CMP HOURS,12 JLE RETURN SUB HOURS,12 RETURN: POP DS STI IRET CLINT ENDP INCT PROC NEAR MOV WORD PTRBX,0 ADD BX,2 INC WORD PTRBX CMP WORD PTRBX,60 JNE EXITe CALL INCT EXITE: RETINCT ENDP DISPTIME PROC NEAR MOV AX,MIN CALL BINDEC MOV BX,0 MOV AL,&
30、#39;:' MOV AH,0EH INT 10H MOV AX,SEC CALL BINDEC MOV BX,0 MOV AL,':' MOV AH,0EH INT 10H MOV BX,COUNT MOV AL,55D MUL BL CALL BINDEC RET DISPTIME ENDP BINDEC PROC NEAR MOV CX,100D CALL DECDIV MOV CX,10D CALL DECDIV MOV CX,1 CALL DECDIV RET BINDEC ENDP DECDIV PROC NEAR MOV DX,0 DIV CX MOV BX,0 ADD AL,30H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度出租車車輛租賃與城市交通發(fā)展規(guī)劃合同4篇
- 2025年小兒急診合同
- 2025年度門衛(wèi)室智能門禁系統(tǒng)維護與升級合同3篇
- 二零二五年度臨時工技能培訓及職業(yè)發(fā)展規(guī)劃合同4篇
- 2025年度美甲店會員積分體系設計與運營合同4篇
- 2024年度青海省公共營養(yǎng)師之四級營養(yǎng)師強化訓練試卷A卷附答案
- 2024年度青海省公共營養(yǎng)師之二級營養(yǎng)師押題練習試題A卷含答案
- 2025年度光伏發(fā)電項目承包土地使用合同范本2篇
- 2024年度青海省公共營養(yǎng)師之三級營養(yǎng)師考前自測題及答案
- 專業(yè)食品供應商與零售商購銷合作合同(2024版)一
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 康復醫(yī)學科患者隱私保護制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學真題試卷(含答案)
- 高中學校開學典禮方案
- 內(nèi)審檢查表完整版本
- 3級人工智能訓練師(高級)國家職業(yè)技能鑒定考試題及答案
評論
0/150
提交評論