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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計 </b></p><p>  題目:單片機控制步進電機的設計</p><p>  姓名: </p><p>  專業: </p><p>  學號:

2、 </p><p>  2011年10月22日</p><p>  單片機控制步進電機的設計</p><p><b>  一、設計題目的背景</b></p><p><b>  1、步進電機的原理</b></p><p> 

3、 步進電動機又稱為脈沖電動機,是數字控制系統的一種執行元件,其功用是將脈沖信號變換為相應的角位移或直線位移,既給一個脈沖電信號,電動機就轉動一個角度或前進一步,根據結構和工作原理,步進電動機分為:永磁式、混合式、反應式。單片機在應用系統中應用較多是反應式步進電動機,反應式步進電動機具有步進頻率高、頻率 相應快等優點。</p><p>  步進電動機的控制原理是通過它每相線圈的電流的順序切換來使電機作步進式旋轉,驅

4、動電路由脈沖控制,所以調節脈沖的頻率便可改 變步進電機的轉速,微控制器最適合控制步進電機。</p><p>  此次設計步進電機共有四個相位(A、B、C、D),按轉動步驟分為單四拍(A 、 B 、 C 、 D 、 A)</p><p>  四相雙四拍:電機正轉 ( AB 、 BC 、 CD 、 DA 、AB)</p><p>  電機反轉

5、 ( DA、AB 、 BC 、 CD、 DA)</p><p>  單雙8拍(A、 AB、 B、 BC、 C、CD 、 D、DA、 A)</p><p><b>  2、應用領域</b></p><p>  目前,我國以較多地將步進電動機用于機械加工的數字程序控制機床中,在繪圖機、軋鋼機的自動控制,自動記錄儀表和數模變換等方面也得到很多應用。

6、</p><p><b>  二、設計原理</b></p><p><b>  1、設計目的</b></p><p> ?。?)了解步進電機的基本原理,掌握步進電機的轉動編程方法 </p><p> ?。?)了解影響電機轉速的因素有哪些</p><p><b>  

7、三、電路設計</b></p><p><b>  1、單片機的選型</b></p><p>  現在普遍的用的是80C31和80C51,80C51的EA加上高低電平,決定單片機訪問內部或外部的程序存儲器,EA高電平時,訪問內部程序存儲器,但當程序計數器(PC)值超過0FFH時單片機自動轉向外部程序存儲器。當EA為低電平時,不管單片機有無內部存儲器,只訪問外

8、部存儲器。80C31沒有內部存儲器,所以EA必須接地,這樣單片機只能選擇外部程序存儲器。所以80C51性能比較好。</p><p><b>  2、硬件電路圖</b></p><p><b>  四 軟件設計</b></p><p><b>  1、程序框圖</b></p><

9、;p><b>  2、完整的程序</b></p><p>  ;EXTRNCODE(INIT8279,SCAN_KEY,Display8)</p><p>  MAIN_CODESEGMENTCODE</p><p>  MAIN_BITSEGMENTBIT</p><p>  MAIN_DATA

10、SEGMENTDATA</p><p>  STACKSEGMENTIDATA</p><p>  ;PUBLICINIT8279,SCAN_KEY,Display8</p><p>  CMD_8279XDATA0bF01H</p><p>  DATA_8279XDATA0bF00H</p>

11、<p>  RSEGMAIN_DATA</p><p>  StepControl:DS1</p><p>  buffer:DS8</p><p>  SpeedNo: DS1</p><p>  StepDelay:DS1</p><p>  StartSte

12、pDelay:DS1</p><p>  StartStepDelay1:DS1</p><p>  RSEGMAIN_BIT</p><p>  bFirst:DBIT1</p><p>  bClockwise:DBIT1</p><p>  bNeedDisplay: DBIT

13、1</p><p>  RSEGSTACK</p><p><b>  DS20H</b></p><p>  CSEGAT0000H</p><p>  LJMPSTAR</p><p>  CSEGAT000BH</p><p>  LJMP

14、TIMER0</p><p>  RSEGMAIN_CODE</p><p>  STAR:MOVSP,#STACK-1</p><p>  ACALL INIT8279</p><p>  SETBbFirst</p><p>  SETB bClockwis

15、e</p><p>  MOVStepControl,#33H</p><p>  MOV SpeedNo,#5</p><p>  MOVTMOD,#02H</p><p>  MOVTH0,#55</p><p>  MOVTL0,#55</p><p&g

16、t;  MOVIE,#82H</p><p>  MOVBuffer+7,#0</p><p>  MOVbuffer+6,#0</p><p>  MOVbuffer+5,#0</p><p>  MOVbuffer+4,#0</p><p>  MOVbuffer+3,#10H</p&

17、gt;<p>  MOVbuffer+2,SpeedNo</p><p>  MOVbuffer+1,#10H</p><p>  MOVbuffer,#0</p><p>  STAR2:MOVR0,#buffer</p><p>  ACALLDisplay8</p><p>

18、  STAR3:ACALLScan_Key</p><p><b>  JCSTAR5</b></p><p>  JNBbNeedDisplay,STAR3</p><p>  CLRbNeedDisplay</p><p>  ACALLStep_SUB_1</p><p&

19、gt;  SJMPSTAR2</p><p>  STAR5:CLRTR0</p><p>  CJNEA,#10,$+3</p><p>  JNCSTAR1</p><p>  MOVbuffer+4,buffer+5</p><p>  MOVbuffer+5,buffer+6<

20、/p><p>  MOVbuffer+6,buffer+7</p><p>  MOVBuffer+7,A</p><p>  SJMPSTAR2</p><p>  STAR1:CJNEA,#14,$+3</p><p>  JNCSTAR3</p><p>  MOV

21、DPTR,#DriverTab</p><p><b>  CLRC</b></p><p>  SUBBA,#10</p><p><b>  RLA</b></p><p>  JMP@A+DPTR</p><p>  DriverTab:SJMPD

22、irection</p><p>  SJMPSpeed_up</p><p>  SJMPSpeed_Down</p><p>  SJMPExec</p><p>  Direction:CPLbClockwise</p><p>  JBbClockwise,Clockwise</p&

23、gt;<p>  MOVbuffer,#1</p><p>  AntiClockwise:JNBbFirst,AntiClockwise1</p><p>  MOVStepControl,#91H</p><p>  SJMPDirection1</p><p>  AntiClockwise1:MOVA

24、,StepControl</p><p><b>  RRA</b></p><p><b>  RRA</b></p><p>  MOVStepControl,A</p><p>  SJMPDirection1</p><p>  Clockwise:

25、MOVbuffer,#0</p><p>  JNBbFirst,Clockwise1</p><p>  MOVStepControl,#33H</p><p>  SJMPDirection1</p><p>  Clockwise1:MOVA,StepControl</p><p><

26、b>  RLA</b></p><p><b>  RLA</b></p><p>  MOVStepControl,A</p><p>  Direction1: SJMP STAR2</p><p>  Speed_up: MOV A

27、,SpeedNo</p><p>  CJNEA,#11,Speed_up1</p><p>  SJMPspeed_up2</p><p>  Speed_up1:INCSpeedNo</p><p>  MOVbuffer+2,SpeedNo</p><p>  Speed_up2:SJMP

28、STAR2</p><p>  Speed_Down:MOVA,SpeedNo</p><p>  JZSpeed_Down1</p><p>  DECSpeedNo</p><p>  MOVbuffer+2,SpeedNo</p><p>  Speed_Down1:SJMPSTAR

29、2</p><p>  Exec:CLRbFirst</p><p>  ACALLTakeStepCount</p><p>  MOVDPTR,#StepDelayTab</p><p>  MOVA,SpeedNo</p><p>  MOVCA,@A+DPTR</p>&

30、lt;p>  MOVStepDelay,A</p><p>  CJNEA,#50,$+3</p><p>  JNCExec1</p><p>  MOVA,#50</p><p>  Exec1:MOVStartStepDelay,A</p><p>  MOVStartStep

31、Delay1,A</p><p><b>  SETBTR0</b></p><p>  AJMPSTAR2</p><p>  StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21</p><p>  TIMER0:PUSHACC</p

32、><p>  DJNZStartStepDelay,TIMER0_1</p><p>  MOVA,StartStepDelay1</p><p>  CJNEA,StepDelay,TIMER0_5</p><p>  SJMPTIMER0_2</p><p>  TIMER0_5:DECA<

33、;/p><p>  MOVStartStepDelay1,A</p><p>  TIMER0_2:MOVStartStepDelay,A</p><p>  MOVA,StepControl</p><p><b>  CPLA</b></p><p><b>  MO

34、VP1,A</b></p><p><b>  CPLA</b></p><p>  JBbClockwise,TIMER0_3</p><p><b>  RRA</b></p><p>  SJMPTIMER0_4</p><p>  TI

35、MER0_3:RLA</p><p>  TIMER0_4:MOVStepControl,A</p><p><b>  MOVA,R6</b></p><p><b>  ORLA,R7</b></p><p>  JZTIMER0_1</p><p

36、>  SETBbNeedDisplay</p><p>  DJNZR7,TIMER0_1</p><p>  DJNZR6,TIMER0_1</p><p><b>  CLRTR0</b></p><p>  TIMER0_1:POPACC</p><p><

37、;b>  RETI</b></p><p>  Step_SUB_1:MOVR5,#4</p><p>  MOVR0,#buffer+7</p><p>  Step_SUB_1_1:MOVA,@R0</p><p><b>  DEC@R0</b></p><

38、;p>  JNZStep_SUB_1_2</p><p>  MOV@R0,#9</p><p><b>  DECR0</b></p><p>  DJNZR5,Step_SUB_1_1</p><p>  Step_SUB_1_2:RET</p><p>  TakeS

39、tepCount:MOVA,buffer+4</p><p>  MOVB,#10</p><p><b>  MULAB</b></p><p>  ADDA,buffer+5</p><p>  MOVB,#10</p><p><b>  MULAB<

40、;/b></p><p>  ADDA,buffer+6</p><p><b>  MOVR7,A</b></p><p><b>  MOVA,B</b></p><p>  ADDCA,#0</p><p>  MOVB,#10</p&g

41、t;<p><b>  MULAB</b></p><p><b>  XCHA,R7</b></p><p>  MOVB,#10</p><p><b>  MULAB</b></p><p><b>  XCHA,B</b

42、></p><p><b>  ADDA,R7</b></p><p><b>  XCHA,B</b></p><p>  ADDA,buffer+7</p><p><b>  MOVR7,A</b></p><p><b

43、>  MOVA,B</b></p><p>  ADDCA,#0</p><p><b>  MOVR6,A</b></p><p>  CJNER7,#0,TakeStepCount1</p><p><b>  RET</b></p><p&

44、gt;  TakeStepCount1:INCR6</p><p><b>  RET</b></p><p>  INIT8279: MOVA,#34H</p><p>  MOVX@DPTR,A</p><p><b>  CLRA</b></p>&

45、lt;p>  MOVDPTR,#CMD_8279</p><p>  MOVX@DPTR,A</p><p>  INIT8279_1: CALLCLEAR</p><p>  MOVA,#90H</p><p>  MOVX@DPTR,A</p><p><b>  RET

46、</b></p><p>  CLEAR:MOVA,#0DEH</p><p>  MOVDPTR,#CMD_8279</p><p>  MOVX@DPTR,A</p><p>  WAIT1: MOVXA,@DPTR</p><p>  JBACC.7,WAIT1<

47、;/p><p><b>  RET</b></p><p>  SCAN_KEY: MOVDPTR,#CMD_8279</p><p>  MOVXA,@DPTR</p><p>  READ_FIFO: ANLA,#7</p><p>  JZNO_KEY</p&g

48、t;<p>  READ: MOVA,#40H</p><p>  MOVX@DPTR,A</p><p>  MOVDPTR,#DATA_8279</p><p>  MOVXA,@DPTR</p><p>  ACALLKEY_NUM</p><p><b>  

49、SETBC</b></p><p>  SCAN_KEY1: RET</p><p>  NO_KEY: CLRC</p><p>  SJMPSCAN_KEY1</p><p>  KEY_NUM: ANLA,#3FH</p><p><b>  RET</

50、b></p><p>  WRITE_DATA:MOVDPTR,#DATA_8279</p><p>  MOVX@DPTR,A</p><p><b>  RET</b></p><p>  LED_TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H</p&g

51、t;<p>  DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH</p><p><b>  RET</b></p><p>  Display8:PUSH07H</p><p>  MOVDPTR,#LED_TAB</p><p>  MOVP2,#HIGH

52、(CMD_8279)</p><p>  MOVR1,#LOW(CMD_8279)</p><p>  MOVA,#90H</p><p>  MOVX@R1,A;第一位開始顯示</p><p>  MOVR1,#LOW(DATA_8279)</p><p><b>  MOVR7,#8<

53、/b></p><p>  Display81:MOVA,@R0</p><p>  MOVCA,@A+DPTR</p><p>  MOVX@R1,A</p><p><b>  INCR0</b></p><p>  DJNZR7,Display81</p>&

54、lt;p><b>  POP07H</b></p><p><b>  RET</b></p><p><b>  END</b></p><p><b>  五、結語</b></p><p>  利用G5區的鍵盤可以控制步進電機的正反轉,調節轉速

55、,連續轉動或轉動指定步數;相應的數據都會顯示在數碼管上。G5區的鍵盤A可以控制步進電機的正反轉,當數碼管的最高位為0為正轉,為1時是反轉。B、C可以調節轉速,C可將轉速往上調,B可將轉速往下調。</p><p>  本設計系統各種芯片選型都是市場上常用的芯片,價格便宜,資源開放。例如步進電機驅動電路由功率放大芯片ULN2003進行電流電壓的放大,最高耐壓50V,輸出可以在高負載電流并行運行;可以直接用單片機的IO

56、口提供信號;而且電路簡單,使用比較方便。</p><p>  此次設計從整體布局,系統設計直到最后完成,每個流程下來,都帶給我很多新的東西,再次用到Protel99se,使我對此軟件又加深了運用。我還學會了無底紋的截圖法,使截的圖更加的清晰。這次設計我從圖書館、上網查閱了相關的資料,使我對單片機有進一步的了解,對步進電機有一定的認識。</p><p>  此次設計的不足之處是有的芯片找的不

57、太合適,畫得有點亂,鍵盤顯示的程序不好用,</p><p>  讓我在以后的設計更加謹慎,盡量做的盡善盡美。</p><p><b>  六、參考文獻</b></p><p>  [1] 陳隆昌、 閻治安 、劉新正編著. 控制電機西安電子科技大學出版社,西安,2010 </p><p>  [2] 楊居義. 單片

58、機課程設計指導. 清華大學出版社,北.京,2009</p><p>  【3】 張小林、崔浩. 51系列單片機常用模塊設計查詢手冊.清華大學出版社,北京,2010</p><p>  【4】 張文灼 .單片機應用技術. 機械工業出版社, 北京,2009</p><p>  【5】 林春泉. 單片機原理及應用. 機械工業出版社,北京,2009</p>&

溫馨提示

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

評論

0/150

提交評論