专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

步进电机驱动汇编程序及调试总结

作者:佚名   来源:本站原创   点击数:  更新时间:2013年11月05日   【字体:
;*************步进电机驱动*****************

 
;设计者小苏   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
关闭窗口

相关文章