2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程 微機(jī)原理與接口技術(shù) </p><p>  題目 數(shù)字顯示電子鐘 </p><p>  系 別 物理與電子工程學(xué)院 </p><p><b>

2、;  目 錄</b></p><p>  第一章 前 言1</p><p>  第二章 題目要求與方案論證2</p><p>  2.1 題目要求2</p><p><b>  2.2設(shè)計(jì)目的2</b></p><p><b>  2.3方案論證2</b

3、></p><p>  2.3.1 思路2</p><p>  2.3.2程序設(shè)計(jì)原理3</p><p>  2.3.3 用到的DOS系統(tǒng)功能3</p><p>  2.3.4 用到的BIOS系統(tǒng)功能4</p><p>  第三章 方案設(shè)計(jì)6</p><p><b> 

4、 3.1 流程圖6</b></p><p>  3.2程序代碼設(shè)計(jì)8</p><p>  3.2.1主程序模塊的設(shè)計(jì)8</p><p>  3.2.2 日期顯示子程序模塊9</p><p>  3.2.3 時(shí)間顯示子程序模塊12</p><p>  3.2.4 界面顯示模塊13</p>

5、;<p>  第四章 結(jié)果與分析16</p><p>  4.1調(diào)試過程16</p><p><b>  4.2 結(jié)果16</b></p><p><b>  4.3分析18</b></p><p>  第五章 總結(jié)與體會(huì)19</p><p>&l

6、t;b>  參考文獻(xiàn)20</b></p><p><b>  附錄21</b></p><p><b>  第一章 前 言</b></p><p>  作為最基本的編程語言之一,匯編語言的重要性勿庸置疑,因?yàn)樗軌蛲瓿稍S多其它語言所無法完成的功能。尤其在和硬件關(guān)系非常密切的程序或要提高運(yùn)算速度的程序

7、,即使是 C 語言也會(huì)有些力不從心,而匯編語言則能夠很好揚(yáng)長避短,最大限度地發(fā)揮硬件的性能。最重要的是微機(jī)原理和接口技術(shù)是一門實(shí)踐性強(qiáng)的學(xué)科,不但要求有較高的理論水平,而且還要求有實(shí)際的動(dòng)手能力,其中很多的原量、規(guī)則、現(xiàn)象等僅僅靠學(xué)習(xí)教科書是無法完全掌握的,必須通過實(shí)踐才能比較直觀和深刻的理解。 </p><p>  本課程設(shè)計(jì)的主要目的是提高實(shí)踐能力,包括提高匯編等語言的編程能力及對(duì)接口等硬件的理解分析能力和設(shè)

8、計(jì)接口電路的能力,在進(jìn)行課程設(shè)計(jì)的過程中,可以讓學(xué)生體驗(yàn)分析問題、提出解決方案、通過編程等手段實(shí)現(xiàn)解決方案、不斷調(diào)試最終達(dá)到設(shè)計(jì)要求的全過程,從而幫助學(xué)生系統(tǒng)地掌握微機(jī)原理的接口技術(shù)的相關(guān)知識(shí),達(dá)到將知識(shí)融會(huì)貫通的目的。</p><p>  本次課程設(shè)計(jì)我們組做的是數(shù)字顯示電子鐘,要求和系統(tǒng)時(shí)鐘一致。由于水平有限,該設(shè)計(jì)還存在了很多的不足,希望各位讀者的夠指出改正。</p><p>  第

9、二章 題目要求與方案論證</p><p><b>  2.1 題目要求</b></p><p>  數(shù)字顯示電子鐘: 利用微機(jī)現(xiàn)有資源,編寫程序在PC屏幕上顯示運(yùn)行的時(shí)鐘,要求和系統(tǒng)時(shí)鐘一致。</p><p><b>  2.2設(shè)計(jì)目的</b></p><p>  通過一個(gè)學(xué)期對(duì)《微機(jī)原理及接口

10、技術(shù)》學(xué)習(xí),掌握的知識(shí)還停留在理論的上。但是這是一門實(shí)踐性較強(qiáng)的課程,讓學(xué)生在學(xué)完該課程之后,通過本課程設(shè)計(jì)環(huán)節(jié)教學(xué),加深學(xué)生對(duì)“微機(jī)原理與接口技術(shù)”、“匯編語言"等課程知識(shí)的掌握與綜合運(yùn)用,,使學(xué)生將課堂所學(xué)的知識(shí)和實(shí)踐有機(jī)結(jié)合起來,初步掌握計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的步驟和接口設(shè)計(jì)的方法,提高分析和解決實(shí)際問題的能力。</p><p>  通過設(shè)計(jì)實(shí)踐,培養(yǎng)學(xué)生查閱專業(yè)資料,工具書或參考書,了解有關(guān)工業(yè)標(biāo)準(zhǔn)

11、,掌握現(xiàn)代設(shè)計(jì)手段和軟件工具,并能以圖紙和說明書表達(dá)設(shè)計(jì)思想和結(jié)果的能力。</p><p>  通過設(shè)計(jì),不但要培養(yǎng)和提高學(xué)生解決工程具體問題,動(dòng)腦動(dòng)手的技術(shù)工作能力,而且還要逐步建立科學(xué)正確的設(shè)計(jì)和科研思想,培養(yǎng)良好的設(shè)計(jì)習(xí)慣,牢固樹立實(shí)事求是和嚴(yán)肅認(rèn)真的工作態(tài)度。提高學(xué)生的創(chuàng)新意識(shí)及動(dòng)手操作能力,為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí),以及畢業(yè)后從事微機(jī)硬件及軟件開發(fā)打下基礎(chǔ),積累初步的經(jīng)驗(yàn)。</p>&l

12、t;p><b>  2.3方案論證</b></p><p><b>  2.3.1 思路</b></p><p>  先建立顯示界面,再根據(jù)鍵盤輸入的字符判斷是顯示日期還是時(shí)間,然后調(diào)用DOS系統(tǒng)2AH(或2CH)號(hào)功能分別將系統(tǒng)的日期(或時(shí)間)取出,接著把時(shí)間(或日期)轉(zhuǎn)換成ASCII碼并存到指定的系統(tǒng)內(nèi)存區(qū)中,最后調(diào)用BIOS 中斷10

13、的13號(hào)功能將其在屏幕上顯示出來。</p><p>  2.3.2程序設(shè)計(jì)原理</p><p>  首先利用調(diào)用BIOS的中斷10的0號(hào)功能創(chuàng)建顯示窗口,選擇適當(dāng)?shù)谋尘昂颓熬暗?,使屏幕顯示更加完美。在數(shù)據(jù)段開辟兩個(gè)顯示緩沖區(qū),分別用來存儲(chǔ)系統(tǒng)時(shí)間及日期。根據(jù)鍵盤輸入的字符顯示相應(yīng)的內(nèi)容。假如輸入的是T,則進(jìn)入時(shí)間顯示子程序,調(diào)用DOS中斷21H的2CH號(hào)系統(tǒng)功能返回系統(tǒng)時(shí)間,再調(diào)用字符轉(zhuǎn)換

14、成ASCII碼的子程序分別將二進(jìn)制小時(shí)數(shù)、分鐘數(shù)、秒數(shù)轉(zhuǎn)換成ASCII碼并存入顯示緩沖區(qū),方便時(shí)間顯示時(shí)的調(diào)用。調(diào)用BIOS的中斷10的13號(hào)功能,定位光標(biāo)的開始位置,結(jié)合著將時(shí)間顯示在我們預(yù)先定義好的位置上。由于獲取了的系統(tǒng)時(shí)間不會(huì)自動(dòng)刷新,而我們要設(shè)計(jì)成刷新的方式來不斷獲取系統(tǒng)的時(shí)間,故需調(diào)用BIOS的中斷16的1號(hào)功能,這樣才能形成會(huì)跳動(dòng)的電子鐘,將不間斷地顯示時(shí)間。假如輸入的是D,則進(jìn)入日期顯示子程序,調(diào)用DOS中斷21H的2A

15、H號(hào)系統(tǒng)功能返回系統(tǒng)日期,再調(diào)用字符轉(zhuǎn)換成ASCII碼的子程序分別將二進(jìn)制年數(shù)、月數(shù)、日數(shù)轉(zhuǎn)換成ASCII碼并存入顯示緩沖區(qū),方便年月日顯示時(shí)的調(diào)用。調(diào)用BIOS的中斷10的13號(hào)功能,定位光標(biāo)的開始位置,結(jié)合著將日期顯示在我們預(yù)先定義好的位置上。由于獲取了的系統(tǒng)日期</p><p>  2.3.3 用到的DOS系統(tǒng)功能</p><p><b>  A:中斷21H:</b&

16、gt;</p><p>  1)鍵盤輸入單字符——1號(hào)功能的調(diào)用</p><p>  調(diào)用格式:MOV AH,1</p><p>  INT 21H</p><p>  功能:調(diào)用無入口參數(shù),執(zhí)行時(shí)系統(tǒng)首先等待鍵盤輸入,待程序員按下任何一鍵,系統(tǒng)先檢查是否是Ctrl-Break鍵。如果是則退出,否則將鍵入的字符ASCII碼置入寄存器

17、,并在屏幕上顯示該字符。</p><p>  2)取日期——2AH號(hào)系統(tǒng)功能調(diào)用</p><p>  入口參數(shù):AH=2AH</p><p>  出口參數(shù):CX=年份(1980~2099)</p><p>  DH=月份(1~12)</p><p>  DL=日(1~31)</p><p>  

18、AL=星期(0~6,0代表星期天)</p><p>  功能:調(diào)用取出由DOS保持的年、月、日及星期。CX、DH、 DL、AL中都是二進(jìn)制數(shù),要想在屏幕上顯示出來必須變成ASCII碼才行。</p><p>  3)取時(shí)間——2CH號(hào)系統(tǒng)功能調(diào)用</p><p>  入口參數(shù):AH=2CH</p><p>  出口參數(shù):CH=小時(shí)(0~23)&

19、lt;/p><p>  CL=分鐘(0~59)</p><p>  DH=秒(0~59)</p><p>  DL=1/100秒(0~99)</p><p>  功能:調(diào)用取出由DOS保存的時(shí)間。CX與DX中都是二進(jìn)制數(shù),要想在屏幕上顯示出來必須變成ASCII碼才行。</p><p>  4)返回操作系統(tǒng)——4CH號(hào)系統(tǒng)功

20、能調(diào)用</p><p>  調(diào)用格式:MOV AH,4CH</p><p>  INT 21H</p><p>  功能:調(diào)用無入口參數(shù),執(zhí)行結(jié)果是結(jié)束當(dāng)前正在執(zhí)行的程序,并返回DOS操作系統(tǒng)。</p><p>  2.3.4 用到的BIOS系統(tǒng)功能</p><p><b>  A:中斷10H:&l

21、t;/b></p><p>  1)設(shè)置顯示方式——0號(hào)功能調(diào)用入口參數(shù) AL = 顯示方式值</p><p>  00 40×25 黑白文本方式 </p><p>  01 40×25 彩色文本方式 </p><p>  02 80&#

22、215;25 黑白文本方式 </p><p>  03 80×25 彩色文本方式 </p><p>  04 320×320 彩色圖形方式 </p><p>  功能:無出口參數(shù),將顯示方式設(shè)置為指定形式</p><p>  2

23、)置光標(biāo)位置——2號(hào)功能調(diào)用 入口參數(shù) DH = 行號(hào)</p><p><b>  DL = 列號(hào)</b></p><p><b>  BH = 頁號(hào)</b></p><p>  功能:無出口參數(shù), 將光標(biāo)設(shè)置在指定的位置 </p><p>  3)顯示字符串——13號(hào)功能調(diào)用</

24、p><p>  ES:BP=串地址 </p><p><b>  CX=申長度 </b></p><p>  DH,DL=起始行,列 </p><p><b>  BH=頁號(hào)</b></p><p>  AL=0,BL=屬性 串:char,char,…

25、 </p><p>  AL=1,BL=屬性 串:char,char,…</p><p><b>  AL=2</b></p><p>  串:char,char,char,attr,…</p><p><b>  AL=3</b></p><p>  串:char,

26、char,char,attr,…</p><p>  功能:顯示字符串并設(shè)置顯示的屬性</p><p><b>  B:中斷16H:</b></p><p>  1)讀鍵盤緩沖區(qū)字節(jié)——1號(hào)功能調(diào)用調(diào)用格式:MOV AH, 01H    INT 16H</p><p>  功能:用來查詢鍵盤緩沖區(qū),對(duì)鍵盤掃描但

27、不等待,并設(shè)置ZF標(biāo)志。若有按鍵操作(即鍵盤緩沖區(qū)不空),則ZF=0,AL中存放的是輸入的ASCII碼,AH中存放輸入字符的擴(kuò)展碼。若無鍵按下,則標(biāo)志位ZF=1。</p><p><b>  第三章 方案設(shè)計(jì)</b></p><p><b>  3.1 流程圖</b></p><p>  圖1:主程序流程圖

28、 圖2:顯示時(shí)間子程序流程圖</p><p>  圖3:顯示時(shí)間子程序流程圖</p><p><b>  3.2程序代碼設(shè)計(jì)</b></p><p>  根據(jù)設(shè)計(jì)思路及流程圖,設(shè)計(jì)系統(tǒng)為主-子程序結(jié)構(gòu),通過子程序調(diào)用和嵌套完成對(duì)時(shí)間、日期的顯示。因此自然分成三個(gè)部分——主程序、日期顯示子程序、時(shí)間顯示子程序。另外界面顯

29、示在本程序占較大比例故作一獨(dú)立模塊單獨(dú)設(shè)計(jì)。</p><p>  于是,程序代碼的設(shè)計(jì)共分四個(gè)主要的模塊進(jìn)行——主程序模塊、日期顯示子程序模塊、時(shí)間顯示子程序和界面顯示模塊。</p><p>  3.2.1主程序模塊的設(shè)計(jì)</p><p>  根據(jù)設(shè)計(jì)思路本程序主要實(shí)現(xiàn)從鍵盤輸入“D”可顯示系統(tǒng)當(dāng)前日期及星期幾;輸入“T”可顯示系統(tǒng)當(dāng)前時(shí)間;輸入“Q”返回操作系統(tǒng)。

30、主程序模塊主要完成對(duì)鍵盤鍵入字符判別及分別調(diào)用日期顯示子程序和時(shí)間顯示子程序。依次要求設(shè)計(jì)如下代碼:</p><p>  CODE SEGMENT ;代碼段 </p><p>  ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACK</p><p>  START:MOVAX,DATA ;裝填數(shù)據(jù)段

31、、附加段</p><p><b>  MOVDS,AX</b></p><p><b>  MOVES,AX</b></p><p><b>  ·</b></p><p><b>  ·</b></p><p&

32、gt;<b>  ·</b></p><p>  INT 21H</p><p>  MOVAH,1 ;從鍵盤輸入單字符</p><p>  INT 21H</p><p>  CMPAL,44H ;AL='D'?</p>&l

33、t;p>  JNE SHIJIAN</p><p>  CALL DATE ;顯示日期</p><p>  SHIJIAN:CMPAL,54H ;AL='T'?</p><p>  JNE EXIT</p><p>  CALL TIME ;顯

34、示時(shí)間</p><p>  EXIT:CMPAL,51H</p><p>  JNE START</p><p>  MOVAH,4CH ;返回DOS狀態(tài)</p><p>  INT 21H</p><p>  CODE ENDS</p><p><b>

35、  ENDSTART</b></p><p>  本段成程序完成當(dāng)鍵盤鍵入“D”時(shí)調(diào)用日期顯示子程序DATE,鍵入“T”時(shí)調(diào)用時(shí)間顯示子程序TIME。字符判斷程序包含在一循環(huán)內(nèi)可實(shí)現(xiàn)字符的連續(xù)判別。</p><p>  3.2.2 日期顯示子程序模塊</p><p>  日期顯示子程序模塊設(shè)計(jì)功能為實(shí)時(shí)調(diào)用系統(tǒng)日期并將日期信息轉(zhuǎn)化為ASCII碼存入日期

36、緩存顯示之。</p><p>  系統(tǒng)日期調(diào)用應(yīng)用2AH號(hào)系統(tǒng)功能。將年、月、日及星期存入CX、DH、 DL、AL。其都是二進(jìn)制數(shù),要想在屏幕上顯示出來必須變成ASCII碼才行。</p><p>  為此首先編寫一個(gè)將二進(jìn)制轉(zhuǎn)換為ASCII碼并存入日期緩存的子程序BCDASC1:</p><p>  BCDASC1PROC NEAR;日期數(shù)值轉(zhuǎn)換成ASCII

37、碼字符子程序</p><p><b>  PUSH BX</b></p><p><b>  CBW</b></p><p>  MOV BL,10</p><p><b>  DIV BL</b></p><p>  ADD AL,'

38、;0'</p><p><b>  INC SI</b></p><p>  ADD AH,'0'</p><p>  MOV WORD PTR DBUFFER1[SI],AX</p><p><b>  INC SI</b></p><p&g

39、t;<b>  POP BX</b></p><p><b>  RET</b></p><p>  BCDASC1ENDP</p><p>  調(diào)用此子程序可使日期顯示子程序大為簡(jiǎn)化。</p><p>  顯示日期時(shí),年、月、日得顯示只需將其轉(zhuǎn)存AL調(diào)用BCDASC1即可。但年的顯示需將其高

40、兩位,低兩位分開調(diào)用BCDASC1。</p><p><b>  如年的顯示:</b></p><p>  MOV AX,CX;將年的高兩位,低兩位分開</p><p>  MOV BX,100</p><p><b>  DIV BL</b></p><

41、p>  MOV BL,AH</p><p>  CALLBCDASC1;年份高兩位轉(zhuǎn)換成ASCII存入緩存</p><p>  MOV AL,BL</p><p>  CALLBCDASC1;年份低兩位轉(zhuǎn)換成ASCII存入緩存</p><p>  在調(diào)用BCDASC1時(shí)注意日期緩存指針SI的變化,通過這種方法

42、依次將年份高兩位、年份低兩位、月份、日期存入日期緩存DBUFFER1。</p><p>  星期顯示時(shí),考慮到星期的表達(dá)有別于年、月、日。年、月、日可直接用數(shù)字表示,而星期習(xí)慣用英文縮寫表示。這樣星期顯示單獨(dú)編程。首先在數(shù)據(jù)段定義星期字符串:</p><p>  DBUFFER2DB 'Sun.Mon.Tue.Wed.Thu.Fri.Sat.'</p>&l

43、t;p>  根據(jù)AL值對(duì)星期字符串指針DI做偏移找到星期顯示地址。由于寄存器有限需先將AX保存如DI內(nèi)。星期實(shí)現(xiàn)代碼:</p><p>  MOV AX,DI;恢復(fù)AX</p><p>  XOR AH,AH;偏移星期地址</p><p>  SHL AL,1</p><p>  SHL AL,1

44、 </p><p>  LEA DI,DBUFFER2</p><p>  ADD DI,AX</p><p>  實(shí)現(xiàn)找到星期顯示地址。</p><p>  完成后應(yīng)用INT 10H的13號(hào)功能將年、月、日及星期顯示與銀幕制定位置。代碼如下:</p><p>  MOV BP, 串地址</

45、p><p>  MOV DX,制定位置</p><p>  MOV CX,串長</p><p>  MOV BX,004EH</p><p>  MOV AX,1301H</p><p><b>  INT 10H</b></p><p>  此段可將字符串安制定長

46、度,制定顏色,制定位置顯示與銀幕。</p><p>  以上程序段均包含于如下循環(huán)中:</p><p>  DATE PROCNEAR;顯示日期子程序</p><p>  DISPLAY: MOV AH,2AH ;取日期,CX:年份;DH:月</p><p>  ;份; DL:日期;AL:星期</p

47、><p>  INT 21H</p><p><b>  ·</b></p><p><b>  ·</b></p><p><b>  ·</b></p><p>  MOV AH,02H ;設(shè)置光標(biāo)位置位03

48、*00</p><p>  MOV DX,0300H</p><p><b>  MOV BH,0</b></p><p><b>  INT 10H</b></p><p>  CALL DELAY ;調(diào)用延時(shí)程序</p><p>  MOV AH,0

49、1H ;讀鍵盤緩沖區(qū)字符到AL寄存器</p><p><b>  INT 16H</b></p><p>  JE DISPLAY ;鍵盤緩沖區(qū)AL不變跳至DISPLAY循環(huán)</p><p>  JMP START</p><p><b>  RET</b></

50、p><p>  DATEENDP</p><p>  此循環(huán)可保時(shí)間信息連續(xù)刷新直到鍵盤鍵入字符。</p><p>  3.2.3 時(shí)間顯示子程序模塊</p><p>  此模塊與日期顯示模塊類似,同樣有二進(jìn)制轉(zhuǎn)換為ASCII碼并存入時(shí)間緩存的子程序BCDASC,和外循環(huán)結(jié)構(gòu)。具體程序如下:</p><p>  TIM

51、E PROCNEAR ;顯示時(shí)間子程序</p><p>  DISPLAY1: MOV SI,0</p><p>  MOV BX,100</p><p><b>  DIV BL</b></p><p>  MOV AH,2CH ;取時(shí)間,CH:小時(shí);CL:分;DH:秒

52、</p><p><b>  INT 21H</b></p><p>  MOV AL,CH</p><p>  CALL BCDASC ;小時(shí)轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p><b>  INC SI</b></p><p>  MOV

53、AL,CL</p><p>  CALL BCDASC ;分鐘轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p><b>  INC SI</b></p><p>  MOV AL,DH</p><p>  CALL BCDASC ;秒轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p&g

54、t;  MOV BP,OFFSETDBUFFER;系統(tǒng)時(shí)間為黃色</p><p>  MOVDX,0D0DH</p><p><b>  MOVCX,20</b></p><p>  MOVBX,004EH</p><p>  MOVAX,1301H</p><p>  INT

55、 10H</p><p>  MOVAH,02H ;設(shè)置光標(biāo)位置</p><p>  MOVDX,0300H</p><p><b>  MOVBH,0</b></p><p>  INT 10H</p><p>  CALL DELAY ;調(diào)用延時(shí)程序&l

56、t;/p><p>  MOVAH,01H;讀鍵盤緩沖區(qū)字符到AL寄存器</p><p>  INT 16H</p><p>  JE DISPLAY1;鍵盤緩沖區(qū)AL不變跳至DISPLAY循環(huán)</p><p>  JMP START</p><p>  MOV AX,4C00H<

57、/p><p><b>  INT 21H</b></p><p><b>  RET</b></p><p><b>  TIME ENDP</b></p><p>  此部分程序完成對(duì)系統(tǒng)時(shí)間的調(diào)用并顯示并能實(shí)時(shí)刷新時(shí)間。</p><p>  3.2.

58、4 界面顯示模塊</p><p>  為了使顯示界面更加友好將界面設(shè)計(jì)成如下樣式:</p><p><b>  圖4 顯示界面</b></p><p>  以上界面的實(shí)現(xiàn)通過如下程序?qū)崿F(xiàn):</p><p>  DATA SEGMENT ;數(shù)據(jù)段</p><p>  SPACED

59、B 1000DUP('') ;定義25*40個(gè)空格</p><p>  PATTERNDB 3 DUP('*'),0C9H,26 DUP(0CDH),0BBH,3DUP('*')</p><p><b>  ;定義顯示區(qū)圖形</b></p><p>  DB 3 DU

60、P('*'),0BAH,1DUP('DATE:'),21DUP(20H),0BAH, 3 DUP(' *')</p><p>  DB 3 DUP('*'),0BAH,1DUP('TIME:'),21DUP(20H),0BAH, 3 DUP(' *')</p><p>  DB 3

61、DUP('*'),0BAH,1DUP('WEEK:'),21DUP(20H),0BAH, 3 DUP(' *')</p><p>  DB 3 DUP('*'),0C8H,26 DUP(0CDH),0BCH,3DUP('*')</p><p>  DBUFFERDB ' ',7 D

62、UP(':'),12 DUP(' ');時(shí)間緩沖區(qū)</p><p>  DBUFFER1DB ' ',10DUP('/'),9 DUP(' ');日期緩沖區(qū)</p><p>  DBUFFER2DB 'Sun.Mon.Tue.Wed.Thu.Fri.Sat.';星期緩存區(qū)&l

63、t;/p><p>  STR DB 0DH,0AH,'PLEASE INPUT DATE(D) ORTIME(T)OR QUIT(Q),$'</p><p><b>  ;提示信息</b></p><p><b>  ·</b></p><p><b>  &#

64、183;</b></p><p><b>  ·</b></p><p>  MOVAX,0001H ;設(shè)置顯示方式為彩色文本方式</p><p>  INT 10H</p><p>  MOVAX,DATA ;裝填數(shù)據(jù)段、附加段</p>

65、<p><b>  MOVDS,AX</b></p><p><b>  MOVES,AX</b></p><p>  MOVBP,OFFSETSPACE ;顯示25*40空格</p><p>  MOVDX,0B00H ;起示位置是0B行00列</p><p&

66、gt;  MOVCX,1000 ;串長為1000</p><p>  MOVBX,0040H ;文本底色為紅色</p><p>  MOVAX,1300H</p><p>  INT 10H</p><p>  MOVBP,OFFSETPATTERN ;顯示矩形條</p>&l

67、t;p>  MOVDX,0B00H ;起示位置是0B行00列</p><p>  MOVCX,200 ;串長為1000</p><p>  MOVBX,003EH ;設(shè)置矩形條為黃色</p><p>  MOVAX,1301H</p><p><b>  INT 10H&

68、lt;/b></p><p>  LEA DX,STR;顯示提示信息</p><p><b>  MOVAH,9</b></p><p><b>  ···</b></p><p>  顯示界面主要通擴(kuò)展ASCII碼特殊字符的排列來實(shí)現(xiàn)。并用INT

69、10H的13號(hào)功能顯示。</p><p><b>  第四章 結(jié)果與分析</b></p><p><b>  4.1調(diào)試過程</b></p><p>  1)編譯源文件,命名為SHIZHONG.ASM,并保存于D盤</p><p>  2)鍵入命令MASM D:\SHIZHONG.ASM生成一個(gè)OB

70、J文件,檢查源程序中的錯(cuò)誤,并改正。</p><p>  3)鍵入連接命令LINK D:\ SHIZHONG.OBJ,再次鍵入HULILNGWEI回車,即可顯示結(jié)果。</p><p><b>  4.2 結(jié)果</b></p><p>  ①:當(dāng)鍵盤輸入T時(shí)結(jié)果如下:</p><p>  圖 5輸入T時(shí)界面顯示</p

71、><p> ?、冢寒?dāng)鍵盤輸入D時(shí)結(jié)果如下:</p><p>  圖 6 輸入D時(shí)界面顯示</p><p>  ③:當(dāng)鍵盤輸入Q時(shí)結(jié)果如下:</p><p>  圖 7 輸入Q時(shí)界面顯示</p><p><b>  4.3分析</b></p><p>  經(jīng)驗(yàn)證,當(dāng)從鍵盤輸入T時(shí)

72、,電子鐘只顯示時(shí)間,且與PC機(jī)系統(tǒng)時(shí)間保持一致,隨PC機(jī)變化而變化;當(dāng)從鍵盤輸入D時(shí),電子鐘只顯示日期和星期,且與PC機(jī)系統(tǒng)保持一致;當(dāng)從鍵盤輸入Q時(shí),返回DOS系統(tǒng)。當(dāng)不停地鍵入字符D或T時(shí),電子鐘可以不停的刷新。</p><p>  綜上所述,本次課程設(shè)計(jì)基本達(dá)到課題要求,實(shí)現(xiàn)了和系統(tǒng)時(shí)鐘一致。此外,我們?cè)诖嘶A(chǔ)上加以拓展,首先是創(chuàng)建了華麗的顯示見面,其次是實(shí)現(xiàn)了查詢功能,最后是我們所設(shè)計(jì)的數(shù)字顯示電子鐘還可

73、以顯示星期。</p><p>  總的來說,本次設(shè)計(jì)還是比較成功的。</p><p>  第五章 總結(jié)與體會(huì)</p><p>  很快兩個(gè)星期的課程設(shè)計(jì)就結(jié)束了,在本次實(shí)踐中我們學(xué)到了很多寶貴的知識(shí)和經(jīng)驗(yàn)。本次課程設(shè)計(jì)并不是一帆風(fēng)順的,期間-我們遇到過一些問題,有過喜悅,也有過失落,曾一度熱情高漲,也曾一度情緒低落,從開始時(shí)滿富盛激情到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)

74、滴滴無不令我們回味無長。</p><p>  通過近兩周的課程設(shè)計(jì),課程設(shè)計(jì)的基本目的達(dá)到了,我懂得了理論與實(shí)際相結(jié)合的重要性,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。</p>&

75、lt;p>  我想說,設(shè)計(jì)確實(shí)有些辛苦,但苦中也有樂,在如今單一的理論學(xué)習(xí)中,很少有機(jī)會(huì)能有實(shí)踐的機(jī)會(huì),但我們可以,而且設(shè)計(jì)也是一個(gè)團(tuán)隊(duì)的任務(wù),一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的合作,我感覺我和同學(xué)們之間的距離更加近了;我想說,確實(shí)很累,但當(dāng)我們看到自己所做的成果時(shí),心中也不免產(chǎn)生興奮。也許有人不喜歡這類的工作,也許有人認(rèn)為設(shè)計(jì)的工作有些枯燥,但我們認(rèn)為無論

76、干什么,只要人生活的有意義就可。</p><p>  這個(gè)時(shí)代不歡迎孤獨(dú)的英雄,因?yàn)橐粋€(gè)人的能力畢竟有限,惟有善于合作的團(tuán)隊(duì)才能發(fā)揮出最大的能量。在這次課程設(shè)計(jì)中,我真正體會(huì)到了合作的重要性。在這次程序設(shè)計(jì)中我們四個(gè)人在一起,從要實(shí)現(xiàn)的功能到流程圖的繪制,從程序的編寫到程序的檢查,從程序的調(diào)試到實(shí)驗(yàn)報(bào)告的寫作,其間每一個(gè)過程都凝聚了我們組的力量。在遇到棘手的問題時(shí),我們總是一起討論,一起把問題解決。 </p

77、><p>  這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專業(yè)知識(shí)問題,最后在老師和同學(xué)的幫助下,終于游逆而解。同時(shí),在別人的身上我們學(xué)也到很多實(shí)用的知識(shí),在此對(duì)給過我?guī)椭睦蠋熀透魑煌瑢W(xué)表示衷心的感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  朱金鈞,麻新旗. 微型計(jì)算機(jī)原理及應(yīng)用技術(shù)(第二版).機(jī)械工業(yè)出版社,200

78、5</p><p>  楊立,趙丑民,曲鳳娟.微型計(jì)算機(jī)原理與接口技術(shù)學(xué)習(xí)與實(shí)驗(yàn)指導(dǎo)(第一版).中國水利水電出版社,2008</p><p><b>  附錄</b></p><p><b>  程序源代碼:</b></p><p>  STACKSEGMENTSTACK

79、 ;堆棧段</p><p>  DW200DUP(?)</p><p>  STACKENDS</p><p>  DATA SEGMENT ;數(shù)據(jù)段</p><p>  SPACEDB 1000DUP('')

80、 ;定義25*40個(gè)空格</p><p>  PATTERNDB 3 DUP('*'),0C9H,26 DUP(0CDH),0BBH,3DUP('*');定義顯示區(qū)圖形</p><p>  DB 3 DUP('*'),0BAH,1DUP('DATE:'),21DUP(20H),0BAH, 3 DUP(

81、9; *')</p><p>  DB 3 DUP('*'),0BAH,1DUP('TIME:'),21DUP(20H),0BAH, 3 DUP(' *')</p><p>  DB 3 DUP('*'),0BAH,1DUP('WEEK:'),21DUP(20H),0BAH, 3 DUP(&

82、#39; *')</p><p>  DB 3 DUP('*'),0C8H,26 DUP(0CDH),0BCH,3DUP('*')</p><p>  DBUFFERDB ' ',7 DUP(':'),12 DUP(' ');時(shí)間緩沖區(qū)</p><p>  

83、DBUFFER1DB ' ',10DUP('/'),9 DUP(' ');日期緩沖區(qū)</p><p>  DBUFFER2DB 'Sun.Mon.Tue.Wed.Thu.Fri.Sat.';星期緩存區(qū)</p><p>  STRDB 0DH,0AH,'PLEASE INPUT DAT

84、E(D) ORTIME(T)OR QUIT(Q),$'</p><p><b>  ;提示信息</b></p><p><b>  DATA ENDS</b></p><p>  CODE SEGMENT ;代碼段</p><p>  ASSUMECS:CODE

85、,DS:DATA,ES:DATA,SS:STACK</p><p>  START:MOVAX,DATA ;裝填數(shù)據(jù)段、附加段</p><p><b>  MOVDS,AX</b></p><p><b>  MOVES,AX</b></p><p>  MOV

86、AX,0001H ;設(shè)置顯示方式為彩色文本方式</p><p>  INT 10H</p><p>  MOVBP,OFFSETSPACE ;顯示25*40空格</p><p>  MOVDX,0B00H ;起示位置是0B行00列</p><p>  MOVCX,1000

87、 ;串長為1000</p><p>  MOVBX,0040H ;文本底色為紅色</p><p>  MOVAX,1300H</p><p>  INT 10H</p><p>  MOVBP,OFFSETPATTERN ;顯示矩形條</p><p>  MOVD

88、X,0B00H ;起示位置是0B行00列</p><p>  MOVCX,200 ;串長為200</p><p>  MOVBX,003EH ;設(shè)置矩形條為黃色</p><p>  MOVAX,1301H</p><p><b>  INT 10H</b><

89、;/p><p>  LEA DX,STR ;顯示提示信息</p><p><b>  MOVAH,9</b></p><p>  INT 21H</p><p>  MOVAH,1 ;從鍵盤輸入單字符</p><p>  INT 21H<

90、/p><p>  CMPAL,44H;AL='D'?</p><p>  JNE SHIJIAN</p><p>  CALL DATE;顯示日期</p><p>  SHIJIAN:CMPAL,54H ;AL='T'?</p><p

91、>  JNE EXIT</p><p>  CALL TIME;顯示時(shí)間</p><p>  EXIT: CMPAL,51H</p><p>  JNE START</p><p>  MOVAH,4CH ;返回DOS狀態(tài)</p><p>  INT 21

92、H</p><p>  DATE PROCNEAR;顯示日期子程序</p><p>  DISPLAY: MOV AH,2AH;取日期,CX:年份;DH:月份;DL:日期;AL:星期</p><p>  INT 21H</p><p>  MOV DI,AX;保存AL</p>

93、<p>  MOV SI,0;SI日期緩存區(qū)指針</p><p>  MOV AX,CX</p><p>  MOV BX,100</p><p><b>  DIV BL</b></p><p>  MOV BL,AH</p><p>  CALL

94、BCDASC1;年份高兩位轉(zhuǎn)換成ASCII存入緩存</p><p>  MOV AL,BL</p><p>  CALLBCDASC1;年份低兩位轉(zhuǎn)換成ASCII存入緩存</p><p><b>  INC SI</b></p><p>  MOV AL,DH</p>&

95、lt;p>  CALLBCDASC1;月份轉(zhuǎn)換成ASCII存入緩存</p><p><b>  INC SI</b></p><p>  MOV AL,DL</p><p>  CALLBCDASC1;日期轉(zhuǎn)換成ASCII存入緩存</p><p>  MOV BP,OFFSET

96、 DBUFFER1;系統(tǒng)日期為黃色</p><p>  MOV DX,0C0DH</p><p>  MOV CX,20</p><p>  MOV BX,004EH</p><p>  MOV AX,1301H</p><p>  INT 10H</p><p

97、>  MOV AX,DI;恢復(fù)AX</p><p>  XOR AH,AH;偏移星期地址</p><p>  SHL AL,1</p><p>  SHL AL,1 </p><p>  LEA DI,DBUFFER2</p><p>  ADD DI,AX

98、</p><p>  MOV BP,DI;系統(tǒng)星期為黃色</p><p>  MOV DX,0E0DH</p><p><b>  MOV CX,4</b></p><p>  MOV BX,004EH</p><p>  MOV AX,1301H</p>

99、<p><b>  INT 10H</b></p><p>  MOV AH,02H;設(shè)置光標(biāo)位置位03*00</p><p>  MOV DX,0300H</p><p><b>  MOV BH,0</b></p><p><b>  INT 1

100、0H</b></p><p>  CALL DELAY;調(diào)用延時(shí)程序</p><p>  MOV AH,01H;讀鍵盤緩沖區(qū)字符到AL寄存器</p><p><b>  INT 16H</b></p><p>  JE DISPLAY;鍵盤緩沖區(qū)AL不變跳至DIS

101、PLAY循環(huán)</p><p>  JMP START</p><p>  MOV AX,4C00H</p><p><b>  INT 21H</b></p><p><b>  RET</b></p><p>  DATEENDP</p&g

102、t;<p>  TIME PROCNEAR;顯示時(shí)間子程序</p><p>  DISPLAY1: MOV SI,0</p><p>  MOV AH,2CH;取時(shí)間,CH:小時(shí);CL:分鐘;DH:秒;DL:1/100秒</p><p>  INT 21H</p><p>  MOV AL,C

103、H</p><p>  CALL BCDASC ;小時(shí)轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p><b>  INC SI</b></p><p>  MOV AL,CL</p><p>  CALL BCDASC;分鐘轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p

104、><b>  INC SI</b></p><p>  MOV AL,DH</p><p>  CALL BCDASC;秒轉(zhuǎn)換成ASCII存入時(shí)間緩存</p><p>  MOV BP,OFFSETDBUFFER;系統(tǒng)時(shí)間為黃色</p><p>  MOVDX,0D0DH<

105、/p><p><b>  MOVCX,20</b></p><p>  MOVBX,004EH</p><p>  MOVAX,1301H</p><p>  INT 10H</p><p>  MOVAH,02H;設(shè)置光標(biāo)位置</p><p>  

106、MOVDX,0300H</p><p><b>  MOVBH,0</b></p><p>  INT 10H</p><p>  CALL DELAY;調(diào)用延時(shí)程序</p><p>  MOVAH,01H;讀鍵盤緩沖區(qū)字符到AL寄存器</p><p>  I

107、NT 16H</p><p>  JE DISPLAY1;鍵盤緩沖區(qū)AL不變跳至DISPLAY循環(huán)</p><p>  JMP START</p><p>  MOV AX,4C00H</p><p><b>  INT 21H</b></p><p><b&g

108、t;  RET</b></p><p><b>  TIME ENDP</b></p><p>  DELAYPROC NEAR;延時(shí)子程序</p><p>  MOVBX,0018H</p><p>  RE:MOVCX,0FFFFH</p><p>  R

109、EA:LOOP REA</p><p><b>  DECBX</b></p><p><b>  JNZ RE </b></p><p><b>  RET</b></p><p>  DELAYENDP</p><p>  BCDASC

110、 PROCNEAR;時(shí)間數(shù)值轉(zhuǎn)換成ASCII碼字符子程序</p><p><b>  PUSH BX</b></p><p><b>  CBW</b></p><p><b>  MOVBL,10</b></p><p><b>  DIV B

111、L</b></p><p>  ADDAL,'0'</p><p>  INC SI</p><p>  ADDAH,'0'</p><p>  MOVWORD PTR DBUFFER[SI],AX</p><p>  INC SI</p>

112、<p>  POP BX</p><p><b>  RET</b></p><p>  BCDASC ENDP</p><p>  BCDASC1PROC NEAR;日期數(shù)值轉(zhuǎn)換成ASCII碼字符子程序</p><p><b>  PUSH BX</b><

113、/p><p><b>  CBW</b></p><p>  MOV BL,10</p><p><b>  DIV BL</b></p><p>  ADD AL,'0'</p><p><b>  INC SI</b><

114、;/p><p>  ADD AH,'0'</p><p>  MOV WORD PTR DBUFFER1[SI],AX</p><p><b>  INC SI</b></p><p><b>  POP BX</b></p><p><b>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論