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

下載本文檔

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

文檔簡介

1、<p><b>  微機(jī)接口課程設(shè)計(jì)</b></p><p>  題目:本地步進(jìn)電機(jī)綜合控制</p><p><b>  姓 名:xx</b></p><p><b>  班 級(jí):xx</b></p><p><b>  學(xué) 號(hào): xx</b>&

2、lt;/p><p><b>  指導(dǎo)老師: xx</b></p><p>  完成日期:2012年1月4日</p><p><b>  任務(wù)要求</b></p><p>  實(shí)現(xiàn)外接步進(jìn)電機(jī)模塊的“啟動(dòng)”、“正反轉(zhuǎn)”功能,同時(shí),電機(jī)的當(dāng)前轉(zhuǎn)速顯示在數(shù)碼管上。通過小鍵盤按鍵結(jié)束整個(gè)程序的運(yùn)行,顯示相應(yīng)的標(biāo)

3、志。數(shù)碼管和鍵盤的功能由74系列器件實(shí)現(xiàn)。</p><p>  轉(zhuǎn)速顯示格式: ##轉(zhuǎn)/分,表示順時(shí)針每分鐘##轉(zhuǎn)</p><p>  —##轉(zhuǎn)/分,表示逆時(shí)針每分鐘##轉(zhuǎn)</p><p>  自定義鍵 : 顯示在數(shù)碼管上,結(jié)束整個(gè)程序運(yùn)行。</p><p><b>  硬件架構(gòu)(連線)</b></p>&

4、lt;p><b>  實(shí)驗(yàn)設(shè)置</b></p><p>  步進(jìn)電機(jī)模塊;8253A定時(shí)模塊;8259A中斷控制器;計(jì)數(shù)分頻電路74LS393;74系列模塊;4片8255A;小鍵盤和數(shù)碼管等</p><p><b>  硬件連線</b></p><p>  74系列模塊………………控制鍵盤輸入;</p>

5、<p>  前兩片8255A……………顯示正反轉(zhuǎn)停止及轉(zhuǎn)速信息;</p><p>  第三片8255A……………顯示步速信息;</p><p>  第四片8255A……………驅(qū)動(dòng)步進(jìn)電機(jī);</p><p>  8253A……………………產(chǎn)生步進(jìn)電機(jī)驅(qū)動(dòng)的定時(shí)信號(hào);</p><p>  8259A……………………接收并處理來自825

6、3A的定時(shí)中斷請(qǐng)求;</p><p><b>  具體連接如下</b></p><p>  試驗(yàn)儀中部的地址輸出端CS-1~CS-4分別連接到8255模塊下方的CS-1~CS-4;8253的片選CS連接地址輸出端CS1(300H),8253的A0、A1分別連地址總線A2、A3,8253的GATE0連+5V,8253的CLK0連74LS393分頻輸出的47K輸出端,82

7、53的OUT0連接到8259的IRQ0;8259的片選CS-1連地址輸出CS6(3A0),8259的INT1連接總線輸入INTR,8259的模塊的INT-A連總線的INTA,8259的SP/1連+5V;75LS393的片選CS2連接地址輸出CS4(360),片選CS1連接地址輸出CS3(340)</p><p>  如按以上連線,則8255的A口、B口,C口和控制口的地址依次為200H、204H、208H和20C

8、H;8253的T0、T1、T2及控制口的地址分別為300H、304H、308H和30CH;8259的基地址是3A8H,偶地址為3A0H。</p><p><b>  流程圖</b></p><p>  本程序主要包括以下幾部分:1、主程序;2、輸入子程序;</p><p>  3、延時(shí)子程序;4、中斷服務(wù)程序。以下為流程圖:</p>

9、<p><b>  主程序流程圖</b></p><p><b>  輸入子程序流程圖</b></p><p><b>  中斷服務(wù)程序流程圖</b></p><p><b>  延時(shí)子程序流程圖略</b></p><p><b>

10、  代碼實(shí)現(xiàn)</b></p><p><b>  .486p</b></p><p>  PORT1EQU340H ;(cs1)數(shù)碼管段碼端口</p><p>  PORT2EQU360H ;(cs2)數(shù)碼管位選端口,鍵盤矩陣的行列端口</p><p>  DATA SEGMENT AT 0

11、 USE16</p><p><b>  ORG 1000H</b></p><p>  FLAG DB ?</p><p>  BAIWEI DB ?</p><p>  SHIWEI DB ?</p><p>  GEWEI DB ?</p><p>  

12、NUM DW ?</p><p>  STOPN DB ?</p><p>  DATA ENDS</p><p>  CODESEGMENT USE16</p><p>  ASSUMEDS:DATA,CS:CODE</p><p><b>  ORG1500H</b>&

13、lt;/p><p>  BEG:JMPSTART</p><p>  SEVENCOD DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH </p><p>  KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH ;前兩行按鍵

14、的鍵碼</p><p>  DB 0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;在此處添加后兩行鍵的鍵碼</p><p>  KEYVAL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;12個(gè)按鍵的鍵值</p><p>  TEN DB 10</p><p>

15、;  RNUM DB 10001000B</p><p>  STEP DB 0</p><p>  START:CLI</p><p>  MOVEAX,60000000H</p><p>  MOVCR0,EAX</p><p><b>  ;裝載DS</b&g

16、t;</p><p>  MOVAX,DATA</p><p><b>  MOVDS,AX</b></p><p><b>  ;初始化8255</b></p><p>  MOV AL,80H</p><p>  MOV DX,20CH</p><

17、p><b>  OUT DX,AL</b></p><p>  MOV AL,80H</p><p>  MOV DX,20DH</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,80H</p><p>  MOV DX,20EH

18、</p><p><b>  OUT DX,AL</b></p><p><b>  ;A</b></p><p>  MOV AL,0FFH</p><p>  MOV DX,200H</p><p><b>  OUT DX,AL</b></p

19、><p>  MOV AL,0FFH</p><p>  MOV DX,201H</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,0FFH</p><p>  MOV DX,202H</p><p><b>  OUT DX,

20、AL</b></p><p><b>  ;B</b></p><p>  MOV AL,0FFH</p><p>  MOV DX,204H</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,0FFH</p>

21、<p>  MOV DX,205H</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,0FFH</p><p>  MOV DX,206H</p><p><b>  OUT DX,AL</b></p><p><b&

22、gt;  ;最右邊8255</b></p><p>  MOV AL,80H</p><p>  MOV DX,20FH</p><p><b>  OUT DX,AL</b></p><p><b>  ;初始化8259</b></p><p>  ;初始化82

23、59 ICW1,ICW2</p><p>  MOV AL,00010011B</p><p>  MOV DX,3A0H</p><p>  OUT DX,AL</p><p>  MOV AL,70H</p><p>  MOV DX,3A8H</p><

24、p>  OUT DX,AL</p><p>  MOV AL,00000001b;ICW4非自動(dòng)中斷</p><p>  OUT DX,AL</p><p><b>  ;中斷屏蔽字</b></p><p>  MOV AL,11111110B</p><p>  M

25、OV DX,3A8H</p><p><b>  OUT DX,AL</b></p><p><b>  ;設(shè)置中斷向量</b></p><p>  MOV AX,0</p><p>  MOV ES,AX</p><p>  MOV BX,70H*4<

26、;/p><p>  MOV AX,OFFSET RUN</p><p>  MOV ES:[BX],AX</p><p>  MOV AX,SEG RUN</p><p>  MOV ES:[BX+2],AX</p><p>  MOV STOPN,-1</p><p>

27、;<b>  AG1:</b></p><p>  LEA BX,SEVENCOD</p><p>  CALL INPUT</p><p>  CMP AL,00H</p><p><b>  JZ ST1</b></p><p>  CMP AL,01H</p&g

28、t;<p><b>  JZ ZZ</b></p><p>  CMP AL,02H</p><p><b>  JZ FZ</b></p><p><b>  JMP AG1</b></p><p><b>  ;開始停止鍵</b><

29、;/p><p>  ST1: NEG STOPN </p><p>  CMP STOPN,1;判斷是否需要啟動(dòng)設(shè)備</p><p>  JNZ BQIDONG</p><p><b>  JMP S1</b></p><p>  BQIDONG:MOV DX,200H</p&g

30、t;<p>  MOV AL,92H</p><p><b>  OUT DX,AL</b></p><p><b>  CLI</b></p><p><b>  JMP AG1</b></p><p><b>  ;設(shè)置默認(rèn)值100</b>

31、;</p><p>  S1: MOV DX,200H</p><p>  MOV AL,0FFH</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,1</b></p><p>  MOV BAIWEI,AL</p

32、><p><b>  XLAT</b></p><p>  MOV DX,204H</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,0</b></p><p>  MOV SHIWEI,AL</p>

33、;<p><b>  XLAT</b></p><p>  MOV DX,201H</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,0</b></p><p>  MOV GEWEI,AL</p>&

34、lt;p><b>  XLAT</b></p><p>  MOV DX,205H</p><p><b>  OUT DX,AL</b></p><p>  MOV FLAG,0</p><p><b>  JMP EXIT</b></p><p&g

35、t;<b>  ;正轉(zhuǎn)</b></p><p><b>  ZZ: </b></p><p>  MOV DX,200H</p><p>  MOV AL,0FFH</p><p><b>  OUT DX,AL</b></p><p>  A1

36、: CALL INPUT</p><p>  CMP AL,03H</p><p><b>  JB A1</b></p><p><b>  SUB AL,3</b></p><p>  MOV BAIWEI,AL</p><p><b>  XLAT&l

37、t;/b></p><p>  MOV DX,204H</p><p><b>  OUT DX,AL</b></p><p>  CALL INPUT</p><p><b>  SUB AL,3</b></p><p>  MOV SHIWEI,AL</p&g

38、t;<p><b>  XLAT</b></p><p>  MOV DX,201H</p><p><b>  OUT DX,AL</b></p><p>  CALL INPUT</p><p><b>  SUB AL,3</b></p>&l

39、t;p>  MOV GEWEI,AL</p><p><b>  XLAT</b></p><p>  MOV DX,205H</p><p><b>  OUT DX,AL</b></p><p>  MOV FLAG,0;設(shè)置正反轉(zhuǎn)標(biāo)志位</p><p>  MOV

40、 STOPN,1</p><p><b>  JMP EXIT</b></p><p><b>  ;反轉(zhuǎn)</b></p><p><b>  FZ: </b></p><p>  MOV DX,200H;反轉(zhuǎn)</p><p>  MOV AL,

41、0BFH</p><p><b>  OUT DX,AL</b></p><p>  A2: CALL INPUT</p><p>  CMP AL,03H</p><p><b>  JB A2</b></p><p><b>  SUB AL,3 <

42、;/b></p><p>  MOV BAIWEI,AL</p><p><b>  XLAT</b></p><p>  MOV DX,204H</p><p><b>  OUT DX,AL</b></p><p><b>  SUB AL,3</b

43、></p><p>  MOV SHIWEI,AL</p><p><b>  XLAT</b></p><p>  MOV DX,201H</p><p><b>  OUT DX,AL</b></p><p>  CALL INPUT</p><

44、p><b>  SUB AL,3</b></p><p>  MOV GEWEI,AL</p><p><b>  XLAT</b></p><p>  MOV DX,205H</p><p><b>  OUT DX,AL</b></p><p>

45、;  MOV FLAG,1</p><p>  MOV STOPN,1</p><p><b>  JMP EXIT</b></p><p><b>  ;計(jì)算數(shù)值</b></p><p>  EXIT: MOV AL,BAIWEI</p><p><b>  M

46、UL TEN</b></p><p>  MOV BL,SHIWEI</p><p><b>  ADD AL,BL</b></p><p><b>  MUL TEN</b></p><p>  MOV BL,GEWEI</p><p><b>  A

47、DD AL,BL</b></p><p><b>  MOV AH,0</b></p><p>  MOV NUM,AX;輸入的值放在num中</p><p><b>  MOV DX,0</b></p><p>  MOV AX,58750</p><p>&l

48、t;b>  DIV NUM</b></p><p>  MOV NUM,AX;轉(zhuǎn)換為計(jì)數(shù)初值</p><p>  MOV AL,00110110B;8254方式3BCD碼</p><p>  MOV DX,30CH</p><p><b>  OUT DX,AL</b></p><p

49、>  MOV DX,300H</p><p>  MOV AX,NUM</p><p><b>  OUT DX,AL</b></p><p><b>  MOV AL,AH</b></p><p><b>  OUT DX,AL</b></p><p

50、><b>  STI</b></p><p><b>  JMP AG1</b></p><p>  ;通過行掃描法,將鍵值存儲(chǔ)到al中 </p><p>  INPUT PROC</p><p>  PUSH DX</p><p>  PUSH

51、BX</p><p>  PUSH SI</p><p>  PUSH DI</p><p>  WT: MOVAL,00H ;00H為不顯示任何信息時(shí)對(duì)應(yīng)的七段代碼 </p><p>  MOVDX,PORT1 </p><p><b&

52、gt;  OUTDX,AL</b></p><p>  MOVAL,00000000B</p><p>  MOVDX,PORT2 </p><p>  OUTDX,AL ;使數(shù)碼管全滅,并使3根列線輸出全0</p><p><b>  NOP</b></p><

53、;p><b>  NOP </b></p><p>  MOV DX,PORT2</p><p>  IN AL,DX ;(粗掃描)若無鍵按下轉(zhuǎn)至WT執(zhí)行,否則順序執(zhí)行</p><p>  AND AL,0FH</p><p>  CMP AL,0FH

54、 </p><p>  JZ WT </p><p>  CALL DELAY </p><p>  MOVDX,PORT2 ;再次確認(rèn)是否有鍵按下</p><p><b>  INAL,DX</b></p><p>  AN

55、DAL,0FH</p><p>  CMP AL,0FH</p><p><b>  JZWT</b></p><p>  MOVCX,3 ;(細(xì)掃描)開始對(duì)每一列進(jìn)行逐列掃描 </p><p>  MOVBL,0FEH</p><p>  NEXT: MOV

56、 AL,BL;在橫線上添加一條語句</p><p>  MOVDX,PORT2</p><p><b>  OUTDX,AL</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><

57、b>  INAL,DX</b></p><p>  AND AL,0FH</p><p>  CMP AL,0FH</p><p>  JNZ KEY</p><p>  ROL BL,1 ;在橫線上添加一條語句</p><p>  LOOP NEXT <

58、/p><p>  JMP WT ;按鍵過早釋放,可能導(dǎo)致無法識(shí)別</p><p>  KEY: SHL BL,4 ;8088/8086指令集中該指令格式錯(cuò)誤!</p><p>  OR AL,BL ;字節(jié)鍵碼信息存入AL,高4位為列信息低4位為行信息</p><p>  LEA

59、 SI,KEYCOD</p><p>  LEA DI,KEYVAL </p><p>  MOV CX,12</p><p>  NEXT1: CMP AL,[SI]</p><p>  JZ FIND</p><p>  INC SI</p><p>

60、;  INC DI</p><p>  LOOP NEXT1 </p><p>  JMP WT ;本程序不支持多個(gè)按鍵同時(shí)按下</p><p>  FIND: MOV AL,[DI] ;AL中內(nèi)容為所按鍵的鍵面值</p><p><b>  PUSH AX</b>&

61、lt;/p><p>  MOV AL,00000000B</p><p>  MOVDX,PORT2 </p><p>  OUTDX,AL ;使數(shù)碼管全滅,并使3根列線輸出全0</p><p><b>  NOP</b></p><p><b>  NOP

62、 </b></p><p>  NEXT2: MOV DX,PORT2</p><p>  IN AL,DX ;(粗掃描)若無鍵按下轉(zhuǎn)至WT執(zhí)行,否則順序執(zhí)行</p><p>  AND AL,0FH</p><p>  CMP AL,0FH</p><p&g

63、t;  JNZ NEXT2</p><p><b>  POP AX</b></p><p>  CALL DELAY</p><p>  POP DI</p><p>  POP SI</p><p>  POP BX</p><p>  

64、POP DX</p><p><b>  RET </b></p><p>  INPUT ENDP</p><p><b>  ;中斷服務(wù)程序</b></p><p>  RUN PROC FAR</p><p><b>  PUSH AX</b

65、></p><p><b>  PUSH DX</b></p><p>  CMP FLAG,0</p><p><b>  JZ ZHZ</b></p><p>  ROL RNUM,1</p><p>  MOV AL,RNUM</p><p&

66、gt;  MOV DX,203H</p><p><b>  OUT DX,AL</b></p><p>  SUB STEP,1</p><p><b>  JMP END1</b></p><p>  ZHZ: ROR RNUM,1</p><p>  MOV AL,

67、RNUM</p><p>  MOV DX,203H</p><p><b>  OUT DX,AL</b></p><p>  ADD STEP,1</p><p><b>  END1: </b></p><p>  MOV CL,STEP</p>&l

68、t;p>  CMP STEP,0</p><p><b>  JGE W1</b></p><p><b>  NEG CL</b></p><p>  MOV AL,05H</p><p>  MOV DX,20AH</p><p><b>  OUT DX

69、,AL</b></p><p><b>  JMP W2</b></p><p>  W1: MOV AL,0AH</p><p>  MOV DX,20AH</p><p><b>  OUT DX,AL</b></p><p>  W2: CMP

70、CL,99</p><p><b>  JB END2</b></p><p>  MOV STEP,0 </p><p>  END2: MOV AL,CL</p><p>  MOV AH,00H</p><p><b>  DIV TEN</b></p>

71、;<p><b>  XLAT</b></p><p>  MOV DX,202H</p><p><b>  OUT DX,AL</b></p><p>  XCHG AH,AL</p><p><b>  XLAT </b></p><p&

72、gt;  MOV DX,206H</p><p><b>  OUT DX,AL</b></p><p>  MOV AL,20H</p><p>  MOV DX,3A0H </p><p>  OUT DX,AL </p><p><b>  POP DX</b>&

73、lt;/p><p><b>  POP AX</b></p><p><b>  IRET</b></p><p><b>  RUN ENDP </b></p><p>  DELAY PROC</p><p>  MOV CX,2000</p>

74、;<p><b>  LOOP $</b></p><p><b>  RET</b></p><p>  DELAY ENDP </p><p><b>  CODE ENDS</b></p><

75、p><b>  END BEG</b></p><p><b>  運(yùn)行調(diào)試</b></p><p>  在按要求連接完線后,運(yùn)行程序。</p><p>  鍵盤上最上面一排三個(gè)鍵為控制鍵,依次代表啟動(dòng)停止鍵,正轉(zhuǎn),反轉(zhuǎn)。從第二行開始橫著依次代表數(shù)字0—8。在測(cè)試的時(shí)候,按下起止鍵在開始和停止兩個(gè)狀態(tài)切換;按下正轉(zhuǎn)或

76、反轉(zhuǎn)后跟上三個(gè)數(shù)字鍵,該數(shù)字即為你需要運(yùn)行的速度。正常運(yùn)行前兩塊數(shù)碼管顯示速度信息,第三塊顯示步數(shù)信息,電機(jī)正常轉(zhuǎn)動(dòng)。</p><p><b>  總結(jié)</b></p><p>  這次課程設(shè)計(jì)完成的是一個(gè)步進(jìn)電機(jī)的旋轉(zhuǎn)實(shí)驗(yàn),主要涉及了數(shù)碼管顯示,按鍵識(shí)別,步進(jìn)電機(jī)控制等幾個(gè)部分,是對(duì)我們平時(shí)實(shí)驗(yàn)的一個(gè)綜合。在實(shí)驗(yàn)過程中我采用了分解的方法將實(shí)驗(yàn)分為了幾個(gè)部分,逐一實(shí)現(xiàn)

77、。按鍵部分主要是在按鍵識(shí)別與現(xiàn)實(shí)的基礎(chǔ)上進(jìn)行改寫,通過行掃描法來實(shí)現(xiàn)的。通過對(duì)程序的改寫我也溫習(xí)了一下以前學(xué)習(xí)的知識(shí),熟悉了掃描方法的編程。在改寫的過程到應(yīng)用的過程中我也遇到了一些麻煩,最后在老師的指導(dǎo)下我順利的解決了相關(guān)問題,通過這一點(diǎn)我也明白了解決問題時(shí)我們需要全面考慮,任何一個(gè)小的方面都可能影響到我們程序的運(yùn)行。在編寫其他功能時(shí),前面的實(shí)驗(yàn)對(duì)我也有很大的啟發(fā),我想這也在說明平時(shí)的實(shí)驗(yàn)認(rèn)真完成的重要性。應(yīng)該來說,通過這次試驗(yàn)我學(xué)到了

溫馨提示

  • 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)論