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

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p>  課程名稱 微機(jī)原理課程設(shè)計與實踐</p><p>  題目名稱 微型計算機(jī)應(yīng)用系統(tǒng)的設(shè)計 </p><p>  2012年 3 月 15日</p><p><b>  實驗的任務(wù)書</b></p><

2、p><b>  計算器(1)</b></p><p><b>  目的</b></p><p>  鞏固和加深對《微機(jī)原理及應(yīng)用》課程內(nèi)容的認(rèn)識和理解,提高應(yīng)用水平。</p><p>  掌握匯編語言程序的編程方法。</p><p>  熟悉鍵盤控制和七段數(shù)碼管的使用。</p>

3、<p><b>  設(shè)計要求及設(shè)計程序</b></p><p>  課程設(shè)計內(nèi)容上機(jī)編程</p><p>  一在顯示器上顯示任意四位十六進(jìn)制數(shù)</p><p>  將表格里的數(shù)在七段LED上同時顯示出來,要求做成循環(huán)程序,并使用XLAT來譯碼。</p><p>  1.1第一個程序的流程圖</p>

4、<p><b>  1.2源程序</b></p><p>  STACK SEGMENT STACK</p><p>  DW 64 DUP(?)</p><p>  STACK ENDS</p><p>  DATA SEGMENT</p><p>  TAB1

5、 DB 05H,09H,0FH,0CH ;設(shè)置四位查詢位</p><p>  TAB2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;設(shè)置0~F的十六位數(shù)碼管段碼</p><p>  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p>  DATA ENDS&

6、lt;/p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p>  MOV AL,80H

7、 ;8255A初始化</p><p>  OUT 63H,AL</p><p>  L1: MOV DL,0F7H</p><p>  MOV SI,OFFSET TAB1</p><p>  MOV CX,0004H</p><p>  L2: MOV AL,DL

8、 ;位碼送給AL</p><p>  OUT 61H,AL</p><p>  MOV AL,[SI]</p><p>  MOV BX,OFFSET TAB2 ;查表取出數(shù)碼管的段碼</p><p><b>  XLAT TAB2</b><

9、/p><p>  OUT 60H,AL ;查表的段碼送A口顯示</p><p><b>  INC SI</b></p><p>  ROL DL,01H ;下個要顯示的數(shù)碼管位碼</p><p><b>  CAL

10、L TIME</b></p><p><b>  LOOP L2</b></p><p><b>  JMP L1</b></p><p>  TIME: PUSH AX ;延時程序</p><p><b>  PUS

11、H CX</b></p><p>  MOV CX,0002H</p><p>  TIME1: MOV AX,0300H</p><p>  TIME2: DEC AX</p><p><b>  JNZ TIME2</b></p><p>  LOOP TIME1</p&

12、gt;<p><b>  POP CX</b></p><p><b>  POP AX</b></p><p><b>  RET</b></p><p>  CODE ENDS</p><p><b>  END START</b>

13、</p><p>  二、2.1將8個鍵按實驗室要求定義鍵值,按任意鍵在顯示器上顯示對應(yīng)鍵值,要求顯示值能左移。</p><p><b>  2.2 流程圖</b></p><p><b>  2.3源程序:</b></p><p>  STACK SEGMENT STACK</p>

14、;<p>  DW 64 DUP (?)</p><p>  STACK ENDS</p><p>  DATA SEGMENT</p><p>  VAR1 DB 0BFH,0DFH,0EFH,0F7H</p><p>  VAR2 DB 3FH,3FH,3FH,3FH,3FH</p>&l

15、t;p>  VAR3 DB 00H,00H,00H,00H,00H</p><p>  TABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p>  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p>  DATA ENDS</p><p>  C

16、ODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p>  MOV AL,89H </p><p>  O

17、UT 63H,AL ;8255A初始化</p><p>  STT: MOV AL,00H ;鍵盤測試</p><p>  OUT 61H,AL</p><p>  NEXT: IN AL,62H</p><p>  AND

18、AL,82H</p><p>  CMP AL,82H</p><p>  JNZ KEYABC</p><p>  CALL DISP ;調(diào)用顯示程序</p><p><b>  JMP STT</b></p><p> ?。?------

19、--------------------------------------------------------------</p><p>  KEYABC: CALL TIME ;延時,去抖動</p><p><b>  IN AL,62H</b></p><p>  AND AL,8

20、2H</p><p>  CMP AL,82H</p><p><b>  JNZ KEY_7</b></p><p><b>  JMP STT</b></p><p>  KEY_7: MOV AL,0F7H ;鍵盤掃描識別</p>

21、;<p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  TEST AL,02H</p><p><b>  JNZ KEY_A</b></p><p><b>  CALL KEY7</b></p>

22、;<p><b>  JMP STTK</b></p><p>  KEY_A: TEST AL,80H</p><p><b>  JNZ KEY_1</b></p><p><b>  CALL KEYA</b></p><p><b>  JM

23、P STTK</b></p><p>  KEY_1: MOV AL,0EFH</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  TEST AL,02H</p><p><b>  JNZ KEY_F&l

24、t;/b></p><p><b>  CALL KEY1</b></p><p><b>  JMP STTK</b></p><p>  KEY_F: TEST AL,80H</p><p><b>  JNZ KEY_B</b></p><p

25、><b>  CALL KEYF</b></p><p><b>  JMP STTK</b></p><p>  KEY_B: MOV AL,0DFH</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p>

26、;<p>  TEST AL,02H</p><p><b>  JNZ KEY_6</b></p><p><b>  CALL KEYB</b></p><p><b>  JMP STTK</b></p><p>  KEY_6: TEST AL,80H

27、</p><p><b>  JNZ KEY_E</b></p><p><b>  CALL KEY6</b></p><p><b>  JMP STTK</b></p><p>  KEY_E: MOV AL,0BFH</p><p>  O

28、UT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  TEST AL,02H</p><p><b>  JNZ KEY_9</b></p><p><b>  CALL KEYE</b></p><p><

29、;b>  JMP STTK</b></p><p>  KEY_9: TEST AL,80H</p><p>  JNZ KEY_01</p><p><b>  CALL KEY9</b></p><p>  KEY_01: JMP STTK</p><p> ?。?

30、--------------------------------------------------------------------</p><p><b> ??;按鍵7處理子程序</b></p><p>  KEY7: CALL LP1 ;低4位字節(jié)前移</p><p> 

31、 MOV AL,07H</p><p>  MOV [DI+4],AL</p><p>  LEA BX,TABL ;查表取出要顯示數(shù)字的數(shù)碼管段碼</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p>

32、;<p>  CALL DISP ;顯示</p><p>  RET ;返回</p><p>  ;---------------------------------------------------------------------</p&g

33、t;<p>  KEYA: CALL LP1 ;按鍵A處理子程序</p><p>  MOV AL,0AH</p><p>  MOV [DI+4],AL</p><p>  LEA BX,TABL</p><p><b>  XLAT TABL<

34、;/b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b>  RET</b></p><p> ??;---------------------------------------------------------

35、------------</p><p>  KEY1: CALL LP1 ;按鍵1處理子程序</p><p>  MOV AL,01H</p><p>  MOV [DI+4],AL</p><p>  LEA BX,TABL</p><p><

36、;b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b>  RET</b></p><p> ??;-------------------------------------

37、--------------------------------</p><p>  KEYF: CALL LP1 ;按鍵F處理子程序</p><p>  MOV AL,0FH</p><p>  MOV [DI+4],AL</p><p>  LEA BX,TABL<

38、/p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b>  RET</b></p><p> ?。?----------------

39、----------------------------------------------------</p><p>  KEYB: CALL LP1 ;按鍵B處理子程序</p><p>  MOV AL,0BH</p><p>  MOV [DI+4],AL</p><p&g

40、t;  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b>  RET</b></p><p> 

41、??;---------------------------------------------------------------------</p><p>  KEY6: CALL LP1 ;按鍵6處理子程序</p><p>  MOV AL,06H</p><p>  MOV [DI+4],A

42、L</p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b>  RET</b>&l

43、t;/p><p> ??;---------------------------------------------------------------------</p><p>  KEYE: CALL LP1 ;按鍵E處理子程序</p><p>  MOV AL,0EH</p><

44、p>  MOV [DI+4],AL</p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p><b&g

45、t;  RET</b></p><p> ?。?--------------------------------------------------------------------</p><p>  KEY9: CALL LP1 ;按鍵9處理子程序</p><p>  MOV AL

46、,09H</p><p>  MOV [DI+4],AL</p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p&g

47、t;<p><b>  RET </b></p><p> ??;---------------------------------------------------------------------</p><p>  LP1: MOV CX,0004H ;數(shù)據(jù)移位保存子程序(前移四位)

48、</p><p>  MOV SI,OFFSET VAR2</p><p>  MOV DI,OFFSET VAR3</p><p>  LP2: MOV AL,[SI+3]</p><p>  MOV [SI+4],AL</p><p>  MOV AL,[DI+3]</p><p&g

49、t;  MOV [DI+4],AL</p><p><b>  DEC SI</b></p><p><b>  DEC DI</b></p><p><b>  LOOP LP2</b></p><p><b>  RET</b></p>

50、<p> ??;---------------------------------------------------------------------</p><p>  DISP: MOV SI,OFFSET VAR1 ;顯示子程序</p><p>  MOV DI,OFFSET VAR2</p><p&g

51、t;  MOV CX,0004H</p><p>  DIR: MOV AL,[SI]</p><p>  OUT 61H,AL</p><p>  MOV AL,[DI]</p><p>  OUT 60H,AL</p><p><b>  CALL TIME</b></p&g

52、t;<p><b>  INC SI</b></p><p><b>  INC DI</b></p><p><b>  LOOP DIR</b></p><p><b>  RET</b></p><p> ?。?------------

53、--------------------------------------------------------</p><p>  TIME: PUSH AX ;延時程序</p><p><b>  PUSH CX</b></p><p>  MOV CX,0002H&

54、lt;/p><p>  TIME1: MOV AX,0300H</p><p>  TIME2: DEC AX</p><p><b>  JNZ TIME2</b></p><p>  LOOP TIME1</p><p><b>  POP CX</b><

55、;/p><p><b>  POP AX</b></p><p><b>  RET</b></p><p> ?。?--------------------------------------------------------------------</p><p>  STTK: CAL

56、L DISP ;放鍵測試程序</p><p>  MOV AL,00H</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  AND AL,82H</p><p>  CMP

57、 AL,82H</p><p><b>  JNZ STTK</b></p><p><b>  JMP STT</b></p><p>  CODE ENDS</p><p>  END START </p><p><b>  三計算器程序<

58、/b></p><p>  3.1要求:1.在顯示器上顯示任意四位十六進(jìn)制數(shù)</p><p>  2.將8個鍵按實驗室要求定義鍵值,按任意鍵在顯示器上顯示對應(yīng)鍵值,要求顯示值能夠左移。</p><p><b>  3實現(xiàn):</b></p><p>  1.定義鍵盤按鍵:5個為數(shù)字鍵2、4、5、6、7,3個功能鍵:加

59、號+,乘號×,等號=;</p><p>  2.可進(jìn)行三位8進(jìn)制加法運算;</p><p>  3.可進(jìn)行兩位10進(jìn)制乘法運算。</p><p>  3.2各部分工作原理說明</p><p>  3.2.1.18255接口芯片與2×4鍵盤的連接</p><p>  圖中有2行4列,4根線于PB口相連

60、,2根列線與PC口的PC1,PC7相連。按鍵設(shè)置在行、列交點處(數(shù)字或字符為其鍵號),行、列線分別連接到按鍵開關(guān)的兩端。當(dāng)列線通過上拉電阻接+5V時,就被鉗位在高電平狀態(tài)。鍵盤中有無鍵按下是由行線送入全掃描字、列線讀入行線狀態(tài)來判斷的。這就是:給行線所有I/O線均置成低電平,然后讀入列線電平狀態(tài)。如果有鍵按下,總會有一根列線電平被拉至低電平,從而使列線輸入不全為1。</p><p>  鍵盤中哪一個鍵按下是由行線

61、逐行置低電平后,檢查列線輸入狀態(tài)予以確定的。其方法是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為1,則所按下之鍵不在次行。如果不全為1,則所按下之鍵必在次行。而且是在與0電平行線相交點上的那個鍵。</p><p>  鍵盤的工作方式采用編程掃描工作方式,即通過調(diào)用鍵盤子程序來響應(yīng)鍵輸入的要求,在鍵盤掃描子程序中完成下述功能:</p><p>  判斷鍵盤上有無鍵按下。其方法是先使PB

62、3~PB6=0,然后讀PC1、PC7的狀態(tài),若全為1,則鍵盤中無鍵按下;若不全為1,則說明鍵盤中有鍵按下。</p><p>  去除按鍵的抖動影響。對于由機(jī)械觸點構(gòu)成的按鍵,由于機(jī)械觸點的彈性作用,觸點在閉合及斷開瞬間有一個抖動過程,一般為5~10ms時間。為了消除抖動影響可作這樣處理:當(dāng)判斷有鍵按下后,軟件延時一段時間在判斷鍵盤狀態(tài),如果仍有鍵按下狀態(tài),則認(rèn)為有一個確定的鍵按下,否則按鍵抖動處理。</p&

63、gt;<p>  求按下鍵的鍵值及鍵號。鍵盤上的每個鍵都對應(yīng)一個鍵值。鍵值的組成:其中4位為掃描該鍵時的行線輸出值(PB3~PB6),高8位為該鍵按下時的列線輸入值(PC0、PC1為有效位,其余位令其為1)。由于鍵盤中鍵號排列無規(guī)律,不能通過對鍵值直接運算得到鍵號。因此必須先判斷按下鍵是使PC7=0還是PC1=0,然后再查為零的列線上鍵按下時其8位鍵值中是否有一位為零,若為零則可得到鍵值。求按下鍵的鍵值及鍵號的目的是使程序

64、轉(zhuǎn)到相應(yīng)的地址去完成該鍵的操作。一般,對數(shù)字鍵就是直接將該號送到顯示緩沖區(qū)進(jìn)行顯示,對功能鍵則必須先找到該功能鍵處理程序入口地址,并轉(zhuǎn)去執(zhí)行該鍵的命令。因此當(dāng)鍵號求到后,還必須找到功能處理入口。</p><p>  為保證鍵閉合依次CPU僅進(jìn)行依次鍵功能操作。程序中需要等待鍵釋放以后再將鍵號送累加器AH。</p><p>  3.2.2 LED顯示器的工作方式</p>&

65、lt;p>  LED數(shù)碼管是目前最常用的數(shù)字顯示器,圖A、B為共陰管和共陽管的電路,圖C為兩種不同出線形式的引出腳功能圖。</p><p>  一個LED數(shù)碼管可用來顯示一位0~9十進(jìn)制數(shù)和一個小數(shù)點。小型數(shù)碼管(0.5寸和0.36寸)每段發(fā)光二極管的正向壓降,隨顯示光(通常為紅、綠、黃、橙色)的顏色不同略有差別,通常約為2~2.5V,每個發(fā)光二極管的點亮電流在5~10mA。LED數(shù)碼管要顯示BCD碼所表示

66、的十進(jìn)制數(shù)字就需要有一個專門的譯碼器,該譯碼器不但要完成譯碼功能,還要有相當(dāng)?shù)尿?qū)動能力。</p><p>  圖A 共陰連接(“1”電平驅(qū)動) 圖B 共陽連接(“0”電平驅(qū)動)</p><p>  圖C LED數(shù)碼管符號及引腳功能圖</p><p>  LED顯示器有靜態(tài)和動態(tài)兩種工作方式</p><p>  LED顯示

67、器工作在靜態(tài)顯示方式下,共陰極或共陽極連接在一起,然后接地或+5V;每位的段選線(A,B,…,G,H)與一個8位并行口相連。這樣,只要在每一位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。</p><p>  在多位LED顯示時,為了化簡電路,降低成本,將所有位的斷選線并聯(lián)在一起,由一個8位的I/O口控制,即控制段選碼而共陰極或共陽極點分別由相應(yīng)的I/O線控制即控制位選碼,這就是動態(tài)顯示。</p&g

68、t;<p>  4位LED動態(tài)顯示電路只需一個8位I/O口及一個4位I/O口,其中8個I/O控制段選碼,4位I/O控制位選。進(jìn)行4位字符顯示時,采用掃描顯示方式,即在每一瞬間只使某一位顯示相應(yīng)字符,在此瞬間,段選控制I/O口輸出相應(yīng)字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平,共陽極送高電平),以保證該位顯示相應(yīng)字符。如此輪流,使每位顯示該位應(yīng)顯示字符,并保持延遲一段時間(1~5ms),以造成視覺暫留

69、效果。不斷循環(huán)送出相應(yīng)的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。</p><p><b>  3.3 流程圖</b></p><p><b>  3.4源程序</b></p><p>  STACK SEGMENT STACK</p><p>  DW 64 DUP(?)</p>

70、<p>  STACK ENDS</p><p>  DATA SEGMENT</p><p>  VAR1 DB 0BFH,0DFH,0EFH,0F7H</p><p>  VAR2 DB 3FH,3FH, 3FH, 3FH,3FH</p><p>  VAR3 DB 00H,00H,00H,00H,00H,00H,

71、00H,00H,00H,00H</p><p>  VAR4 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H</p><p>  TABL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p>  DB 7FH,67H,77H,7CH,39H,5EH,79H,71H</p>

72、<p><b>  DATA ENDS</b></p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA, </p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></p

73、><p>  MOV AL,89H;8255A初始化</p><p>  OUT 63H,AL</p><p>  MOV BX,0000H</p><p>  STT:MOV AL,00H;鍵盤測試</p><p>  OUT 61H,AL</p><p>  N

74、EXT: IN AL,62H</p><p>  AND AL,82H;通過掃描C口低位測試是否按鍵</p><p>  CMP AL,82H</p><p>  JNZ KEYABC</p><p><b>  CALL DISP</b></p><p><b>  J

75、MP STT</b></p><p>  KEYABC:CALL TIME;調(diào)用延時,去抖動</p><p>  IN AL,62H;送入C口數(shù)據(jù)</p><p>  AND AL,82H;數(shù)據(jù)前六位清零</p><p>  CMP AL,82H;比較數(shù)據(jù)后兩位<

76、/p><p>  JNZ KEY_4 ;轉(zhuǎn)移到檢測按下哪個數(shù)字鍵</p><p>  JMP STT;返回檢測鍵盤</p><p>  KEY_4: MOV AL, 0F7H;檢測數(shù)字4鍵</p><p>  OUT 61H,AL</p><p><b>  IN

77、 AL,62H</b></p><p>  TEST AL,02H;測試按鍵</p><p>  JNZ KEY_2;轉(zhuǎn)移檢測下一個數(shù)字鍵</p><p>  CALL KEY4 ;調(diào)用數(shù)字鍵處理程序</p><p>  JMP STTK;放鍵返回</p>

78、<p>  KEY_2 : TEST AL,80H;檢測數(shù)字鍵2鍵</p><p>  JNZ KEY_5;轉(zhuǎn)移檢測下一個數(shù)字鍵</p><p>  CALL KEY2;調(diào)用數(shù)字鍵處理程序</p><p>  JMP STTK;放鍵返回</p><p>  KEY_5

79、 : MOV AL, 0EFH;檢測數(shù)字5鍵</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  TEST AL,02H;測試按鍵</p><p>  JNZ KEY_JIA;轉(zhuǎn)移檢測下一個數(shù)字鍵</p&g

80、t;<p>  CALL KEY5 ;調(diào)用數(shù)字鍵處理程序</p><p>  JMP STTK;放鍵返回</p><p>  KEY_JIA: TEST AL, 80H;檢測 功能鍵+</p><p>  JNZ KEY_6;轉(zhuǎn)移檢測下一個數(shù)字鍵</p><p>

81、  CALL KEYJIA ;調(diào)用數(shù)字鍵處理程序</p><p><b>  JMP STTK</b></p><p>  KEY_6 : MOV AL,0DFH;檢測數(shù)6鍵</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b&g

82、t;</p><p>  TEST AL,02H;測試按鍵</p><p>  JNZ KEY_CHENG;轉(zhuǎn)移檢測下一個數(shù)字鍵</p><p>  CALL KEY6;調(diào)用數(shù)字鍵處理程序</p><p>  JMP STTK;放鍵返回</p><p>  

83、KEY_CHENG : TEST AL,80H;檢測功能鍵*</p><p>  JNZ KEY_7;轉(zhuǎn)移檢測下一個數(shù)字鍵</p><p>  CALL KEYCHENG;調(diào)用功能鍵處理程序</p><p>  JMP STTK;放鍵返回</p><p>  KEY_7 : MOV

84、 AL,0BFH;檢測數(shù)字7鍵</p><p>  OUT 61H,AL</p><p><b>  IN AL,62H</b></p><p>  TEST AL,02H;測試按鍵</p><p>  JNZ KEY_DEN;轉(zhuǎn)移檢測下一個功能鍵</p><

85、;p>  CALL KEY7 ;調(diào)用數(shù)字鍵處理程序</p><p>  JMP STTK;放鍵返回</p><p>  KEY_DEN : TEST AL, 80H;檢功能=鍵</p><p>  JNZ KEY_71</p><p>  CALL KEYDEN;調(diào)用功能

86、鍵處理程序</p><p>  KEY_71: JMP STTK;放鍵返回</p><p>  KEY4: CMP BH,00H</p><p><b>  JZ KEY4_1</b></p><p>  CALL CLEAR</p><p>  KEY4_1:CALL LP1

87、</p><p>  MOV AL,04H</p><p>  MOV [DI+4],AL</p><p><b>  PUSH BX</b></p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p>

88、<p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p>  POP BX</p><p><b>  RET</b></p><p>  KEY5: CMP BH,00H</p><p>&l

89、t;b>  JZ KEY5_1</b></p><p>  CALL CLEAR</p><p>  KEY5_1:CALL LP1</p><p>  MOV AL,05H</p><p>  MOV [DI+4],AL</p><p><b>  PUSH BX<

90、/b></p><p>  LEA BX,TABL</p><p><b>  XLAT</b></p><p>  MOV [SI+4],AL</p><p>  CALL DISP</p><p>  POP BX</p><p><b>

91、  RET</b></p><p>  KEY6: CMP BH,00H</p><p><b>  JZ KEY6_1</b></p><p>  CALL CLEAR</p><p>  KEY6_1:CALL LP1</p><p>  MOV AL,06H&l

92、t;/p><p>  MOV [DI+4],AL</p><p><b>  PUSH BX</b></p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><

93、p><b>  CALL DISP</b></p><p>  POP BX</p><p><b>  RET</b></p><p>  KEY7: CMP BH,00H</p><p><b>  JZ KEY7_1</b></p>&l

94、t;p>  CALL CLEAR</p><p>  KEY7_1:CALL LP1</p><p>  MOV AL,07H</p><p>  MOV [DI+4],AL</p><p><b>  PUSH BX</b></p><p>  LEA BX,TABL&l

95、t;/p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p>  POP BX</p><p><b>  RET</b></p><p>  KEY2: CMP BH,00H</p><

96、;p><b>  JZ KEY2_1</b></p><p>  CALL CLEAR</p><p>  KEY2_1:CALL LP1</p><p>  MOV AL, 02H</p><p>  MOV [DI+4],AL</p><p><b>  PU

97、SH BX</b></p><p>  LEA BX,TABL</p><p><b>  XLAT TABL</b></p><p>  MOV [SI+4],AL</p><p><b>  CALL DISP</b></p><p>  POP BX

98、</p><p><b>  RET</b></p><p>  KEYJIA: CMP BH,00H</p><p>  JNZ KEYJIA_1</p><p><b>  CALL LP3</b></p><p>  KEYJIA_1:MOV BX,0101H&

99、lt;/p><p><b>  RET</b></p><p>  KEYSCHENG CMP BH,00H</p><p>  JNZ KEYCHENG_1</p><p><b>  CALL LP3</b></p><p>  KEYCHENG_1:MOV BX,0102

100、H </p><p><b>  RET</b></p><p>  KEYDEN: CMP BL,00H</p><p>  JNZ KEYDEN_1</p><p>  CALL CLEAR</p><p><b>  CALL DISP</b></p>&

101、lt;p>  KEYDEN_1:MOV BH,01H</p><p>  CMP BL,01H</p><p><b>  JZ K1</b></p><p>  CMP BL,02H</p><p><b>  JZ K2</b></p><p>  CALL CL

102、EAR</p><p><b>  STTE:RET</b></p><p>  K1:CALL JIA1</p><p><b>  JMP STTE</b></p><p>  K2:CALL CHENG</p><p><b>  JMP STTE</b

103、></p><p>  JIA1: MOV SI,OFFSET VAR3</p><p>  MOV DI,OFFSET VAR4</p><p><b>  CLC</b></p><p>  MOV CX,0004H</p><p>  JIA2: MOV AL, [DI]

104、</p><p>  ADC AL, [SI]</p><p>  CMP AL,08H</p><p><b>  JB B1</b></p><p>  AND AL,07H</p><p><b>  STC</b></p><p>&l

105、t;b>  JMP B2</b></p><p><b>  B1: CLC</b></p><p>  B2: MOV [DI], AL</p><p><b>  INC SI</b></p><p><b>  INC DI</b><

106、;/p><p>  LOOP JIA_2</p><p>  CALL CHANGE</p><p>  CALL DISP</p><p>  MOV BL, 00H;清零BL是判斷等號所需要</p><p><b>  RET</b></p><p>  C

107、HENG:MOV SI,OFFSET VAR3</p><p>  MOV DI,OFFSET VAR4</p><p>  MOV AL,[DI]</p><p>  MOV CL,[SI]</p><p><b>  MUL CL</b></p><p><b>  AA

108、M</b></p><p>  MOV [DI+5],AX</p><p>  MOV AL,[DI+1]</p><p><b>  MUL CL</b></p><p><b>  AAM</b></p><p>  ADD AL,[DI+6]<

109、/p><p><b>  AAA</b></p><p>  MOV [DI+6],AX</p><p>  MOV AL,[DI]</p><p>  MOV CL,[SI+1]</p><p><b>  MUL CL</b></p><p>

110、<b>  AAM</b></p><p>  MOV [SI+5],AX</p><p>  MOV AL,[DI+1]</p><p><b>  MUL CL</b></p><p><b>  AAM</b></p><p>  ADD

111、AL,[SI+6]</p><p><b>  AAA</b></p><p>  MOV [SI+6],AX</p><p>  MOV AL,[DI+5]</p><p>  MOV [DI],AL</p><p>  MOV AL,[DI+6]</p><p>

112、;  ADD AL,[SI+5]</p><p><b>  AAA</b></p><p>  MOV [DI+1],AL</p><p>  MOV AL,[DI+7]</p><p>  ADC AL,[SI+6]</p><p><b>  AAA</b>&l

113、t;/p><p>  MOV [DI+2],AL</p><p>  MOV AL,00H</p><p>  ADC AL,[SI+7]</p><p><b>  AAA</b></p><p>  MOV [DI+3],AL</p><p>  CALL CHA

114、NGE</p><p>  CALL DISP</p><p>  MOV BL,00H</p><p><b>  RET</b></p><p>  LP1:MOV CX,0004H;數(shù)據(jù)移位保存子程序(前進(jìn)三位)</p><p>  MOV SI,OFFSET VAR

115、2;SI指向顯示代碼緩沖區(qū)首址</p><p>  MOV DI,OFFSET VAR3</p><p>  LP2:MOV AL,[SI+3]</p><p>  MOV [SI+4],AL </p><p>  MOV AL,[DI+3];顯示代碼移位</p><p>  MOV [DI+4

116、],AL</p><p>  DEC SI ;顯示數(shù)字移位</p><p><b>  DEC DI</b></p><p><b>  LOOP LP2</b></p><p>  RET;移位返回</p>

117、<p>  LP3: MOV CX,0004H</p><p>  MOV SI,OFFSET VAR3</p><p>  MOV DI,OFFSET VAR4</p><p>  LP4: MOV AL,[SI]</p><p>  MOV [DI],AL</p><p><b>  INC

118、 SI</b></p><p><b>  INC DI</b></p><p><b>  LOOP LP4</b></p><p><b>  RET</b></p><p>  CHANGE:MOV SI,OFFSET VAR2</p><

119、p>  MOV DI,OFFSET VAR4</p><p>  MOV BX,OFFSET TABLE</p><p>  MOV CX,0004H</p><p>  COMP0: MOV AL,[DI]</p><p><b>  XLAT TABL</b></p><p>  MO

120、V [SI],AL</p><p><b>  INC SI</b></p><p><b>  INC DI</b></p><p>  LOOP COMP0</p><p><b>  RET </b></p><p>  DISP: MOV SI,

121、OFFSET VAR1</p><p>  MOV DI,OFFSET VAR2</p><p>  MOV DL,[DI+3]</p><p>  CMP DL,3FH</p><p><b>  JNZ DIR3</b></p><p>  MOV DL,[DI+2]</p>&

122、lt;p>  CMP DL,3FH</p><p><b>  JNZ DIR2</b></p><p>  MOV DL,[DI+1]</p><p>  CMP DL,3FH</p><p><b>  JNZ DIR1</b></p><p><b> 

123、 JMPDIR0</b></p><p>  DIR3:MOV CX,0004H</p><p><b>  JMP DIR</b></p><p>  DIR2:MOV CX,0003H</p><p><b>  JMP DIR</b></p><p>  D

124、IR1:MOV CX,0002H</p><p><b>  JMP DIR</b></p><p>  DIR0:MOV CX,0001H</p><p>  DIR:MOV AL,[SI]</p><p>  OUT 61H,AL</p><p>  MOV AL,[DI]</p>

125、<p>  OUT 60H,AL</p><p><b>  CALL TIME</b></p><p><b>  INC SI</b></p><p><b>  INC DI</b></p><p><b>  LOOP DIR</b>

126、</p><p><b>  RET</b></p><p>  TIME: PUSH AX </p><p>  PUSH CX;延時子程序</p><p>  MOV CX,0002H</p><p>  TIME1:MOV AX,0300H</p><p&

127、gt;  TIME2:DEC AX</p><p><b>  JNZ TIME2</b></p><p>  LOOP TIME1</p><p><b>  POP CX</b></p><p><b>  POP AX</b></p><p>&l

128、t;b>  RET</b></p><p>  CLEAR:MOV SI,OFFSET VAR2</p><p>  MOV DI,OFFSET VAR3</p><p>  MOV CX,0005H</p><p>  CLEAR1:MOV AL,3FH</p><p>  MOV [SI

129、],AL</p><p>  MOV AL,00H</p><p>  MOV [DI],AL</p><p><b>  INC SI</b></p><p><b>  INC DI</b></p><p>  LOOP CLEAR1</p>&l

130、t;p>  MOV BH,00H</p><p><b>  RET</b></p><p>  STTK: CALL DISP;放鍵測試程序</p><p>  MOV AL,00H</p><p>  OUT 61H,AL;B口清零</p><p> 

131、 IN AL,62H;送入C口數(shù)據(jù)</p><p>  AND AL,82H;數(shù)據(jù)保留低兩位</p><p>  CMP AL,82;比較是否放鍵</p><p>  JNZ STTK;仍未放鍵,返回繼續(xù)檢測放鍵</p><p>  JMP STT;已放鍵,返回&l

132、t;/p><p><b>  CODE ENDS</b></p><p><b>  END START</b></p><p><b>  四心得體會</b></p><p>  雖然上機(jī)調(diào)試的經(jīng)歷是痛苦的,一步一步的完成了以上的程序,感覺自己能力還需要加強(qiáng)。同時,也想到,或許,

133、學(xué)程序初期,都是仿照別人的程序算法吧。自己以后要盡量多參閱一些程序,提高自己的水平。但是期間的細(xì)節(jié)錯誤給了我們應(yīng)有的教訓(xùn),使我們在以后的學(xué)習(xí)及工作中盡量避免,對于匯編語言的編程也有了進(jìn)一步的了解。</p><p>  這次的課程設(shè)計還使我意識到要將微機(jī)原理及應(yīng)用這門專業(yè)課程學(xué)習(xí)好,除了學(xué)好書本知識外還要通過實踐把書本知識應(yīng)用到實踐中去,才能對這門課程有更深的認(rèn)識,也有利于自己對知識的吸收,鞏固和提高。</p

134、><p>  五、應(yīng)收集的資料及主要參考文獻(xiàn)</p><p>  1 許立鋅等編.微型計算機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,2003</p><p>  2.許立梓等編《微型計算機(jī)原理及應(yīng)用》</p><p>  --習(xí)題解答、實驗指導(dǎo)及課程設(shè)計.</p><p>  北京:機(jī)械工業(yè)出版社,2003</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論