Microcontroladores - Problemas con programacion de cajonero automatico.

   
Vista:

Problemas con programacion de cajonero automatico.

Publicado por jonathan (1 intervención) el 03/06/2013 02:31:47
Buenas tardes tengo como proyecto hacer el programa de un cajonero automatico pero no encuentro como hacer para que cuando la segunda entrada este en 1 haga la rutina que le puse y despues cuando pase a 0 se active otra rutina para que se retraigan pero cuando lo hago termina devolviendose el programa o con errores, lo que quiero que haga es que cuando pase de 1 a 0 haga la rutina de regreso de los cajoneros y que no se vuelva a activar hasta que no haya un 1 antes del 0, este es el programa que estoy haciendo.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Programa 2 entradas (motores) ;
; 4 salidas ;
; ;
;Segundo motor encender leds. ;
; ;
; ;
; ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

__CONFIG H'3FF9'

;configuracion de variables
STATUS equ 03h
TRISA equ 85h
TRISB equ 86h
PORTA equ 05h
PORTB equ 06h
CUENTA1 equ 10h
CUENTA2 equ 20h
CUENTA3 equ 30h
CUENTA4 equ 40h

;Configuracion del puerto A
BSF STATUS, 5
MOVLW 03h
MOVWF TRISA
BCF STATUS, 5

;Configuracion del puerto B
BSF STATUS,5
MOVLW 00h
MOVWF TRISB
BCF STATUS,5

;Inicio
INICIO BTFSC PORTA,0
CALL PARTE1
BTFSC PORTA,1
CALL PARTE2
SKPNC
GOTO DEVOLVER
GOTO REVISION

REVISION BTFSC PORTA,0
GOTO INICIO
GOTO REVISION

;;;;;SUBRUTINAS
;;;ENCENDIDO Y APAGADO DE MOTORES
;SWITCH 1
PARTE1 MOVLW b'01100'
MOVWF PORTA
CALL RETARDO
MOVLW b'00100'
MOVWF PORTA
RETURN
;SWITCH 2
PARTE2 MOVLW 01h ;INICIO PRIMER MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
MOVLW 02h ;INICIO SEGUNDO MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
CALL RETARDO
MOVLW 04h ;INICIO TERCER MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
CALL RETARDO2
MOVLW 08h ;INICIO CUARTO MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
SETC
CALL RETARDO3
RETURN

;;;RETARDOS
RETARDO DECFSZ CUENTA1,1
GOTO RETARDO
DECFSZ CUENTA2,1
GOTO RETARDO
RETURN

RETARDO2 DECFSZ CUENTA1,1
GOTO RETARDO2
DECFSZ CUENTA2,1
GOTO RETARDO2
DECFSZ CUENTA3,1
GOTO RETARDO2
RETURN

RETARDO3 DECFSZ CUENTA1,1
GOTO RETARDO3
DECFSZ CUENTA2,1
GOTO RETARDO3
DECFSZ CUENTA3,1
GOTO RETARDO3
DECFSZ CUENTA4,1
GOTO RETARDO3
RETURN

;;;REGRESAR CAJONES
DEVOLVER MOVLW 10h ;INICIO PRIMER MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
MOVLW 20h ;INICIO SEGUNDO MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
MOVLW 40h ;INICIO TERCER MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
MOVLW 80h ;INICIO CUARTO MOTOR
MOVWF PORTB
CALL RETARDO
MOVLW 00h
MOVWF PORTB
CLRC
GOTO REVISION

END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder