;-------------------------------------------------------------------------
;程序名称:步进电机由按键控制速度
;测试对象:XY-900_USB型综合学习开发板
;实验说明:步进角7.5度 . 一圈360度需要48个脉冲完成
;-------------------------------------------------------------------------
;P3.2---加速,P3.3---减速。按键可一直按着,可以缩短调节时间。
;加速到极限时(频率过高)将导致电机停止,此时应及时调到减速,避免对电机影响。
;速度您可更改程序中的参数尝试。
;-------------------------------------------------------------------------
Sped EQU 30H ;可调数定义于30H
ORG 00H
AJMP MAIN
ORG 30H
MAIN:MOV Sped,#55;初始参数(速度)
LOOP: MOV R3,#0FFH ;30h送ff即-1
JNB P3.2,WAIT
JNB P3.3,WAIT1
NEXT: INC R3
MOV A,R3
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A ;转
MOV R7,#10
DEC R7
ACALL delay ;延时
CJNE A,#03H,NEXT ;校对-如果是最后一个数据重新开始
LJMP LOOP ; 否则清除
RET
WAIT: DEC Sped ;减1-步进电机加速
LJMP NEXT
WAIT1:INC Sped ;加1-步进电机减速
LJMP NEXT
;------------------------------------------------------------
TAB: DB 06H,0CH,09H,03H ;步进电机正转表
;-------------------------延时程序---------------------------
;减少延时可加快转速,但改的太小就会更慢甚至停止
DELAY:
MOV R5,Sped ;Sped为通过两个按键调节的参数
D3:MOV R2,#200
D4: DJNZ R2,D4
DJNZ R5,D3
RET
END