单片机步进电机的驱动程序

单片机 步进电机的驱动程序
动电压 12V  , 步进角为 7.5 度 . 一圈 360 度 , 需要 48 个脉冲完成 !!!
在这里介绍一下用 51 单片机 对这款步进电机的驱动方法 。
该步进电机有 6 根引线 , 排列次序如下: 1: 红色、 2: 红色、 3: 橙色、 4: 棕色、 5: 黄色、 6: 黑色 。
采用 51 驱动 ULN2003 的方法进行驱动 。
ULN2003 的驱动直接用 单片机 系统的 5V 电压 , 可能力矩不是很大 , 大家可自行加大驱动电压到 12V。
此主题相关图片如下:
 
;*********************************************************************
;**************************** 步进电机的驱动 ******************************
; DESIGN BY BENLADN911 FOSC = 12MHz
;---------------------------------------------------------------------------------
; 步进电机的驱动信号必须为 脉冲信号 !!! 转动的速度和脉冲的频率成正比 !!!
; 本步进电机步进角为 7.5 度 . 一圈 360 度 , 需要 48 个脉冲完成 !!!
;---------------------------------------------------------------------------------
; A 组线圈对应 P2.4
; B 组线圈对应 P2.5
; C 组线圈对应 P2.6
; D 组线圈对应 P2.7
; 正转次序 : AB 组 --BC 组 --CD 组 --DA 组 ( 即一个脉冲 , 正转 7.5 度 )
;----------------------------------------------------------------------------------
;---------------------------- 正转 --------------------------
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV R3,#144 ; 正转 3 圈共 144 脉冲
START:
MOV R0,#00H
START1:
【单片机步进电机的驱动程序】MOV P2,#00H
MOV A,R0
MOV DPTR,#TABLE
MOV C A,@A+DPTR
JZ START ; 对 A 的判断 , 当 A = 0 时则转到 START
MOV P2,A
LCALL DELAY
INC R0
DJNZ R3,START1
MOV P2,#00H
LCALL DELAY1
;----------------------------- 反转 ------------------------
MOV R3,#144 ; 反转一圈共 144 个脉冲
START2:
MOV P2,#00H
MOV R0,#05
START3:
MOV A,R0
MOV DPTR,#TABLE
MOV C 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

    推荐阅读