資源描述:
《片機驅動步進電機的方法詳解》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、51單片機驅動步進電機的方法默認分類2007-08-2709:06閱讀6456評論15字號:大大中中小小在這里介紹一下用51單片機驅動步進電機的方法。這款步進電機的驅動電壓12V,步進角為7.5度.一圈360度,需要48個脈沖完成!!!該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。采用51驅動ULN2003的方法進行驅動。ULN2003的驅動直接用單片機系統(tǒng)的5V電壓,可能力矩不是很大,大家可自行加大驅動電壓到12V。;***************
2、***************************************************************;*************************步進電機的驅動***************************************;DESIGNBYBENLADN911FOSC=12MHz2005.05.19;-----------------------------------------------------------------------------
3、----;步進電機的驅動信號必須為脈沖信號!!!轉動的速度和脈沖的頻率成正比!!!;本步進電機步進角為7.5度.一圈360度,需要48個脈沖完成!!!;---------------------------------------------------------------------------------;A組線圈對應P2.4;B組線圈對應P2.5;C組線圈對應P2.6;D組線圈對應P2.7;正轉次序:AB組--BC組--CD組--DA組(即一個脈沖,正轉7.5度);------------
4、----------------------------------------------------------------------;----------------------------正轉--------------------------ORG0000HLJMPMAINORG0100HMAIN:MOVR3,#144正轉3圈共144脈沖START:MOVR0,#00HSTART1:MOVP2,#00HMOVA,R0MOVDPTR,#TABLEMOVCA,@A+DPTRJZSTART對A
5、的判斷,當A=0時則轉到STARTMOVP2,ALCALLDELAYINCR0DJNZR3,START1MOVP2,#00HLCALLDELAY1;-----------------------------反轉------------------------MOVR3,#144反轉一圈共144個脈沖START2:MOVP2,#00HMOVR0,#05START3:MOVA,R0MOVDPTR,#TABLEMOVCA,@A+DPTRJZSTART2MOVP2,ACALLDELAYINCR0DJNZR3
6、,START3MOVP2,#00HLCALLDELAY1LJMPMAINDELAY:MOVR7,#40步進電機的轉速M3:MOVR6,#248DJNZR6,$DJNZR7,M3RETDELAY1:MOVR4,#202S延時子程序DEL2:MOVR3,#200DEL3:MOVR2,#250DJNZR2,$DJNZR3,DEL3DJNZR4,DEL2RETTABLE:DB30H,60H,0C0H,90H正轉表DB00正轉結束DB30H,90H,0C0H,60H反轉表DB00反轉結束END51單片機控制四
7、相步進電機拿到步進電機,根據(jù)以前看書對四相步進電機的了解,我對它進行了初步的測試,就是將5伏電源的正端接上最邊上兩根褐色的線,然后用5伏電源的地線分別和另外四根線(紅、蘭、白、橙)依次接觸,發(fā)現(xiàn)每接觸一下,步進電機便轉動一個角度,來回五次,電機剛好轉一圈,說明此步進電機的步進角度為360/(4×5)=18度。地線與四線接觸的順序相反,電機的轉向也相反。此步進電機,則只需分別依次給四線一定時間的脈沖電流,電機便可連續(xù)轉動起來。通過改變脈沖電流的時間間隔,就可以實現(xiàn)對轉速的控制;通過改變給四線脈沖電流的
8、順序,則可實現(xiàn)對轉向的控制。所以,設計了如下電路圖:C51程序代碼為:代碼一#includestaticunsignedintcount;staticunsignedintendcount;voiddelay();voidmain(void){count=0;P1_0=0;P1_1=0;P1_2=0;P1_3=0;EA=1;//允許CPU中斷TMOD=0x11;//設定時器0和1為16位模式1ET0=1;//定時器0中斷允許TH0=0xFC;TL