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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  微機(jī)原理與接口技術(shù)</b></p><p>  -----電子鐘實(shí)驗(yàn)</p><p>  2011年1月5日 </p><p><b>  一 實(shí)驗(yàn)任務(wù)及要求</b></p><p><b>  任務(wù):</b></p><p&

2、gt;  1、掌握綜合使用基本輸入輸出設(shè)備、通用接口芯片、專(zhuān)用接口芯片的方法;</p><p>  2 、掌握實(shí)時(shí)處理程序的編制和調(diào)試方法。</p><p><b>  要求</b></p><p>  設(shè)計(jì)一個(gè)定時(shí)顯示裝置,用實(shí)驗(yàn)儀左側(cè)的六個(gè)LED數(shù)碼管顯示時(shí)間,時(shí)間顯示格式為24小時(shí)制。分秒值為59分55秒時(shí)開(kāi)始報(bào)時(shí),每秒鐘蜂鳴器鳴叫一聲,

3、到整點(diǎn)報(bào)時(shí)停止。</p><p>  用小鍵盤(pán)控制時(shí)鐘的啟停和時(shí)鐘的設(shè)置,鍵的定義參見(jiàn)左圖</p><p><b>  鍵值具體定義如下:</b></p><p>  G鍵(啟停鍵)—— 程序啟動(dòng)后,按下該鍵時(shí) 鐘啟動(dòng); 再次按下該鍵,暫停計(jì)時(shí),顯示當(dāng)前時(shí)間。</p><p>  S鍵(設(shè)置鍵)

4、—— 按下S鍵后,為時(shí)鐘設(shè)置時(shí)、分、秒初始值。</p><p><b>  二 硬件連線</b></p><p>  鍵盤(pán)的控制、LED顯示模塊:采用74系列模塊控制</p><p>  鍵盤(pán)的行信號(hào)Q_0、Q_1、Q_2、Q_3分別與開(kāi)放的輸入信號(hào)Q0、Q1、Q2、Q3相連,鍵盤(pán)的列信號(hào)P_0、P_1、P_2和開(kāi)放的輸出信號(hào)P0、P1、P2相

5、連。74芯片的片選信號(hào)CS1接地址譯碼信號(hào)340H, CS2接地址譯碼信號(hào)360H。</p><p>  時(shí)間的精確定時(shí):用8254定時(shí)器0產(chǎn)生25ms的中斷信號(hào);</p><p>  8254的片選CS連地址輸出端320H,A0,A1分別連地址總線A2,A3,GATE0連+5V,CLK0連74LS393分頻輸出的47K輸出端,OUT0連接到8259的IRQ0</p><

6、;p>  整點(diǎn)報(bào)時(shí)控制:由8255模塊控制;</p><p>  PC0直接與蜂鳴器相連,CS_4連接到實(shí)驗(yàn)儀中部的地址輸出端CS_4</p><p>  中斷處理模塊:由8259控制</p><p>  8259的片選CS-1連地址輸出300H, INT1連總線輸入INTR,8259模塊的INT-A連總線的INTA,8259的SP/1連+5V。</p&

7、gt;<p><b>  三、程序流程圖</b></p><p><b>  主程序</b></p><p>  初始化各段寄存器及相關(guān)變量</p><p>  初始化8255、8254、8259芯片</p><p>  設(shè)置中斷向量,開(kāi)放8259中斷屏蔽</p><

8、;p><b>  開(kāi)放處理器中斷</b></p><p><b>  中斷服務(wù)程序</b></p><p><b>  保護(hù)現(xiàn)場(chǎng)</b></p><p>  判斷時(shí)間是否不小于59分55秒</p><p><b>  報(bào)時(shí)</b></p>

9、<p><b>  掃描鍵盤(pán)</b></p><p><b>  G鍵?</b></p><p><b>  調(diào)用啟停子程序</b></p><p><b>  S鍵?</b></p><p><b>  調(diào)用設(shè)置時(shí)間子程序<

10、/b></p><p><b>  COUNT加1</b></p><p><b>  COUNT=40?</b></p><p>  修改時(shí)間,調(diào)用ADDONE子程序</p><p><b>  COUNT清0</b></p><p>  顯示時(shí)

11、間,調(diào)用顯示時(shí)間子程序</p><p>  結(jié)束中斷(發(fā)EOI命令)</p><p><b>  恢復(fù)現(xiàn)場(chǎng)</b></p><p><b>  中斷返回</b></p><p><b>  四、實(shí)驗(yàn)源代碼</b></p><p><b>  .

12、486p </b></p><p>  DATA SEGMENT AT 0 USE16</p><p><b>  ORG 1000H</b></p><p><b>  HOUR DW ?</b></p><p><b>  MIN DW ?</b><

13、;/p><p><b>  SEC DW ?</b></p><p>  STO DB ?</p><p>  COUNT DB ?</p><p>  DATA ENDS</p><p>  CODE SEGMENT USE16 </p><p>  ASSUME

14、 CS:CODE,DS:DATA</p><p>  ORG 1500H </p><p>  BEG: JMPSTART</p><p>  TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F的共陰極七段譯碼表 00H表示不顯示任何東西</p><p&g

15、t;  KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列編碼值</p><p>  KEYVAL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有鍵的鍵面值</p><p>  PORT1 EQU340H ;數(shù)碼管段選端口</p><p>

16、;  PORT2 EQU360H ;數(shù)碼管位選端口,鍵盤(pán)矩陣的行列端口</p><p>  START: MOVEAX,60000000H</p><p>  MOV CR0,EAX </p><p>  MOV AX,DATA</p><p>  MOV DS,AX</p><p>  MOV HO

17、UR,0203H ;小時(shí)分鐘以及秒的初始化</p><p>  MOV MIN,0509H</p><p>  MOV SEC,0502H</p><p>  LEA BX,TAB</p><p>  MOV STO,0 ;開(kāi)始暫停標(biāo)志位置0&

18、lt;/p><p>  MOV COUNT ,0 ;中斷次數(shù)計(jì)數(shù)初始值為0</p><p>  ;8255初始化 ,用于產(chǎn)生報(bào)時(shí)的脈沖 </p><p>  MOV DX,20FH ;利用左四的8255,控制口為20F

19、H</p><p>  MOV AL,10000000B ;C口輸出</p><p>  OUT DX,AL</p><p>  MOV DX,20BH ;C0輸出1,蜂鳴器不響</p><p>  MOV AL,0FFH</p><

20、p>  OUT DX,AL </p><p>  ;8254初始化,用于產(chǎn)生周期為25ms的中斷</p><p>  MOV AL,00110110B ;計(jì)數(shù)器0,先低后高,方式三,二進(jìn)制</p><p>  MOV DX,32cH ;寫(xiě)往控制口</p>&l

21、t;p>  OUT DX,AL</p><p>  MOV DX,320H ;計(jì)數(shù)器0寫(xiě)初值:47KHz*25ms</p><p>  MOV AX,1175</p><p>  OUT DX,AL</p><p>  MOV AL,AH</p><p>  O

22、UT DX,AL</p><p><b>  ;8259初始化</b></p><p>  CLI :關(guān)中斷</p><p>  MOV DX,300H ;ICW1</p><p>  MOV AL,00010

23、011B</p><p>  OUT DX,AL</p><p>  MOV DX,308H ;ICW2</p><p>  MOV AL,08H ;IR0中斷類(lèi)型號(hào)為08H</p><p>  OUT DX,AL</p><p&

24、gt;  MOV AL,00000001B ;ICW4</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,0FEH ;IR0開(kāi)屏蔽</p><p><b>  OUT DX,AL</b></p>

25、<p>  XOR AX,AX ;裝載中斷向量</p><p><b>  MOV ES,AX</b></p><p>  MOV DI,08H*4</p><p>  MOV AX,OFFSET INTSR</p><p>  MOV ES:[DI],AX<

26、;/p><p>  MOV AX,SEG INTSR</p><p>  MOV ES:[DI+2],AX</p><p>  STI ;開(kāi)中斷</p><p><b>  JMP $</b></p><p>  INTSR PROC

27、 ;中斷服務(wù)程序</p><p>  CMP MIN,0509H ;比較當(dāng)前時(shí)間是否在59分55秒~00分00秒之間</p><p>  JL NEXT1</p><p>  CMP SEC,0505H</p><p>  JL NEXT1</p><

28、;p>  MOV DX,20BH</p><p>  MOV AL,00H ;蜂鳴器低有效,報(bào)時(shí)</p><p>  OUT DX,AL</p><p>  JMP NEXT2</p><p>  NEXT1: CMP MIN,0</p><p>  JNE NEXT3&

29、lt;/p><p>  CMP SEC,0</p><p>  JNE NEXT3</p><p>  MOV DX,20BH</p><p>  MOV AL,00H ;蜂鳴器低有效,報(bào)時(shí)</p><p>  OUT DX,AL</p><p>  JMP NE

30、XT2</p><p>  NEXT3: MOV DX,20BH </p><p>  MOV AL,0FFH</p><p>  OUT DX,AL</p><p>  NEXT2: CMP COUNT,20 ;用8255產(chǎn)生0.5ms的蜂鳴</p><p>  JLE N

31、EXT4</p><p>  MOV DX,20BH</p><p>  MOV AL,0FFH</p><p>  OUT DX,AL</p><p>  NEXT4: CALL KEYCHECK ;檢測(cè)有無(wú)鍵按下</p><p>  CMP AL,0AH ;啟停鍵

32、按下,調(diào)用啟停程序</p><p>  JNZ NEXT5</p><p>  CALL TSTART</p><p>  JMP NEXT6</p><p>  NEXT5: CMP AL,0BH ;設(shè)置鍵按下,調(diào)用設(shè)置時(shí)間程序</p><p>  JNZ NEXT6</

33、p><p>  CALL SETTIME</p><p>  NEXT6: INC COUNT ;當(dāng)COUNT直為40時(shí),加一秒,之后置0</p><p>  CMP COUNT,40 ;25ms*40=1s</p><p>  JB NEXT7</p><p&g

34、t;  CALL ADDONE</p><p>  MOV COUNT,0</p><p>  NEXT7: CALL SHOW ;顯示時(shí)間</p><p>  MOV AL,20H ;發(fā)EOI命令,結(jié)束中斷</p><p>  MOV DX,300H</p><p>

35、;  OUT DX,AL</p><p><b>  IRET</b></p><p>  INTSR ENDP</p><p>  TSTART PROC ;控制暫停和開(kāi)始</p><p>  CMP STO,00H</p><p><b&

36、gt;  JNE LL1</b></p><p><b>  DEC STO</b></p><p><b>  JMP LL2</b></p><p>  LL1: INC STO</p><p>  LL0: CALL KEYCHECK</p>

37、<p>  CMP AL,0AH</p><p><b>  JZ LL2</b></p><p>  CALL SHOW</p><p><b>  JMP LL0</b></p><p>  LL2: RET</p><p>  TSTART

38、ENDP</p><p>  ADDONE PROC ;加1秒子程序</p><p>  MOV AX,SEC ;當(dāng)前秒個(gè)位為9,加1后變0,十位加1</p><p><b>  CMP AL,9</b></p><p><b>  JE N1<

39、/b></p><p><b>  INC AL</b></p><p>  MOV SEC,AX</p><p><b>  JMP N6</b></p><p>  N1: INC AH</p><p>  MOV AL,0 </p>

40、;<p>  CMP AH,6 ;十位加1后為6,則秒變?yōu)?0,分鐘個(gè)位加1</p><p><b>  JE N2</b></p><p>  MOV SEC,AX</p><p><b>  JMP N6</b></p><p>  N2:

41、 MOV AX,0</p><p>  MOV SEC,AX</p><p>  MOV AX,MIN ; 當(dāng)前分鐘個(gè)位為9,加1后變0,十位加1</p><p><b>  CMP AL,9</b></p><p><b>  JE N3</b></p>&l

42、t;p><b>  INC AL</b></p><p>  MOV MIN,AX</p><p><b>  JMP N6</b></p><p>  N3: INC AH</p><p><b>  MOV AL,0</b></p>&l

43、t;p>  CMP AH,6 ;十位加1后為6,則分鐘變?yōu)?0,小時(shí)個(gè)位加1</p><p><b>  JE N4</b></p><p>  MOV MIN,AX</p><p><b>  JMP N6</b></p><p>  N4: MOV

44、 AX,0</p><p>  MOV MIN,AX</p><p>  MOV AX,HOUR</p><p><b>  INC AL</b></p><p>  CMP AX,0204H ;小時(shí)加1后與24比,相等,則變?yōu)?</p><p><b>

45、;  JE N5</b></p><p>  MOV HOUR,AX</p><p><b>  JMP N6</b></p><p>  N5: MOV AX,0</p><p>  MOV HOUR,AX</p><p>  N6: RET</p

46、><p>  ADDONE ENDP</p><p>  SETTIME PROC ;設(shè)置時(shí)間子程序</p><p>  LEA BX,TAB</p><p>  MOV HOUR,0</p><p>  MOV MIN,0</p><p>  

47、MOV SEC,0</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  L1: CALL KEYCHECK ;調(diào)用KEYCHECK,無(wú)鍵按下時(shí),AL中值為0CH</p><p>  CALL DELAY</p&g

48、t;<p>  CMP AL,0CH</p><p><b>  JNZ L2</b></p><p><b>  JMP L1</b></p><p>  L2: CMP AL,02H</p><p>  JG L1 ;設(shè)置小時(shí)十位時(shí),將其他各位數(shù)

49、碼管滅掉及對(duì)應(yīng)的七段譯碼表0CH</p><p>  MOV AH,AL</p><p>  MOV BYTE PTR[HOUR+1],AL</p><p>  MOV BYTE PTR[HOUR],0CH</p><p>  MOV MIN,0C0CH</p><p>  MOV SEC,0C0CH<

50、/p><p>  L3: CALL SHOW</p><p>  CALL KEYCHECK ;設(shè)置小時(shí)的個(gè)位</p><p>  CALL DELAY</p><p>  CMP AL,0CH</p><p><b>  JZ L3</b></p><

51、p>  MOV AH,BYTE PTR[HOUR+1]</p><p>  L4: CMP AX,0204H </p><p><b>  JGE L1</b></p><p>  MOV HOUR,AX</p><p>  L5: CALL SHOW</p&g

52、t;<p>  CALL KEYCHECK ;設(shè)置分鐘的十位</p><p>  CALL DELAY</p><p>  CMP AL,0CH</p><p><b>  JZ L5</b></p><p>  L6: CMP AL,06H</p><p>

53、;<b>  JGE L1</b></p><p>  MOV AH,AL</p><p>  MOV BYTE PTR[MIN+1],AL</p><p>  L7: CALL SHOW</p><p>  CALL KEYCHECK ;設(shè)置分鐘的個(gè)位</p><p&

54、gt;  CALL DELAY</p><p>  CMP AL,0CH</p><p><b>  JZ L7</b></p><p>  MOV AH,BYTE PTR[MIN+1]</p><p>  L8: CMP AX,0509H</p><p><b>

55、;  JG L1</b></p><p>  MOV MIN,AX</p><p>  L9: CALL SHOW</p><p>  CALL KEYCHECK ;設(shè)置秒的十位</p><p>  CALL DELAY</p><p>  CMP AL,0CH</p&

56、gt;<p>  JZ L9 </p><p>  L10: CMP AL,06H</p><p><b>  JGE L1</b></p><p>  MOV AH,AL</p><p>  MOV BYTE PTR[SEC+1],AL</p><

57、p>  L11: CALL SHOW</p><p>  CALL KEYCHECK ;設(shè)置秒的個(gè)位</p><p>  CALL DELAY</p><p>  CMP AL,0CH</p><p><b>  JZ L11</b></p><p>  MOV

58、 AH,BYTE PTR[SEC+1]</p><p>  L12: CMP AX,0509H</p><p><b>  JG L1</b></p><p>  MOV SEC,AX</p><p>  L13: CALL SHOW </p><p&

59、gt;  CALL KEYCHECK ;再次按鍵,啟動(dòng)計(jì)時(shí)</p><p>  CALL DELAY</p><p>  CMP AL,0CH</p><p><b>  JZ L13</b></p><p><b>  RET</b></p><p>  

60、SETTIME ENDP</p><p>  KEYCHECK PROC ;判斷有無(wú)鍵按下子程序</p><p><b>  PUSH BX</b></p><p>  CALL CLEAR</p><p>  MOVDX,PORT2 </p>

61、;<p>  INAL,DX </p><p>  ANDAL,0FH</p><p>  CMPAL,0FH </p><p>  JZEXIT ;有按鍵按下,延時(shí)消抖</p><p><b>  NOP</b></p><p>  NO

62、P </p><p>  ;再次確認(rèn)是否有鍵按下</p><p><b>  INAL,DX</b></p><p>  ANDAL,0FH</p><p>  CMP AL,0FH</p><p><b>  JZEXIT</b&g

63、t;</p><p>  ;開(kāi)始對(duì)每一列進(jìn)行逐行掃描</p><p>  MOVCX,3 </p><p>  MOVBL,0FEH</p><p>  NEXT:MOVAL,BL</p><p>  MOVDX,PORT2</p><p><b>  OUTDX

64、,AL</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  INAL,DX</b></p><p>  AND AL,0FH</p><p>  CMP

65、 AL,0FH</p><p>  JNZ KEY</p><p><b>  ROLBL,1 </b></p><p>  LOOP NEXT </p><p>  JMP EXIT</p><p>  KEY: SHL BL,4 </p>&l

66、t;p>  OR AL,BL ;形成一個(gè)字節(jié)的鍵碼信息存入AL,高4位為列信息低4位為行信息</p><p>  LEA SI,KEYCOD</p><p>  LEA DI,KEYVAL </p><p>  MOV CX,12</p><p>  NEXT11: CMP AL,[SI]&l

67、t;/p><p>  JZ FIND</p><p>  INC SI</p><p>  INC DI</p><p>  LOOP NEXT11 </p><p>  JMP EXIT</p><p>  FIND: MOV AL,[DI]

68、;AL中內(nèi)容為所按鍵的鍵面值 </p><p><b>  PUSH AX</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  WAIT1: IN AL,DX ;判斷按鍵是否已釋放,若無(wú)則等

69、待</p><p>  AND AL,0FH</p><p>  CMP AL,0FH</p><p>  JNZ WAIT1</p><p>  POP AX</p><p>  JMP EXIT2</p><p>  EXIT:MOV AL

70、,0CH</p><p><b>  EXIT2:NOP</b></p><p>  POP BX </p><p><b>  RET</b></p><p>  KEYCHECK ENDP</p><p>  SHOW PROC ;顯示時(shí)間&l

71、t;/p><p>  MOV AX,HOUR</p><p><b>  XLAT</b></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p><p>  OUT DX,AL</p><p>  MOV DX,PORT2 ;位選輸出小時(shí)的個(gè)

72、位</p><p>  MOV AL,0C2H</p><p>  OUT DX,AL</p><p>  CALL DELAY</p><p>  CALL CLEAR </p><p>  MOV AL,AH </p><p><b&g

73、t;  XLAT</b></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p><p>  OUT DX,AL</p><p>  MOV DX,PORT2 ;位選輸出小時(shí)的十位</p><p>  MOV AL,0C1H</p><p>  

74、OUT DX,AL</p><p>  CALL DELAY</p><p>  CALL CLEAR</p><p>  MOV AX,MIN</p><p><b>  XLAT</b></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p>

75、;<p>  OUT DX,AL </p><p>  MOV DX,PORT2 ;位選輸出分鐘的個(gè)位</p><p>  MOV AL,0C8H</p><p>  OUT DX,AL</p><p>  CALL DELAY</p><p>  C

76、ALL CLEAR</p><p>  MOV AL,AH</p><p><b>  XLAT</b></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p><p>  OUT DX,AL</p><p>  MOV DX,PORT2 ;

77、位選輸出分鐘的十位</p><p>  MOV AL,0C4H</p><p>  OUT DX,AL</p><p>  CALL DELAY</p><p>  CALL CLEAR</p><p>  MOV AX,SEC</p><p><b>  XLAT</b

78、></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p><p>  OUT DX,AL </p><p>  MOV DX,PORT2 ;位選輸出秒的個(gè)位</p><p>  MOV AL,0E0h</p><p><b>  OUT DX,AL

79、</b></p><p>  CALL DELAY</p><p>  CALL CLEAR</p><p>  MOV AL,AH</p><p><b>  XLAT </b></p><p>  MOV DX,PORT1 ;段選輸出數(shù)據(jù)</p&g

80、t;<p>  OUT DX,AL</p><p>  MOV DX,PORT2 ;位選輸出秒的十位</p><p>  MOV AL,0D0H</p><p>  OUT DX,AL</p><p>  CALL DELAY</p><p>  CALL CLEAR<

81、;/p><p><b>  RET</b></p><p>  SHOW ENDP</p><p>  DELAY PROC ;延時(shí)子程序</p><p><b>  PUSH CX</b></p><p>  MOV CX,1000&

82、lt;/p><p><b>  LOOP $</b></p><p><b>  POP CX</b></p><p><b>  RET</b></p><p>  DELAY ENDP</p><p>  CLEAR PROC

83、 ;使七段譯碼管全滅子程序</p><p>  MOV AL,00H</p><p>  MOV DX,PORT1</p><p>  OUT DX,AL</p><p>  MOV DX,PORT2</p><p>  OUT DX,AL</p><p><b&

84、gt;  NOP</b></p><p><b>  NOP</b></p><p><b>  RET</b></p><p>  CLEAR ENDP</p><p><b>  CODEENDS</b></p><p><b&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論