D
Das
Guest
Hej alle,
Jeg er at designe et stepper motor controller bruger 8051 microcontroller, min ckt ikke fungerer (stepper motor kører ikke), jeg bruger unipolar 6 wire stepper motor.I don vide, hvor problemet er.
Dette er min kode:
NAVN STEPPER_MOTOR
Brug 0; Register-Bank 0
; Udførelse starter på adresse 0 om magten op.
; JMP START
; Første sæt Stack Pointer
START: JMP OVERTAGELSESATTEST
; Kontinuert kontrollere, om en tast er trykket
Poll: MOV A, P3
CJNE A, # 0FFH, CHECK_P3
JMP Poll
; Find hvor nøglen er trykket og kalder ROTATE
CHECK_P3: RRC A
Jnc ROTATE
INC R1
JMP CHECK_P3
; Brugt at rotere Stepper Motor
Roter: CJNE R1, # 4H, NXT_LOGIC
CALL uret
JMP OVERTAGELSESATTEST
NXT_LOGIC: CJNE R1, # 5H, NXT_LOGIC_2
CALL ANTI_CLOCK
JMP OVERTAGELSESATTEST
NXT_LOGIC_2: CJNE R1, # 6H, NXT_LOGIC_3
CALL NEW_LOGIC
JMP OVERTAGELSESATTEST
NXT_LOGIC_3:; CJNE R1, # 7H, NXT_LOGIC_4
CALL NEW_LOGIC_ONE
JMP OVERTAGELSESATTEST
; NXT_LOGIC_4: CJNE R1, # 8H, NXT; MOTOR_SEL: CJNE R1, # 6H, OVERTAGELSESATTEST
; CALL SELECT_MOTOR
; JMP OVERTAGELSESATTEST
; Drej Stepper Motor urretningen
; Uret: MOV R1, # 32H
Uret: MOV R1, # 0FFH
GO_CLOCK: MOV P2, # 0CH
CALL DELAY
MOV P2, # 06H
CALL DELAY
MOV P2, # 03H
CALL DELAY
MOV P2, # 09H
CALL DELAY
DJNZ R1, GO_CLOCK
RET
ANTI_CLOCK: MOV R1, # 32H
; ANTI_CLOCK: MOV R1, # 0FFH
GO_ACLOCK: MOV P2, # 05H
CALL DELAY
MOV P2, # 0AH
CALL DELAY
; MOV P2, # 04H
; CALL DELAY
; MOV P2, # 02H
; CALL DELAY
DJNZ R1, GO_ACLOCK
RETNEW_LOGIC: MOV R1, # 0FFH
GO_NLOGIC: MOV P2, # 08H
CALL DELAY
MOV P2, # 04H
CALL DELAY
MOV P2, # 02H
CALL DELAY
MOV P2, # 01H
CALL DELAY
DJNZ R1, GO_NLOGIC
RET
NEW_LOGIC_ONE: MOV R1, # 0FFH
GO_NLOGIC_ONE: MOV P2, # 08H
CALL DELAY
MOV P2, # 0CH
CALL DELAY
MOV P2, # 04H
CALL DELAY
MOV P2, # 06H
CALL DELAY
MOV P2, # 02H
CALL DELAY
MOV P2, # 03H
CALL DELAY
MOV P2, # 01H
CALL DELAY
MOV P2, # 09H
CALL DELAY
DJNZ R1, GO_NLOGIC_ONE
RET
; SELECT_MOTOR: JB P3.6, AZIMUTH_MOTOR
; MOV R0, # 80H
; MOV @ R0, # 01H
; JMP OVERTAGELSESATTEST
; AZIMUTH_MOTOR: MOV R2, P2
; JMP OVERTAGELSESATTEST
; Initialiser Havne og vende tilbage til valgstederne mode
DEROVER: MOV R1, # 00H
MOV P2, # 00H
MOV P3, # 0FFH
; MOV R0, 01H
JMP Poll
; Det vil indsætte forsinkelse på 30ms
DELAY: MOV R5, # 1EH
; DELAY: MOV R5, # 0FFH
LOOP: MOV R4, # 0FAH
LEVEL2: NOP; ca NOP tage 2,0 microsecond
NOP
; NOP
; NOP
; NOP
DJNZ R4, LEVEL2
DJNZ R5, LOOP
RET
SLUT
hjælpe mig, Tak på forhånd
Das
Beklager, men du skal login for at se denne tilslutningskrav
Jeg er at designe et stepper motor controller bruger 8051 microcontroller, min ckt ikke fungerer (stepper motor kører ikke), jeg bruger unipolar 6 wire stepper motor.I don vide, hvor problemet er.
Dette er min kode:
NAVN STEPPER_MOTOR
Brug 0; Register-Bank 0
; Udførelse starter på adresse 0 om magten op.
; JMP START
; Første sæt Stack Pointer
START: JMP OVERTAGELSESATTEST
; Kontinuert kontrollere, om en tast er trykket
Poll: MOV A, P3
CJNE A, # 0FFH, CHECK_P3
JMP Poll
; Find hvor nøglen er trykket og kalder ROTATE
CHECK_P3: RRC A
Jnc ROTATE
INC R1
JMP CHECK_P3
; Brugt at rotere Stepper Motor
Roter: CJNE R1, # 4H, NXT_LOGIC
CALL uret
JMP OVERTAGELSESATTEST
NXT_LOGIC: CJNE R1, # 5H, NXT_LOGIC_2
CALL ANTI_CLOCK
JMP OVERTAGELSESATTEST
NXT_LOGIC_2: CJNE R1, # 6H, NXT_LOGIC_3
CALL NEW_LOGIC
JMP OVERTAGELSESATTEST
NXT_LOGIC_3:; CJNE R1, # 7H, NXT_LOGIC_4
CALL NEW_LOGIC_ONE
JMP OVERTAGELSESATTEST
; NXT_LOGIC_4: CJNE R1, # 8H, NXT; MOTOR_SEL: CJNE R1, # 6H, OVERTAGELSESATTEST
; CALL SELECT_MOTOR
; JMP OVERTAGELSESATTEST
; Drej Stepper Motor urretningen
; Uret: MOV R1, # 32H
Uret: MOV R1, # 0FFH
GO_CLOCK: MOV P2, # 0CH
CALL DELAY
MOV P2, # 06H
CALL DELAY
MOV P2, # 03H
CALL DELAY
MOV P2, # 09H
CALL DELAY
DJNZ R1, GO_CLOCK
RET
ANTI_CLOCK: MOV R1, # 32H
; ANTI_CLOCK: MOV R1, # 0FFH
GO_ACLOCK: MOV P2, # 05H
CALL DELAY
MOV P2, # 0AH
CALL DELAY
; MOV P2, # 04H
; CALL DELAY
; MOV P2, # 02H
; CALL DELAY
DJNZ R1, GO_ACLOCK
RETNEW_LOGIC: MOV R1, # 0FFH
GO_NLOGIC: MOV P2, # 08H
CALL DELAY
MOV P2, # 04H
CALL DELAY
MOV P2, # 02H
CALL DELAY
MOV P2, # 01H
CALL DELAY
DJNZ R1, GO_NLOGIC
RET
NEW_LOGIC_ONE: MOV R1, # 0FFH
GO_NLOGIC_ONE: MOV P2, # 08H
CALL DELAY
MOV P2, # 0CH
CALL DELAY
MOV P2, # 04H
CALL DELAY
MOV P2, # 06H
CALL DELAY
MOV P2, # 02H
CALL DELAY
MOV P2, # 03H
CALL DELAY
MOV P2, # 01H
CALL DELAY
MOV P2, # 09H
CALL DELAY
DJNZ R1, GO_NLOGIC_ONE
RET
; SELECT_MOTOR: JB P3.6, AZIMUTH_MOTOR
; MOV R0, # 80H
; MOV @ R0, # 01H
; JMP OVERTAGELSESATTEST
; AZIMUTH_MOTOR: MOV R2, P2
; JMP OVERTAGELSESATTEST
; Initialiser Havne og vende tilbage til valgstederne mode
DEROVER: MOV R1, # 00H
MOV P2, # 00H
MOV P3, # 0FFH
; MOV R0, 01H
JMP Poll
; Det vil indsætte forsinkelse på 30ms
DELAY: MOV R5, # 1EH
; DELAY: MOV R5, # 0FFH
LOOP: MOV R4, # 0FAH
LEVEL2: NOP; ca NOP tage 2,0 microsecond
NOP
; NOP
; NOP
; NOP
DJNZ R4, LEVEL2
DJNZ R5, LOOP
RET
SLUT
hjælpe mig, Tak på forhånd
Das
Beklager, men du skal login for at se denne tilslutningskrav