工程科技51單片機(jī)控制四相步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)資料_第1頁(yè)
工程科技51單片機(jī)控制四相步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)資料_第2頁(yè)
工程科技51單片機(jī)控制四相步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)資料_第3頁(yè)
工程科技51單片機(jī)控制四相步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)資料_第4頁(yè)
工程科技51單片機(jī)控制四相步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)資料_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、51單片機(jī)控制四相步進(jìn)電機(jī)接觸單片機(jī)快兩年了,不過(guò)只是非常業(yè)余的興趣,實(shí)踐卻不多,到現(xiàn)在還算是個(gè)初學(xué)者吧。這幾天給自己的任務(wù)就是搞定步進(jìn)電機(jī)的單片機(jī)控制。以前曾看過(guò)有關(guān)步進(jìn)電機(jī)原理和控制的資料,畢竟自己沒(méi)有做過(guò),對(duì)其具體原理還不是很清楚。今天從淘寶網(wǎng)買了一個(gè)EPSON的UMX-1型步進(jìn)電機(jī),此步進(jìn)電機(jī)為雙極性四相,接線共有六根,外形如下圖所示:拿到步進(jìn)電機(jī),根據(jù)以前看書對(duì)四相步進(jìn)電機(jī)的了解,我對(duì)它進(jìn)行了初步的測(cè)試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外四根線(紅、蘭、白、橙)依次接觸,發(fā)現(xiàn)每接觸一下,步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)一個(gè)角度,來(lái)回五次,電機(jī)剛好轉(zhuǎn)一圈,說(shuō)明此步

2、進(jìn)電機(jī)的步進(jìn)角度為360/(4×5)18度。地線與四線接觸的順序相反,電機(jī)的轉(zhuǎn)向也相反。如果用單片機(jī)來(lái)控制此步進(jìn)電機(jī),則只需分別依次給四線一定時(shí)間的脈沖電流,電機(jī)便可連續(xù)轉(zhuǎn)動(dòng)起來(lái)。通過(guò)改變脈沖電流的時(shí)間間隔,就可以實(shí)現(xiàn)對(duì)轉(zhuǎn)速的控制;通過(guò)改變給四線脈沖電流的順序,則可實(shí)現(xiàn)對(duì)轉(zhuǎn)向的控制。所以,設(shè)計(jì)了如下電路圖:制作的實(shí)物圖如下:C51程序代碼為:代碼一#include <AT89X51.h> static unsigned int count;static unsigned int endcount;void delay();void main(void)   co

3、unt = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0; EA = 1;              /允許CPU中斷   TMOD = 0x11;  /設(shè)定時(shí)器0和1為16位模式1   ET0 = 1;             /定

4、時(shí)器0中斷允許TH0 = 0xFC;   TL0 = 0x18;      /設(shè)定時(shí)每隔1ms中斷一次    TR0 = 1;           /開(kāi)始計(jì)數(shù)startrun:    P1_3 = 0;  P1_0 = 1;  delay();  P1_0 = 0;  P1_1 = 1;  delay();  P1_1 = 0; 

5、; P1_2 = 1;  delay();  P1_2 = 0;  P1_3 = 1;  delay();  goto startrun; /定時(shí)器0中斷處理void timeint(void) interrupt 1   TH0=0xFC;   TL0=0x18; /設(shè)定時(shí)每隔1ms中斷一次  count+;void delay()  endcount=2;  count=0;  dowhile(count<endcount);將上面的程序編譯,用ISP下載線下載至單片機(jī)運(yùn)行,

6、步進(jìn)電機(jī)便轉(zhuǎn)動(dòng)起來(lái)了,初步告捷!不過(guò),上面的程序還只是實(shí)現(xiàn)了步進(jìn)電機(jī)的初步控制,速度和方向的控制還不夠靈活,另外,由于沒(méi)有利用步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)電機(jī)的步進(jìn)角度為18度。所以,我將程序代碼改進(jìn)了一下,如下:代碼二#include <AT89X51.h> static unsigned int count;static int step_index;void delay(unsigned int endcount);void gorun(bit turn, unsigned int speedlevel);void main(void)   count =

7、 0;  step_index = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;  EA = 1;             /允許CPU中斷   TMOD = 0x11; /設(shè)定時(shí)器0和1為16位模式1   ET0 = 1;          

8、0; /定時(shí)器0中斷允許TH0 = 0xFE;   TL0 = 0x0C;  /設(shè)定時(shí)每隔0.5ms中斷一次    TR0 = 1;         /開(kāi)始計(jì)數(shù)  do    gorun(1,60);  while(1); /定時(shí)器0中斷處理void timeint(void) interrupt 1   TH0=0xFE;   TL0=0x0C; /設(shè)定時(shí)每隔0.5ms中斷一次  count+;

9、void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun(bit turn,unsigned int speedlevel)  switch(step_index)    case 0:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;  

10、0; break;  case 1:    P1_0 = 1;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 2:    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;  &#

11、160; break;  case 3:    P1_0 = 0;    P1_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;  

12、  break;  case 5:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6:    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1; 

13、0;  break;  case 7:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    delay(speedlevel);  if (turn=0)      step_index+;    if (step_index>7)      s

14、tep_index=0;    else      step_index-;    if (step_index<0)      step_index=7;      改進(jìn)的代碼能實(shí)現(xiàn)速度和方向的控制,而且,通過(guò)step_index靜態(tài)全局變量能“記住”步進(jìn)電機(jī)的步進(jìn)位置,下次調(diào)用 gorun()函數(shù)時(shí)則可直接從上次步進(jìn)位置繼續(xù)轉(zhuǎn)動(dòng),從而實(shí)現(xiàn)精確步進(jìn);另外,由于利用了步進(jìn)電機(jī)內(nèi)線圈之間的“中間狀態(tài)”,步進(jìn)角度減

15、小了一半,只為9度,低速運(yùn)轉(zhuǎn)也相對(duì)穩(wěn)定一些了。但是,在代碼二中,步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制是在主函數(shù)中,如果程序還需執(zhí)行其它任務(wù),則有可能使步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)收到影響,另外還有其它方面的不便,總之不是很完美的控制。所以我又將代碼再次改進(jìn):代碼三#include <AT89X51.h> static unsigned int count;  /計(jì)數(shù)static int step_index;  /步進(jìn)索引數(shù),值為07static bit turn;  /步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向static bit stop_flag;  /步進(jìn)電機(jī)停止標(biāo)志static int s

16、peedlevel; /步進(jìn)電機(jī)轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快static int spcount;    /步進(jìn)電機(jī)轉(zhuǎn)速參數(shù)計(jì)數(shù)void delay(unsigned int endcount); /延時(shí)函數(shù),延時(shí)為endcount*0.5毫秒void gorun();          /步進(jìn)電機(jī)控制步進(jìn)函數(shù)void main(void)   count = 0;  step_index = 0;  spcount

17、 = 0;  stop_flag = 0;P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;EA = 1;             /允許CPU中斷   TMOD = 0x11; /設(shè)定時(shí)器0和1為16位模式1   ET0 = 1;           /定時(shí)器0中斷允許TH0 = 0

18、xFE;  TL0 = 0x0C;   /設(shè)定時(shí)每隔0.5ms中斷一次  TR0 = 1;         /開(kāi)始計(jì)數(shù) turn = 0;speedlevel = 2;  delay(10000);  speedlevel = 1;  do    speedlevel = 2;    delay(10000);    speedlevel = 1;

19、    delay(10000);    stop_flag=1;    delay(10000);    stop_flag=0;  while(1); /定時(shí)器0中斷處理 void timeint(void) interrupt 1   TH0=0xFE;  TL0=0x0C; /設(shè)定時(shí)每隔0.5ms中斷一次  count+;  spcount-;  if(spcount<=0)   &

20、#160;  spcount = speedlevel;    gorun();  void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun()  if (stop_flag=1)      P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 =

21、 0;    return;    switch(step_index)    case 0: /0    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;    break;  case 1: /0、1    P1_0 = 1;    P1_1 = 1;

22、60;   P1_2 = 0;    P1_3 = 0;    break;  case 2: /1    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 3: /1、2    P1_0 = 0;    P1

23、_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:  /2    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;    break;  case 5: /2、3    P1_0 = 0; 

24、;   P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6: /3    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    break;  case 7: /3、0    P1_0

25、 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    if (turn=0)      step_index+;    if (step_index>7)      step_index=0;    else      step_index-; 

26、60;  if (step_index<0)      step_index=7;      在代碼三中,我將步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制放在時(shí)間中斷函數(shù)之中,這樣主函數(shù)就能很方便的加入其它任務(wù)的執(zhí)行,而對(duì)步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)不產(chǎn)生影響。在此代碼中,不但實(shí)現(xiàn)了步進(jìn)電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向的控制,另外還加了一個(gè)停止的功能,呵呵,這肯定是需要的。步進(jìn)電機(jī)從靜止到高速轉(zhuǎn)動(dòng)需要一個(gè)加速的過(guò)程,否則電機(jī)很容易被“卡住”,代碼一、二實(shí)現(xiàn)加速不是很方便,而在代碼三中,加速則很容易了。在此代碼中,當(dāng)轉(zhuǎn)速參數(shù)speedlevel

27、為2時(shí),可以算出,此時(shí)步進(jìn)電機(jī)的轉(zhuǎn)速為1500RPM,而當(dāng)轉(zhuǎn)速參數(shù)speedlevel 1時(shí),轉(zhuǎn)速為3000RPM。當(dāng)步進(jìn)電機(jī)停止,如果直接將speedlevel 設(shè)為1,此時(shí)步進(jìn)電機(jī)將被“卡住”,而如果先把speedlevel 設(shè)為2,讓電機(jī)以1500RPM的轉(zhuǎn)速轉(zhuǎn)起來(lái),幾秒種后,再把speedlevel 設(shè)為1,此時(shí)電機(jī)就能以3000RPM的轉(zhuǎn)速高速轉(zhuǎn)動(dòng),這就是“加速”的效果。在此電路中,考慮到電流的緣故,我用的NPN三極管是S8050,它的電流最大可達(dá)1500mA,而在實(shí)際運(yùn)轉(zhuǎn)中,我用萬(wàn)用表測(cè)了一下,當(dāng)轉(zhuǎn)速為1500RPM時(shí),步進(jìn)電機(jī)的電流只有90mA左右,電機(jī)發(fā)熱量較小,當(dāng)轉(zhuǎn)速為60R

28、PM時(shí),步進(jìn)電機(jī)的電流為200mA左右,電機(jī)發(fā)熱量較大,所以NPN三極管也可以選用9013,對(duì)于電機(jī)發(fā)熱量大的問(wèn)題,可加一個(gè)10歐到20歐的限流電阻,不過(guò)這樣步進(jìn)電機(jī)的功率將會(huì)變小。51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)電路及程序在這里介紹一下用51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)的方法。 這款步進(jìn)電機(jī)的驅(qū)動(dòng)電壓12V,步進(jìn)角為 7.5度 . 一圈 360 度 , 需要 48 個(gè)脈沖完成!  該步進(jìn)電機(jī)有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。采用51驅(qū)動(dòng)ULN2003的方法進(jìn)行驅(qū)動(dòng)。 ULN2003的驅(qū)動(dòng)直接用單片機(jī)系統(tǒng)的5V電壓,可能力矩不是很大

29、,大家可自行加大驅(qū)動(dòng)電壓到12V。  *;*步進(jìn)電機(jī)的驅(qū)動(dòng)*; DESIGN BY BENLADN911    FOSC = 12MHz    2005.05.19;-; 步進(jìn)電機(jī)的驅(qū)動(dòng)信號(hào)必須為脈沖信號(hào)! 轉(zhuǎn)動(dòng)的速度和脈沖的頻率成正比!; 本步進(jìn)電機(jī)步進(jìn)角為 7.5度 . 一圈 360 度 , 需要 48 個(gè)脈沖完成!;-; A組線圈對(duì)應(yīng) P2.4; B組線圈對(duì)應(yīng) P2.5; C組線圈對(duì)應(yīng) P2.6; D組線圈對(duì)應(yīng) P2.7; 正轉(zhuǎn)次序: AB組-BC組-CD組-DA組 (即一個(gè)脈沖,正轉(zhuǎn) 7.5 度);-;-正轉(zhuǎn)- OR

30、G 0000H LJMP MAINORG 0100HMAIN:MOV R3,#144   正轉(zhuǎn) 3 圈共 144 脈沖START:MOV R0,#00HSTART1:MOV P2,#00HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START   對(duì) A 的判斷,當(dāng) A = 0 時(shí)則轉(zhuǎn)到 STARTMOV P2,ALCALL DELAYINC R0DJNZ R3,START1MOV P2,#00HLCALL DELAY1;-反轉(zhuǎn)-MOV R3,#144    反轉(zhuǎn)一圈共 144 個(gè)脈沖STA

31、RT2:MOV P2,#00HMOV R0,#05START3:MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START2MOV P2,ACALL DELAYINC R0DJNZ R3,START3MOV P2,#00HLCALL DELAY1LJMP MAINDELAY: MOV R7,#40 步進(jìn)電機(jī)的轉(zhuǎn)速M(fèi)3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3 RETDELAY1: MOV   R4,#20    2S 延時(shí)子程序DEL2: MOV  

32、 R3,#200DEL3: MOV   R2,#250            DJNZ  R2,$            DJNZ  R3,DEL3            DJNZ 

33、; R4,DEL2            RETTABLE:DB 30H,60H,0C0H,90H  正轉(zhuǎn)表DB 00  正轉(zhuǎn)結(jié)束DB 30H,90H,0C0H,60H  反轉(zhuǎn)表DB 00  反轉(zhuǎn)結(jié)束END主題: 單片機(jī)控制步進(jìn)電機(jī)驅(qū)動(dòng)器工作原理 步進(jìn)電機(jī)在控制系統(tǒng)中具有廣泛的應(yīng)用。它可以把脈沖信號(hào)轉(zhuǎn)換成角位移,并且可用作電磁制動(dòng)輪、電磁差分器、或角位移發(fā)生器等。有時(shí)從一些舊設(shè)備上拆下的步進(jìn)電機(jī)(這種電機(jī)一般沒(méi)有損壞)要改作它用,一般需

34、自己設(shè)計(jì)驅(qū)動(dòng)器。本文介紹的就是為從一日本產(chǎn)舊式打印機(jī)上拆下的步進(jìn)電機(jī)而設(shè)計(jì)的驅(qū)動(dòng)器。    本文先介紹該步進(jìn)電機(jī)的工作原理,然后介紹了其驅(qū)動(dòng)器的軟、硬件設(shè)計(jì)。 1. 步進(jìn)電機(jī)的工作原理    該步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。只要對(duì)步進(jìn)電機(jī)的各相繞組按合適的時(shí)序通電,就能使步進(jìn)電機(jī)步進(jìn)轉(zhuǎn)動(dòng)。圖1是該四相反應(yīng)式步進(jìn)電機(jī)工作原理示意圖  圖1 四相步進(jìn)電機(jī)步進(jìn)示意圖    開(kāi)始時(shí),開(kāi)關(guān)SB接通電源,SA、SC、SD斷開(kāi),B相磁極和轉(zhuǎn)子0、3號(hào)齒對(duì)齊,同時(shí),轉(zhuǎn)子的1、4號(hào)齒就和C、D

35、相繞組磁極產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和D、A相繞組磁極產(chǎn)生錯(cuò)齒。    當(dāng)開(kāi)關(guān)SC接通電源,SB、SA、SD斷開(kāi)時(shí),由于C相繞組的磁力線和1、4號(hào)齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動(dòng),1、4號(hào)齒和C相繞組的磁極對(duì)齊。而0、3號(hào)齒和A、B相繞組產(chǎn)生錯(cuò)齒,2、5號(hào)齒就和A、D相繞組磁極產(chǎn)生錯(cuò)齒。依次類推,A、B、C、D四相繞組輪流供電,則轉(zhuǎn)子會(huì)沿著A、B、C、D方向轉(zhuǎn)動(dòng)。    四相步進(jìn)電機(jī)按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,

36、八拍工作方式既可以保持較高的轉(zhuǎn)動(dòng)力矩又可以提高控制精度。    單四拍、雙四拍與八拍工作方式的電源通電時(shí)序與波形分別如圖2.a、b、c所示:  a. 單四拍                                 

37、;                     b. 雙四拍                             

38、60;          c八拍圖2.步進(jìn)電機(jī)工作時(shí)序波形圖2.基于AT89C2051的步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理如圖3:  圖3 步進(jìn)電機(jī)驅(qū)動(dòng)器系統(tǒng)電路原理圖    AT89C2051將控制脈沖從P1口的P1.4P1.7輸出,經(jīng)74LS14反相后進(jìn)入9014,經(jīng)9014放大后控制光電開(kāi)關(guān),光電隔離后,由功率管TIP122將脈沖信號(hào)進(jìn)行電壓和電流放大,驅(qū)動(dòng)步進(jìn)電機(jī)的各相繞組。使步進(jìn)電機(jī)隨著不同的脈沖信號(hào)分別作正轉(zhuǎn)、反轉(zhuǎn)、加速、減速和停止等動(dòng)

39、作。圖中L1為步進(jìn)電機(jī)的一相繞組。AT89C2051選用頻率22MHz的晶振,選用較高晶振的目的是為了在方式2下盡量減小AT89C2051對(duì)上位機(jī)脈沖信號(hào)周期的影響。    圖3中的RL1RL4為繞組內(nèi)阻,50電阻是一外接電阻,起限流作用,也是一個(gè)改善回路時(shí)間常數(shù)的元件。D1D4為續(xù)流二極管,使電機(jī)繞組產(chǎn)生的反電動(dòng)勢(shì)通過(guò)續(xù)流二極管(D1D4)而衰減掉,從而保護(hù)了功率管TIP122不受損壞。    在50外接電阻上并聯(lián)一個(gè)200F電容,可以改善注入步進(jìn)電機(jī)繞組的電流脈沖前沿,提高了步進(jìn)電機(jī)的高頻性能。與續(xù)流二極管串聯(lián)的200電阻可減小回

40、路的放電時(shí)間常數(shù),使繞組中電流脈沖的后沿變陡,電流下降時(shí)間變小,也起到提高高頻工作性能的作用。3.軟件設(shè)計(jì)該驅(qū)動(dòng)器根據(jù)撥碼開(kāi)關(guān)KX、KY的不同組合有三種工作方式供選擇:方式1為中斷方式:P3.5(INT1)為步進(jìn)脈沖輸入端,P3.7為正反轉(zhuǎn)脈沖輸入端。上位機(jī)(PC機(jī)或單片機(jī))與驅(qū)動(dòng)器僅以2條線相連。方式2為串行通訊方式:上位機(jī)(PC機(jī)或單片機(jī))將控制命令發(fā)送給驅(qū)動(dòng)器,驅(qū)動(dòng)器根據(jù)控制命令自行完成有關(guān)控制過(guò)程。方式3為撥碼開(kāi)關(guān)控制方式:通過(guò)K1K5的不同組合,直接控制步進(jìn)電機(jī)。當(dāng)上電或按下復(fù)位鍵KR后,AT89C2051先檢測(cè)撥碼開(kāi)關(guān)KX、KY的狀態(tài),根據(jù)KX、KY 的不同組合,進(jìn)入不同的工作方式

41、。以下給出方式1的程序流程框圖與源程序。在程序的編制中,要特別注意步進(jìn)電機(jī)在換向時(shí)的處理。為使步進(jìn)電機(jī)在換向時(shí)能平滑過(guò)渡,不至于產(chǎn)生錯(cuò)步,應(yīng)在每一步中設(shè)置標(biāo)志位。其中20H單元的各位為步進(jìn)電機(jī)正轉(zhuǎn)標(biāo)志位;21H單元各位為反轉(zhuǎn)標(biāo)志位。在正轉(zhuǎn)時(shí),不僅給正轉(zhuǎn)標(biāo)志位賦值,也同時(shí)給反轉(zhuǎn)標(biāo)志位賦值;在反轉(zhuǎn)時(shí)也如此。這樣,當(dāng)步進(jìn)電機(jī)換向時(shí),就可以上一次的位置作為起點(diǎn)反向運(yùn)動(dòng),避免了電機(jī)換向時(shí)產(chǎn)生錯(cuò)步。 圖4 方式1程序框圖方式1源程序:   MOV        20H,#00H   &#

42、160;          ;20H單元置初值,電機(jī)正轉(zhuǎn)位置指針  MOV         21H,#00H              ;21H單元置初值,電機(jī)反轉(zhuǎn)位置指針  MOV        

43、P1,#0C0H              ;P1口置初值,防止電機(jī)上電短路  MOV         TMOD,#60H           ;T1計(jì)數(shù)器置初值,開(kāi)中斷  MOV       

44、60; TL1,#0FFH  MOV         TH1,#0FFH  SETB        ET1  SETB        EA  SETB        TR1  SJMP      &#

45、160; $;*計(jì)數(shù)器1中斷程序*IT1P:       JB          P3.7,FAN              ;電機(jī)正、反轉(zhuǎn)指針;*電機(jī)正轉(zhuǎn)*            JB  

46、        00H,LOOP0            JB          01H,LOOP1            JB       

47、0;  02H,LOOP2            JB          03H,LOOP3            JB          04H,LOOP4  

48、0;         JB          05H,LOOP5            JB          06H,LOOP6        &#

49、160;   JB          07H,LOOP7LOOP0:      MOV         P1,#0D0H            MOV         2

50、0H,#02H            MOV         21H,#40H            AJMP        QUITLOOP1:      MOV &#

51、160;       P1,#090H            MOV         20H,#04H            MOV         21H,#

52、20H            AJMP        QUITLOOP2:      MOV         P1,#0B0H            MOV  

53、       20H,#08H            MOV         21H,#10H            AJMP        QUITLOOP3:

54、0;     MOV         P1,#030H            MOV         20H,#10H            MOV  

55、0;      21H,#08H            AJMP        QUITLOOP4:      MOV         P1,#070H       &#

56、160;    MOV         20H,#20H            MOV         21H,#04H            AJMP   &

57、#160;    QUITLOOP5:      MOV         P1,#060H            MOV         20H,#40H        

58、    MOV         21H,#02H            AJMP        QUITLOOP6:      MOV         P1,#0E0H 

59、           MOV         20H,#80H            MOV         21H,#01H        

60、0;   AJMP        QUITLOOP7:      MOV         P1,#0C0H            MOV         20H,#01H 

61、0;          MOV         21H,#80H            AJMP        QUIT;*電機(jī)反轉(zhuǎn)*FAN:        JB 

62、60;        08H,LOOQ0            JB          09H,LOOQ1            JB       &

63、#160;  0AH,LOOQ2            JB          0BH,LOOQ3            JB          0CH,LOOQ4  &

64、#160;         JB          0DH,LOOQ5            JB          0EH,LOOQ6        

65、;    JB          0FH,LOOQ7LOOQ0:      MOV         P1,#0A0H            MOV        

66、; 21H,#02H            MOV         20H,#40H            AJMP        QUITLOOQ1:      MOV 

67、;        P1,#0E0H            MOV         21H,#04H            MOV         20

68、H,#20H            AJMP        QUITLOOQ2:      MOV         P1,#0C0H            MOV 

69、60;       21H,#08H            MOV         20H,#10H            AJMP        QUITLOOQ3:&

70、#160;     MOV         P1,#0D0H            MOV         21H,#10H            MOV  &

71、#160;      20H,#08H            AJMP        QUITLOOQ4:      MOV         P1,#050H       

72、;     MOV         21H,#20H            MOV         20H,#04H            AJMP  

73、0;     QUITLOOQ5:      MOV         P1,#070H            MOV         21H,#40H       

74、60;    MOV         20H,#02H            AJMP        QUITLOOQ6:      MOV         P1,#030H

75、60;           MOV         21H,#80H            MOV         20H,#01H        &

76、#160;   AJMP        QUITLOOQ7:      MOV         P1,#0B0H            MOV         21H,#01H &

77、#160;          MOV         20H,#80HQUIT:       RETI            END4.結(jié)論    該驅(qū)動(dòng)器經(jīng)實(shí)驗(yàn)驗(yàn)證能驅(qū)動(dòng)0.5N.m的步進(jìn)電機(jī)。將驅(qū)動(dòng)部分的電阻、電容及續(xù)流二極管

78、的有關(guān)參數(shù)加以調(diào)整,可驅(qū)動(dòng)1.2N.m的步進(jìn)電機(jī)。該驅(qū)動(dòng)器電路簡(jiǎn)單可靠,結(jié)構(gòu)緊湊,對(duì)于I/O口線與單片機(jī)資源緊張的系統(tǒng)來(lái)說(shuō)特別適用。步進(jìn)電機(jī)的選用計(jì)算方法步進(jìn)電機(jī)是一種能將數(shù)字輸入脈沖轉(zhuǎn)換成旋轉(zhuǎn)或直線增量運(yùn)動(dòng)的電磁執(zhí)行元件。每輸入一個(gè)脈沖電機(jī)轉(zhuǎn)軸步進(jìn)一個(gè)步距角增量 步進(jìn)電機(jī)是一種能將數(shù)字輸入脈沖轉(zhuǎn)換成旋轉(zhuǎn)或直線增量運(yùn)動(dòng)的電磁執(zhí)行元件。每輸入一個(gè)脈沖電機(jī)轉(zhuǎn)軸步進(jìn)一個(gè)步距角增量。電機(jī)總的回轉(zhuǎn)角與輸入脈沖數(shù)成正比例,相應(yīng)的轉(zhuǎn)速取決于輸入脈沖頻率。 步進(jìn)電機(jī)是機(jī)電一體化產(chǎn)品中關(guān)鍵部件之一,通常被用作定位控制和定速控制。步進(jìn)電機(jī)慣量低、定位精度高、無(wú)累積誤差、控制簡(jiǎn)單等特點(diǎn)。廣泛應(yīng)用于機(jī)電一體化產(chǎn)品中,

79、如:數(shù)控機(jī)床、包裝機(jī)械、計(jì)算機(jī)外圍設(shè)備、復(fù)印機(jī)、傳真機(jī)等。 選擇步進(jìn)電機(jī)時(shí),首先要保證步進(jìn)電機(jī)的輸出功率大于負(fù)載所需的功率。而在選用功率步進(jìn)電機(jī)時(shí),首先要計(jì)算機(jī)械系統(tǒng)的負(fù)載轉(zhuǎn)矩,電機(jī)的矩頻特性能滿足機(jī)械負(fù)載并有一定的余量保證其運(yùn)行可靠。在實(shí)際工作過(guò)程中,各種頻率下的負(fù)載力矩必須在矩頻特性曲線的范圍內(nèi)。一般地說(shuō)最大靜力矩Mjmax大的電機(jī),負(fù)載力矩大。 選擇步進(jìn)電機(jī)時(shí),應(yīng)使步距角和機(jī)械系統(tǒng)匹配,這樣可以得到機(jī)床所需的脈沖當(dāng)量。在機(jī)械傳動(dòng)過(guò)程中為了使得有更小的脈沖當(dāng)量,一是可以改變絲桿的導(dǎo)程,二是可以通過(guò)步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)來(lái)完成。但細(xì)分只能改變其分辨率,不改變其精度。精度是由電機(jī)的固有特性所決定。

80、 選擇功率步進(jìn)電機(jī)時(shí),應(yīng)當(dāng)估算機(jī)械負(fù)載的負(fù)載慣量和機(jī)床要求的啟動(dòng)頻率,使之與步進(jìn)電機(jī)的慣性頻率特性相匹配還有一定的余量,使之最高速連續(xù)工作頻率能滿足機(jī)床快速移動(dòng)的需要。 選擇步進(jìn)電機(jī)需要進(jìn)行以下計(jì)算: (1)計(jì)算齒輪的減速比 根據(jù)所要求脈沖當(dāng)量,齒輪減速比i計(jì)算如下: i=(.S)/(360.) (1-1) 式中 -步進(jìn)電機(jī)的步距角(o/脈沖) S -絲桿螺距(mm) -(mm/脈沖) (2)計(jì)算工作臺(tái),絲桿以及齒輪折算至電機(jī)軸上的慣量Jt。 Jt=J1+(1/i2)(J2+Js)+W/g(S/2)2 (1-2) 式中Jt -折算至電機(jī)軸上的慣量(Kg.cm.s2) J1、J2 -齒輪慣量(K

81、g.cm.s2) Js -絲桿慣量(Kg.cm.s2) W-工作臺(tái)重量(N) S -絲桿螺距(cm) (3)計(jì)算電機(jī)輸出的總力矩M M=Ma+Mf+Mt (1-3) Ma=(Jm+Jt).n/T×1.02×102 (1-4) 式中Ma -電機(jī)啟動(dòng)加速力矩(N.m) Jm、Jt-電機(jī)自身慣量與負(fù)載慣量(Kg.cm.s2) n-電機(jī)所需達(dá)到的轉(zhuǎn)速(r/min) T-電機(jī)升速時(shí)間(s) Mf=(u.W.s)/(2i)×102 (1-5) Mf-導(dǎo)軌摩擦折算至電機(jī)的轉(zhuǎn)矩(N.m) u-摩擦系數(shù) -傳遞效率 Mt=(Pt.s)/(2i)×102 (1-6) Mt-

82、切削力折算至電機(jī)力矩(N.m) Pt-最大切削力(N) (4)負(fù)載起動(dòng)頻率估算。數(shù)控系統(tǒng)控制電機(jī)的啟動(dòng)頻率與負(fù)載轉(zhuǎn)矩和慣量有很大關(guān)系,其估算公式為 fq=fq0(1-(Mf+Mt)/Ml)÷(1+Jt/Jm) 1/2 (1-7) 式中fq-帶載起動(dòng)頻率(Hz) fq0-空載起動(dòng)頻率 Ml-起動(dòng)頻率下由矩頻特性決定的電機(jī)輸出力矩(N.m) 若負(fù)載參數(shù)無(wú)法精確確定,則可按fq=1/2fq0進(jìn)行估算. (5)運(yùn)行的最高頻率與升速時(shí)間的計(jì)算。由于電機(jī)的輸出力矩隨著頻率的升高而下降,因此在最高頻率 時(shí),由矩頻特性的輸出力矩應(yīng)能驅(qū)動(dòng)負(fù)載,并留有足夠的余量。 (6)負(fù)載力矩和最大靜力矩Mmax。負(fù)

83、載力矩可按式(1-5)和式(1-6)計(jì)算,電機(jī)在最大進(jìn)給速度時(shí),由矩頻特性決定的電機(jī)輸出力矩要大于Mf與Mt之和,并留有余量。一般來(lái)說(shuō),Mf與Mt之和應(yīng)小于(0.2 0.4)Mmax.基于單片機(jī)的步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)設(shè)計(jì)Research on the Driver and Control System of the Step Motor摘要: 本文研究開(kāi)發(fā)了一種步進(jìn)電機(jī)驅(qū)動(dòng)器及其控制系統(tǒng)。該系統(tǒng)以PC機(jī)作為上位機(jī),以單片機(jī)作為下位機(jī),可使上位機(jī)能夠可靠地將經(jīng)過(guò)處理的控制指令和參數(shù)發(fā)送到下位機(jī),保證下位機(jī)能夠準(zhǔn)確、及時(shí)地發(fā)出控制信號(hào),通過(guò)驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)工作。同時(shí),上位機(jī)檢測(cè)下位機(jī)的各種狀態(tài)信

84、號(hào),進(jìn)行診斷和處理。關(guān)鍵字: 步進(jìn)電機(jī);控制系統(tǒng);驅(qū)動(dòng)器;通信電路Abstract: A high performance control system of stepping motor has been developed. The system adopts the PC as master computer and the single-chip as slave computer. Control instructions and parameter have been delivered from the master computer to slave computer depe

85、ndently and smoothly in order to guarantee the work that can be accurately and promptly done. Besides, the host computer collects various kinds of state signal that the slave computer feedbacks to diagnose and manipulate. Keywords: Step Motor; Control System; Driver; Communication Circuit1 引言步進(jìn)電機(jī)又稱脈

86、沖電動(dòng)機(jī),是數(shù)字控制的一種執(zhí)行元件。它是隨著計(jì)算機(jī)控制系統(tǒng)發(fā)展而發(fā)展起來(lái),利用電脈沖信號(hào)進(jìn)行控制,將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或者線位移的電動(dòng)機(jī)。對(duì)于步進(jìn)電機(jī)控制系統(tǒng),運(yùn)動(dòng)控制器就像是它的中樞神經(jīng)系統(tǒng),指揮著它的每個(gè)動(dòng)作。本文以步進(jìn)電機(jī)為控制對(duì)象,繼承傳統(tǒng)步進(jìn)電機(jī)控制的優(yōu)點(diǎn),研制高性能步進(jìn)電機(jī)驅(qū)動(dòng)器及控制系統(tǒng)。2 系統(tǒng)總體設(shè)計(jì) 圖1 控制器總體結(jié)構(gòu)圖步進(jìn)電機(jī)控制器是步進(jìn)電機(jī)控制系統(tǒng)重要部分,控制器接收上位機(jī)發(fā)送的指令,并根據(jù)指令向各步進(jìn)電機(jī)發(fā)出控制信號(hào),各個(gè)電機(jī)的驅(qū)動(dòng)器則將控制信號(hào)轉(zhuǎn)變成直接驅(qū)動(dòng)步進(jìn)電機(jī)的電信號(hào),實(shí)現(xiàn)步進(jìn)電機(jī)的控制。采用PC機(jī)的控制系統(tǒng),其軟硬件資源豐富,柔性極強(qiáng)。

87、圖1為控制器總體結(jié)構(gòu)圖。單片機(jī)的種類是很多的,有PIC系列、Motorola系列、Intel系列8051類單片機(jī)等。各個(gè)系列的單片機(jī)各有所長(zhǎng),在處理速度、穩(wěn)定性、I/O能力、功耗、功能齊全、價(jià)格等方面各有優(yōu)劣。這些種類繁多的單片機(jī)家族,給我們單片機(jī)的選擇提供了很大的余地。Intel公司生產(chǎn)的51系列單片機(jī)具有功能強(qiáng)大、價(jià)格低廉、體積小、開(kāi)發(fā)工具易操作等特點(diǎn),在市場(chǎng)中占有很大的份額,是一種比較通用且經(jīng)濟(jì)實(shí)惠的產(chǎn)品。因而本系統(tǒng)中選用了40管腳的51單片機(jī)ATMEL89C51作為主控芯片。3 硬件詳細(xì)設(shè)計(jì)3.1 通信電路設(shè)計(jì)通過(guò)EPP并行口可以簡(jiǎn)單方便地設(shè)計(jì)出各種接口應(yīng)用電路,其設(shè)計(jì)方法與總線方式更為接近,由于它所用的信號(hào)線十分有限,必須把數(shù)據(jù)的傳送分為兩個(gè)周期。EPP口的數(shù)據(jù)與地址分時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論