最近,在整理廢舊物品時,從過去換下的3寸和5寸軟驅(qū)上拆下幾個步進電機,想把它利用一下,就搞了個步進電機控制器。驅(qū)動效果還不錯,看看下一步能否應(yīng)用到我的機器人上。
首先介紹4線步進電機,它體積很小,只有4根引線,分別為紅、藍(lán)、黃、白。如圖示:

控制電路采用了4只8550(PNP)和4只8050(NPN)三極管,L1和L2分別為步進電機的兩個線圈,電路使用與單片機相同的電壓+5V供電,電路接好后通過插座J1連接到51單片機的PX口。

控制電路實物見下圖,該電路可以同時控制兩臺步進電機,電路輸出分別連接至51單片機的P0和P2口,使用三個按鈕開關(guān)分別接至51單片機的P1.0、P1.1和P1.2,分別控制步進電機的正轉(zhuǎn)、反轉(zhuǎn)和停止。

匯編測試程序如下:
ORG 00H
STOP:ORL P2,#0FFH
ORL P0,#0FFH
LOOP:JNB P1.0,FOR2
JNB P1.1,REV2
JNB P1.2,STOP1
SJMP LOOP
FOR:MOV R0,#00H
FOR1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ FOR
CPL A
MOV P2,A
MOV P0,A
JNB P1.2,STOP1
JNB P1.1,REV2
LCALL DELAY
INC R0
SJMP FOR1
REV:MOV R0,#05
REV1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ REV
CPL A
MOV P2,A
MOV P0,A
JNB P1.2,STOP1
JNB P1.0,FOR2
LCALL DELAY
INC R0
SJMP REV1
STOP1:LCALL DELAY
JNB P1.2,$
LCALL DELAY
SJMP STOP
FOR2:LCALL DELAY
JNB P1.0,$
LCALL DELAY
SJMP FOR
REV2:LCALL DELAY
JNB P1.1,$
LCALL DELAY
SJMP REV
DELAY:MOV R1,#40
D1:MOV R2,#248
DJNZ R2,$
DJNZ R1,D1
RET
TABLE:DB 00110011B,11000011B,11001100B,00111100B;正轉(zhuǎn)
DB 00
DB 00111100B,11001100B,11000011B,00110011B;反轉(zhuǎn)
DB 00
END