Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/02/08 19:42
Read: times


 
#148937 - 8052 help w/ my code please
Hi everyone,

let me begin by saying that I am new to assembly programming and this web site.

I have been trying to get the following program to work but I can't. I'm sure it is something simple for you .asm gurus.

The problem i have seems to be in the STEPW... procedures. It is supposed to move a step motor 180 degrees then wait x amount of time and repeat depending on the state of the swicthes connected to Port 0, but it doesn't. The constant move seems to work ok.

...$INCLUDE(p8052X2.PDF)

SWITCH1     EQU P0.3    ;SWITCH 1 INPUT
SWITCH2     EQU P0.4    ;SWITCH 2 INPUT
MODE        EQU P0.5    ;MODE SWITCH INPUT
DIROUT      EQU P2.7    ;DIRECTION OUT TO l297
STEPOUT     EQU P1.4    ;STEP OUT TO LM297
ENABLE      EQU P1.1    ;ENABLE TO LM297

XTAL        EQU 9600*2
TENMS       EQU -24576

MAIN:       JNB MODE,CONT100RPM ; JUMP IF MODE IS CONT

STEPW50:    JNB SWITCH1,STEPW100
            JNB SWITCH2,STEPW100
            LJMP STEPLOOP ;CODE HERE TO STEP
            CALL DELAY
            SJMP MAIN

STEPW100:   JB SWITCH2,STEPW150
            JNB SWITCH1,STEPW150
            lJMP STEPLOOP ;CODE HERE TO STEP
            CALL DELAY
            CALL DELAY
            ljmp MAIN

STEPW150:  JNB SWITCH1,STEPW200
            JB SWITCH2,STEPW200
            ljmp STEPLOOP ;CODE HERE TO STEP
            CALL DELAY
            CALL DELAY
            CALL DELAY
            ljmp MAIN

STEPW200:
            ljmp STEPLOOP
            CALL DELAY
            CALL DELAY
            CALL DELAY
            CALL DELAY
            ljmp MAIN

CONT100RPM:  ;667 1/2 steps/sec
            JNB SWITCH1,CONT150RPM
            JNB SWITCH2,CONT150RPM
            setb STEPOUT ; TURN ON STEP OUTPUT PIN
            CALL STEPON       ; LEAVE PIN ON 1uSEC
            clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
                               ; NEED TO LEAVE PULS OFF FOR .001499 SEC
C100LOOP:   MOV R5,#07H        ; OUTER LOOP SET TO 7 TIMES
            MOV R6,#00H        ; INNER LOOP SET TO 256
C100LOOP4:  DJNZ R6,C100LOOP4  ; LOOP 256 TIMES
            DJNZ R5,C100LOOP4  ; LOOP 7 TIMES
            ljmp MAIN


CONT150RPM:  ;1000 1/2 steps/sec
            JB SWITCH2,CONT200RPM
            JNB SWITCH1,CONT200RPM
            setb STEPOUT ; TURN ON STEP OUTPUT PIN
            CALL STEPON       ; LEAVE PIN ON 1uSEC
            clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
                               ; NEED TO LEAVE PULS OFF FOR .000999 SEC
C150LOOP:   MOV R5,#04H        ; OUTER LOOP SET TO 4 TIMES
            MOV R6,#00H        ; INNER LOOP SET TO 256
C150LOOP4:  DJNZ R6,C150LOOP4  ; LOOP 256 TIMES
            DJNZ R5,C150LOOP4  ; LOOP 4 TIMES
            ljmp MAIN

CONT200RPM:   ;1334 1/2 steps/sec
            JNB SWITCH1,CONT250RPM
            JB SWITCH2,CONT250RPM
            setb STEPOUT ; TURN ON STEP OUTPUT PIN
            CALL STEPON       ; LEAVE PIN ON 1uSEC
            clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
                               ; NEED TO LEAVE PULS OFF FOR .000749 SEC
C200LOOP:   MOV R5,#03H        ; OUTER LOOP SET TO 3 TIMES
            MOV R6,#00H        ; INNER LOOP SET TO 256
C200LOOP4:  DJNZ R6,C200LOOP4  ; LOOP 256 TIMES
            DJNZ R5,C200LOOP4  ; LOOP 3 TIMES
            ljmp MAIN

CONT250RPM:   ;1667 1/2 steps/sec
            setb STEPOUT ; TURN ON STEP OUTPUT PIN
            CALL STEPON       ; LEAVE PIN ON 1uSEC
            clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
                               ; NEED TO LEAVE PULS OFF FOR .000599 SEC
C250LOOP:   MOV R5,#02H        ; OUTER LOOP SET TO 2 TIMES
            MOV R6,#00H        ; INNER LOOP SET TO 256
C250LOOP4:  DJNZ R6,C250LOOP4  ; LOOP 256 TIMES
            DJNZ R5,C250LOOP4  ; LOOP 2 TIMES
            ljmp MAIN

;***************************************
STEPLOOP:    MOV R1,#200         ;LOOP COUNTER SET TO 200 TIMES
STEPLOOPER:  setb STEPOUT ; TURN ON STEP OUTPUT PIN
             CALL STEPON       ; LEAVE PIN ON 1uSEC
             clr STEPOUT  ; TURN OFF STEP OUTPUT PIN
             CALL STEPOFF
             DJNZ R1,STEPLOOPER
;***************************************
;***************************************
; .5 SEC DELAY ROUTINE
DELAY:      MOV R7,#0AH  ;OUTER LOOP COUNTER SET TO 10 TIMES
            MOV R5,#236  ;INNER LOOP COUNT SET TO 236 TIMES
LOOP2:      MOV R6,#00H  ;MIDDLE LOOP SET TO 256 TIMES
LOOP1:      DJNZ R5,LOOP1;LOOP 256 TIMES
            DJNZ R6,LOOP1;LOOP 236 TIMES
            DJNZ R7,LOOP2;LOOP 10 TIMES
            RET          ;RETURN PROGRAM
;***************************************
;***************************************
;         1 uSEC DELAY WHILE STEP PUSE OUTPUTTED
STEPON:     MOV R5,#02H ;LOOP SET TO 2 TIMES
LOOP3:      DJNZ R5,LOOP3;LOOP 2 TIMES
            RET
;***************************************
;***************************************
;          TIME OFF BETWEEN EACH STEP PULSE

STEPOFF:   MOV R5,#04H     ; OUTER LOOP SET TO 4 TIMES
            MOV R6,#00H     ; INNER LOOP SET TO 256
LOOP4:      DJNZ R6,LOOP4   ; LOOP 256 TIMES
            DJNZ R5,LOOP4   ; LOOP 4 TIMES
            RET
;***************************************


end

...



any help or suggestions are welcome

Thank you,
Steve

List of 28 messages in thread
TopicAuthorDate
8052 help w/ my code please            01/01/70 00:00      
   How to program a stepper driver            01/01/70 00:00      
   Delay            01/01/70 00:00      
   this makes absolutely no sense            01/01/70 00:00      
      tried commenting delay            01/01/70 00:00      
         no offense, but THINK            01/01/70 00:00      
            ah            01/01/70 00:00      
               yes            01/01/70 00:00      
   What is oscillator speed?            01/01/70 00:00      
      osc speed            01/01/70 00:00      
         MEGAHENRY?            01/01/70 00:00      
            oops            01/01/70 00:00      
   Try this            01/01/70 00:00      
      Not the cure            01/01/70 00:00      
         SWITCHES            01/01/70 00:00      
      Was that YOUR simulator, Jon? :-)            01/01/70 00:00      
         Pinnacle52            01/01/70 00:00      
   Found it            01/01/70 00:00      
      Almost there            01/01/70 00:00      
         any LEDs?            01/01/70 00:00      
            no led's            01/01/70 00:00      
               then use the scope as a LED... :-)            01/01/70 00:00      
                  but not THIS nonsense!            01/01/70 00:00      
                  good idea            01/01/70 00:00      
                     Try it now.            01/01/70 00:00      
                        I think, Steve meant, he will try to use the scope            01/01/70 00:00      
                           Oh..OK            01/01/70 00:00      
                              It works            01/01/70 00:00      

Back to Subject List