background image

MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START2
MOV P2,A
CALL DELAY
INC R0
DJNZ R3,START3
MOV P2,#00H
LCALL DELAY1
LJMP MAIN
DELAY: MOV R7,#40 步进电机的转速
M3: MOV R6,#248
DJNZ R6,$
DJNZ R7,M3
RET
DELAY1:              MOV     R4,#20      2S 延时子程序
DEL2:                MOV     R3,#200
DEL3:                MOV     R2,#250
                     DJNZ    R2,$
                     DJNZ    R3,DEL3
                     DJNZ    R4,DEL2
                     RET
TABLE:
DB 30H,60H,0C0H,90H    正转表
DB 00    正转结束
DB 30H,90H,0C0H,60H    反转表
DB 00    反转结束
END
        51 单片机控制四相步进电机
 
拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是
将 5 伏电源的正端接上最边上两根褐色的线,然后用 5 伏电源的地线分别和另外四根线
(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电
机刚好转一圈,说明此步进电机的步进角度为 360/(4×5)=18 度。地线与四线接触的顺序
相反,电机的转向也相反。

此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起

来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流
的顺序,则可实现对转向的控制。所以,设计了如下电路图:

C51 程序代码为:
代码一
#include <AT89X51.h> 
static unsigned int count;