Please help me!! - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Please help me!!

Attached is my pogram below. I need someone to complete my 2 missing routines for me.











org 0000h



jmp MAIN



org 0100h



MAIN: CALL ROLLSTOP



mov p3,#11111111b





START: jb p3.0,FORWARD ;PIN 3.0 IS ON - forward



jnb p3.0,REVERSE ;PIN 3.0 IS OFF - reverse



jmp start



FORWARD: MOV A,#98 ;WAIT 1sec TO START RUNNING



CALL WAITS



CALL INITFORWARD ;SET MOTOR IN FORWARD MOTION



CALL WAITS



CALL FORWARDSHAFT



CALL ROLLSTOP



jmp start ; ---clockwise





;SET MOTOR IN REVERSE MOTION



REVERSE: MOV A,#98 ;WAIT 1sec TO START RUNNING





CALL WAITS



CALL INITREV



CALL WAITS



CALL REVERSESHAFT



CALL ROLLSTOP



jmp start ; ---counterclockwise



WAITS: MOV R2, A ;FULL WAITS (SHORT) IS APPR.1.62 sec



WAIT2: DJNZ R0,WAIT2



MOV R0, #00000011B



DJNZ R1, WAIT2



RET



PAUSE: MOV A, #49 ;PAUSE 1/2sec AFTER MOVING



CALL WAITS



RET



;SET FORWARD MOTION

INITFORWARD: ;The unipolar stepper motor begins in motion ( Phase 1)

MOV P1,#00000001B ;1



CALL PAUSE



MOV P1,#00000010B ;2



CALL PAUSE



MOV P1,#00000100B ;4



CALL PAUSE



MOV P1,#00001000B ;8



CALL PAUSE





RET



;SET REVERSE MOTION

INITREV: ;The unip. step. motor begins its backw. motion ( Phase 2)

MOV P1,#00001000B ;8



CALL PAUSE



MOV P1,#00000100B ;4



CALL PAUSE



MOV P1,#00000010B ;2



CALL PAUSE



MOV P1,#00000001B ;1



CALL PAUSE



RET











FORWARDSHAFT: ;Turn shaft in certain positions during FORWARD movement



MOV P1,#00010001B ;Turn it 45 degrees.



CALL WAITS



MOV P1,#10000010B ;Turn it 90 degrees.



CALL WAITS



MOV P1,#00001001B ;Turn it 180 degrees.



CALL WAITS



MOV P1,#01000010B ;Turn it 270 degrees.



WAITS



RET



REVERSESHAFT: ;Turn shaft in certain positions during REVERSE movement



MOV P1,#01000010B ;Turn it -270 degrees



CALL WAITS



MOV P1,#00001001B ;Turn it -180 degrees



CALL WAITS



MOV P1,#10000010B ;Turn it -90 degrees



CALL WAITS



MOV P1,#00010001B ;Turn it -45 degrees



CALL WAITS



RET











FASTROUTINE: ;Maximum speed to the UNIPOLAR STEPPER





SLOWROUTINE: ;Minimum speed to the UNIPOLAR STEPPER









ROLLSTOP: MOV P1,#00000000B ;TURN OFF MOTOR

RET

END














Comments

  • What kind of processor is this? And why do you wait before and after you drive forward or backward? I suggest you design the loop a bit differently so that your robot can respond to user input immediately. Or is it ram-less?


  • It is ram-less. its an 8051uC. Please write me a new code if possible.




Sign In or Register to comment.