单片机

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

2018-01-12 来源:eefocus

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

动电压 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


相关文章