步進電機驅動匯編程序及調試總結
;設計者小蘇 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最小系統(tǒng)
;調試結果:步進電機,速度參數40,正反轉正常;
;30以下速度加快,正轉正常反轉不動,原因不明,卡死丟步猜測為卡死;
;繼續(xù)加速,參數為5,正轉平穩(wěn),反轉跳動,懷疑丟步。
;繼續(xù)加速,電機震動,但正反轉都不動,改進方案尚無(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
評論