Está en la página 1de 4

;------------------RUTINA PRINCIPAL

INICIO: MOVFF ADELANTE,LATA MOVF PORTA,W CPFSEQ CERO GOTO SALTO MOVFF ADELANTE,LATA GOTO INICIO

SALTO: MOVFF ALTO,LATA CALL RETARDO ;MOVFF DERECHA,LATE ;CALL RETARDO ;MOVFF IZQUIERDA,LATE ;CALL RETARDO ;MOVFF ALTO,LATE ;CALL RETARDO MOVFF ATRAS,LATA CALL RETARDO MOVFF DERECHA,LATA CALL RETARDO CALL RETARDO MOVFF ADELANTE,LATA ;CALL RETARDO

;CALL RETARDO GOTO SALTO2

SALTO2: MOVFF ADELANTE,LATA MOVF PORTA,W CPFSEQ UNO GOTO SALTO2 MOVFF ALTO,LATA CALL RETARDO MOVFF ATRAS,LATA CALL RETARDO MOVFF IZQUIERDA,LATA CALL RETARDO CALL RETARDO CALL RETARDO GOTO INICIO

;------------------SUBRUTINAS

CONFIG_PTOS: MOVLW 0X0F

;Configuracion de puertos

MOVWF ADCON1 MOVLW 0X07 MOVWF CMCON

MOVLW 0X00 MOVWF TRISB MOVLW 0X0F MOVWF TRISA ;MOVLW 0X0F ;MOVWF TRISC RETURN

RETARDO: MOVLW MOVWF DELAY_EXT2 MOVLW MOVWF DELAY_EXT MOVLW MOVWF 0XFF 0XFF 0X2F

;Retardo ;Carga 0xFA -> W

DVAR3 ;Mueve el valor que tiene W -> F(DVAR3) ;Retardo Exterior 2 ;Carga 0xFF -> W

DVAR2 ;Mueve el valor que tiene W -> F(DVAR2) ;Retardo Exterior ;Carga 0xFF -> W

DVAR1 ;Mueve el valor que tiene W -> F(DVAR1)

DELAY_INT DECFSZ DVAR1,1 GOTO DELAY_INT DECFSZ DVAR2,1 GOTO DELAY_EXT DECFSZ DVAR3,1 GOTO DELAY_EXT2

;Retardo Interior ;Decrementa F(DVAR1) y salta si es cero ;Regresa a Retardo Interior ;Decrementa F(DVAR2) y salta si es cero ;Regresa a Retardo Exterior ;Decrementa F(DVAR3) y salta si es cero ;Regresa a Retardo Exterior 2

RETURN

;Regresa a la rutina principal

*** main code goes here ***

;****************************************************************************** ;End of program

END

También podría gustarte