发表于:2006/4/4 0:25:00
#0楼
哪位高手可以帮忙解决一下问题.我的编程思想主要是,控制步进电机做一变速运动.我的程序如下:ORG 0000H ;
LJMP MAIN ;
ORG 0100H ;
MAIN:MOV R3,#40 ; 步进电机步数送R3,电机为1.5度240,0.75度480
X1: MOV 0110H,#0DH
MOV 0120H,#0FAH
START1: ACALL DELAY
MOV P1,#08H ;A
ACALL DELAY
MOV P1,#0CH ;AB
ACALL DELAY
MOV P1,#04H ;B
ACALL DELAY
MOV P1,#06H ;BC
ACALL DELAY
MOV P1,#02H ;C
ACALL DELAY
MOV P1,#03H ;CD
ACALL DELAY
MOV P1,#01H ;D
ACALL DELAY
MOV P1,#09H ;DA
ACALL DELAY
DJNZ R3,START1 ; 判断代码是否取完,如果没有取完,就跳到START1
MOV R3,#40
MOV A,0120H ;轴每转完1转延时应减少的时间,即轴转速增加的值。
SUBB A,#32H
MOV 0120H,A
AJMP START1
DELAY: MOV R1,0110H ; 延时
D1:MOV R2,0120H ;
DJNZ R2,$ ;
DJNZ R1,D1 ;
RET
END
有哪位高手给指点一下啊.我的程序在运行时总是有点问题.应该怎么改啊?
LJMP MAIN ;
ORG 0100H ;
MAIN:MOV R3,#40 ; 步进电机步数送R3,电机为1.5度240,0.75度480
X1: MOV 0110H,#0DH
MOV 0120H,#0FAH
START1: ACALL DELAY
MOV P1,#08H ;A
ACALL DELAY
MOV P1,#0CH ;AB
ACALL DELAY
MOV P1,#04H ;B
ACALL DELAY
MOV P1,#06H ;BC
ACALL DELAY
MOV P1,#02H ;C
ACALL DELAY
MOV P1,#03H ;CD
ACALL DELAY
MOV P1,#01H ;D
ACALL DELAY
MOV P1,#09H ;DA
ACALL DELAY
DJNZ R3,START1 ; 判断代码是否取完,如果没有取完,就跳到START1
MOV R3,#40
MOV A,0120H ;轴每转完1转延时应减少的时间,即轴转速增加的值。
SUBB A,#32H
MOV 0120H,A
AJMP START1
DELAY: MOV R1,0110H ; 延时
D1:MOV R2,0120H ;
DJNZ R2,$ ;
DJNZ R1,D1 ;
RET
END
有哪位高手给指点一下啊.我的程序在运行时总是有点问题.应该怎么改啊?