Estoy programando un PIC16F84A para un cajonero automatizado que se abra y cierre sólo,
nada más que tengo un problema, es_que no sé como hacer que el programa cuando este en 1 y cambie a 0,
haga una rutina para activar la otra pata del puente h, y así avance el motor al_revés.
Esto es lo que llevo del programa.
nada más que tengo un problema, es_que no sé como hacer que el programa cuando este en 1 y cambie a 0,
haga una rutina para activar la otra pata del puente h, y así avance el motor al_revés.
Esto es lo que llevo del programa.
Código:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;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
GOTO DEVOLVER
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
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
GOTO REVISION
END
Última edición por un moderador: