微機(jī)原理課程設(shè)計 打字練習(xí)_第1頁
微機(jī)原理課程設(shè)計 打字練習(xí)_第2頁
微機(jī)原理課程設(shè)計 打字練習(xí)_第3頁
微機(jī)原理課程設(shè)計 打字練習(xí)_第4頁
微機(jī)原理課程設(shè)計 打字練習(xí)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一概述1.課程設(shè)計分析計算機(jī)的不斷更新發(fā)展,在各個領(lǐng)域的應(yīng)用越來越多。而匯編語言是計算機(jī)能夠提供用戶使用的最快而又最好最有效的語言,也是能夠利用計算機(jī)所有硬件特性并能直接控制硬件的唯一語言。因而,對程序的空間和時間要求很高的場合,匯編語言的應(yīng)用就顯得必不可少了,一些直接控制硬件的應(yīng)用場合,則更是非用匯編語言不可。設(shè)計課程設(shè)計是在教學(xué)實踐基礎(chǔ)上進(jìn)行的一次大型實驗,也是對該課程所學(xué)理論知識的深化和提高。因此,要求我們能綜合應(yīng)用所學(xué)知識,設(shè)計與制造出具有較復(fù)雜功能的應(yīng)用系統(tǒng),并且在實驗的基本技能方面上進(jìn)行一次全面的訓(xùn)練。通過具體的問題分析、設(shè)計、調(diào)試、運行程序。在實際問題中鍛煉提高自己,增加了對本門課程內(nèi)容的理解,鍛煉了動手能力。就這個程序具體而言:調(diào)用宏,顯示主界面,通過選擇不同的選項,可以進(jìn)入不同的界面;采用BIOS功能的中斷,可以在任何時候退出當(dāng)前所在的界面并通過選擇進(jìn)入其他的界面。這個程序最終通過菜單所提示的信息選取所要進(jìn)入的界面,獲得所要的功能。2.課程設(shè)計目的1對掌握知識的深度、運用理論去處理問題的能力、實驗?zāi)芰?、課程設(shè)計能力、書面及口頭表達(dá)能力進(jìn)行考核。2培養(yǎng)綜合運用所學(xué)知識,獨立完成匯編程序課題的能力3能夠較全面地鞏固和應(yīng)用課堂中所學(xué)的基本理論和程序設(shè)計方法,能夠較熟練地完成匯編語言程序的設(shè)計和調(diào)試。4培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實事求是、有錯必改,用實踐來檢驗理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。5培養(yǎng)從資料文獻(xiàn)、科學(xué)實驗中獲得知識的能力,提高從別人經(jīng)驗中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。3.課程設(shè)計的要求1、自行編制鍵盤中斷和時間中斷處理程序,并保存原中斷向量。程序運行時,使用自編的中斷向量處理程序。程序退出時,恢復(fù)中斷向量。2、在緩沖區(qū)中預(yù)放了一些字母,運行時,可按照屏幕上顯示的小寫字母輸入練習(xí)。3、每輸入完一行按回車鍵后,可顯示出練習(xí)輸入的時間提高要求:改進(jìn)程序,將原設(shè)計中固定的例句改為隨機(jī)變化的例句。附加要求:必要的輔助功能(設(shè)置、修改等)。二設(shè)計總體方案1.程序設(shè)計的整體設(shè)計思路要求完成一個打字練習(xí)程序,即在規(guī)定的時間內(nèi)按下屏幕上顯示的字母,字母就消失,否則字母一直移動到屏幕底端。(比如:運行程序時,出現(xiàn)菜單主界面,按回車鍵出現(xiàn)由26個字母組成的亂序行,這時其中任一字母落下,在鍵盤上敲入該字母,如果輸入正確,字母消失;按ESC鍵返回主界面;按空格見暫停;按‘E’退出。)在設(shè)計本課題之前,考慮的兩個問題:一是如何從鍵盤輸入并顯示字符;二是如何在輸入時進(jìn)行計時。考慮第一個問題,在PC中,對鍵盤的管理是通過中斷機(jī)構(gòu)和8255可編程序外圍接口芯片來實現(xiàn)的。在設(shè)計中,我采用的是第一種思路。由于系統(tǒng)在BIOS中已配備了鍵盤的服務(wù)功能,因此可通過調(diào)用鍵盤的DOS和BIOS功能編程。而且設(shè)計中使用的都是軟件中斷,故在具體的程序設(shè)計時,需要禁止硬件中斷。再考慮第二個問題,計時部分也可通過定時器的中斷來實現(xiàn)。由于定時器中斷優(yōu)先級比鍵盤高,只要在鍵盤中斷處理程序中用一條STI指令允許高級中斷,那么在整個打字的過程中,定時器會以每秒18.2次的頻率產(chǎn)生中斷。根據(jù)計時的需要,在整個打字過程中,再使用自編的中斷例行程序可把定時器中斷的次數(shù)轉(zhuǎn)換成時間。在鍵盤打字時采用09類型的鍵盤中斷,來取得輸入字符并將字符顯示在屏幕上。程序設(shè)計時,預(yù)先設(shè)置的堆棧中存放一些字符串例句,每次打字之前,屏幕上先顯示出一個例句,然后打字員按照例句,將句中字符通過鍵盤輸入。這個過程可反復(fù)進(jìn)行,當(dāng)鍵入一個功能鍵時,退出打字計時程序。自行編制鍵盤中斷和時間中斷處理程序,并保存原中斷向量。程序運行時,使用自編的中斷向量處理程序。程序退出時,恢復(fù)中斷向量。該打字程序包括以下五個子程序:(1)速度選擇界面的顯示模塊;(2)打字練習(xí)模塊;(3)設(shè)置速度模塊;(4)清屏模塊。(5)計時模塊打字練習(xí)模塊又分為以下子程序:(1)游戲界面模塊(2)功能模塊2.算法的整體設(shè)計思路此程序涉及到宏和I/O中斷的調(diào)用,通過對宏的定義和使用以及對I/O中斷的使用,實現(xiàn)程序的相應(yīng)功能。利用宏,實現(xiàn)各個界面的顯示,采用中斷,實現(xiàn)各個子程序的相互轉(zhuǎn)換。其中最主要的是打字程序:運行程序,打字界面中出現(xiàn)由26個字母組成的亂序行,這時其中會有任一字母落下,并開始計時,在鍵盤上輸入該字母,字母消失,分?jǐn)?shù)值加1,否則字母一直移動到屏幕底端。當(dāng)按下空格鍵時,計時停止且停止下落。3.程序的主要特點本程序最大的特點就是具有較好的人機(jī)交互功能。在主界面中,用戶可以選擇不同的游戲等級,他們能夠根據(jù)自己的實際打字速度,選擇相匹配的等級進(jìn)行打字練習(xí)三詳細(xì)設(shè)計1.流程圖本次程序開始是一個主界面,在主界面上包括2個選項,第一個選項是進(jìn)入慢速子程序,第二個是選擇進(jìn)入快速子程序以下是程序的主流程圖:開始開始速度選擇速度選擇游戲界面游戲界面E退出ESCE退出ESC返回主界面Space暫停2.清屏子程序設(shè)計BIOS功能調(diào)用中的INT10H功能6能使屏幕內(nèi)容上卷指定的行,這個功能需要設(shè)置4個參數(shù),分別代表清屏區(qū)域的左上角的坐標(biāo)和右下角的坐標(biāo)。如果屏幕的其實行列不為(0,0)結(jié)束的行列不為(24,79),則屏幕上只有指定的一部分具有上卷的功能,這個屏幕傷的部分區(qū)域叫做窗口(window)像這樣的窗口可以在屏幕上設(shè)置多個,這些窗口都可以獨立使用。如果上卷超過指定窗口的頂部,這些行的內(nèi)容就消失,出現(xiàn)在窗口底部的新行被填為空格,其屬性用BH寄存器決定。如果AL=0,則實現(xiàn)完成的工作是清楚屏幕的功能,它將按AL中的BH字符使指定的窗口為空白。以下是清除全屏幕的子程序:CLEARPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAH,6MOVAL,0MOVBH,7MOVCH,0MOVCL,0MOVDH,24MOVDL,79INT10HMOVDX,0MOVAH,2INT10H DIS525D,11110100BDIS3RETCLEARENDP3.計時子程序設(shè)計計時程序調(diào)用系統(tǒng)時間,在下落開始時取初值,在下落暫停時取終值,并顯示在屏幕上。TIMEOUTPROCPUSHAX PUSHCXPUSHDXMOVAH,2CHINT21HSUBDH,SECSBBCL,MINSBBCH,HOUMOVAL,CHCBWCALLBINDECMOVDL,':'MOVAH,02HINT21HMOVAL,CLCBWCALLBINDECMOVDL,':'MOVAH,02HINT21HMOVAL,DHCBWCALLBINDECPOPDXPOPCXPOPAXRETTIMEOUTENDPBINDECPROCPUSHAXPUSHCXPUSHDXMOVDX,0MOVCX,10DDIVCXMOVBX,DXMOVDX,AXORDX,0030HMOVAH,02HINT21HMOVDX,BXORDX,0030HMOVAH,02HINT21HPOPDXPOPCXPOPAXRETBINDECENDP3.功能的進(jìn)一步完善當(dāng)游戲分?jǐn)?shù)達(dá)到某一數(shù)值時,顯示“MISSIONCOMPLETE!”ST9DB'MISSIONCOMPLETE!',0AH,0DH,'$' CMPAL,10 JNZT DIS1ST920,60四運行結(jié)果說明按ENTER鍵后,進(jìn)入等級選擇界面,有兩個等級進(jìn)行選擇,分別代表不同的速度,速度一次遞增,只能輸入1-2,直到輸入正確才能開始游戲。選擇等級后,進(jìn)入游戲界面;界面的左邊是功能菜單,可以進(jìn)行功能的選擇,暫停(空格鍵),退出(E),返回主界面(Esc);界面的中間是游戲區(qū),當(dāng)用擊中下落的字母后,字母會消失界面的右邊是記分功能,可以顯示用戶的當(dāng)前分?jǐn)?shù),但用戶的積分達(dá)到一定數(shù)值時,會顯示祝賀語句。界面的上邊是記時功能,當(dāng)字母開始下落的時候,開始計時,暫停后重新計時五系統(tǒng)改進(jìn) 本系統(tǒng)可以改進(jìn)的地方有很多。首先我做的界面不夠華麗,顯得很單調(diào)。其次,字母下落的速度太單一,如果能隨著玩的時間增加再加快就更好了。而且計分系統(tǒng)沒把字母輸入時間也計算在內(nèi)。難度選擇時候沒有輸入其它字符時的處理。如果能加上這些功能的話,那么程序的可用性以及完整性就有能上一臺階。六課程設(shè)計總結(jié)設(shè)計體會剛拿到這個題目覺得特別難,感覺無從下手。匯編語言不同于高級語言,對于高級語言,我們心中可以有一個非常清晰的思路,在實現(xiàn)功能的時候非常得心應(yīng)手。但匯編語言不同,它是面向機(jī)器的語言。用它編寫程序時的思路應(yīng)該按照機(jī)器執(zhí)行程序的思路來編寫,所以這個挑戰(zhàn)對我來說非常大。在編寫程序之前,首先要摒棄高級語言思路的干擾。在做準(zhǔn)備工作的時候,我從網(wǎng)上找到了相關(guān)的代碼,照著別人的步驟感受匯編語言編寫程序的思路。很多地方都不是太明白,但是通過查詢課本以及上網(wǎng)找相關(guān)資料,還是把一些內(nèi)容理解了。在編寫的時候,我也是按照別人的思路,一步一步進(jìn)行。很多地方看似簡單,但是等到自己親自實踐的時候就編的很復(fù)雜。匯編語言的前后聯(lián)系非常緊密,如果要改一點東西的話整個程序的很多地方都要重新做,可以說是牽一發(fā)而動全身。所以在編寫的時候要很仔細(xì),要記住前面已經(jīng)實現(xiàn)了那些功能,還有那些功能要實現(xiàn),這些必須記好,否則程序會出錯。通過這次課程設(shè)計,我了解了匯

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論