;*************步进电机驱动*****************
;设计者小苏 FOSC=12MHz 2013.11.05
;------------------------------------------------
; 步进角为7.5度 一圈360度,需要48个脉冲完成
;A组线圈 P2.4
;B组线圈 P2.5
;C组线圈 P2.6
;D组线圈 P2.7
;正传次序:AB组-BC组-CD组-DA组(即一个脉冲,正转7.5度)
;--------------------------------------------
;调试平台i51最小系统
;调试结果:步进电机,速度参数40,正反转正常;
;30以下速度加快,正转正常反转不动,原因不明,卡死丢步猜测为卡死;
;继续加速,参数为5,正转平稳,反转跳动,怀疑丢步。
;继续加速,电机震动,但正反转都不动,改进方案尚无(R6=248,R7为修改量)
;--------------------------------------------
;总结:对步进电机运行、驱动原理还不够理解、
;任务,尽快学习,并写出c程序,加入速度,正反转,停机控制
;--------------------------------------------
;---------正转-----------
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV R3,#255 ;正转3圈 共114脉冲
START: MOV R0,#00H
START1:MOV P2,#00H
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START ;当A=0时转到START(一个脉冲,正转7.5度)
MOV P2,A
LCALL DELAY
INC R0
DJNZ R3,START1
MOV P2,00H
LCALL DELAY1
;----------------反转-------------------------
MOV R3,#255 ;正转3圈 共114脉冲
START2:MOV P2,#00H
MOV R0,#05H
START3:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START2 ;当A=0时转到START(一个脉冲,反转7.5度)
MOV P2,A
CALL DELAY
INC R0
DJNZ R3,START3
MOV P2,00H
LCALL DELAY1
LJMP MAIN
DELAY: MOV R7,#10 ;步进电机的转速
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