Control de Portón con PIC16F84A

el programa que estoy trabajando lo simule en proteus y me funciona solo en un sentido no se como hacer que funcione en el otro sentido les dejo el avance del programa

Código:
LIST       P=16F84A
    INCLUDE  <P16F84A.INC>

#DEFINE    EntradaMarcha   PORTA,0
#DEFINE    Entradacerrar   PORTA,4
#DEFINE    sensormarcha    PORTA,1
#DEFINE    sensorcerrar    PORTA,2

;---------------------- ZONA DE CÓDIGOS -------------------------------------------------

    ORG     0

;---------------------CONFIGURACION DE PUERTOS------------------------------------------
inicio
    bsf      STATUS,RP0                  ; cambio de banco 0 a banco 1
    bsf      EntradaMarcha                 ; Configura las líneas de entrada.
    bsf      Entradacerrar               ; configura  linea de bajar porton
    bsf     sensormarcha                ; final de carrera de abrir
    bsf     sensorcerrar                ; final de carrera de cerrar
    clrf    PORTB                        ; Las líneas del Puerto B configuradas como salida.
    bcf        STATUS,RP0                  ;cambio de banco 1 a banc
abrirporton
    clrw                                ; Con esta combinación se detiene el motor.
     btfsc    EntradaMarcha                ; Comprueba el estado del interruptor de funcionamiento.
    goto    abrir_porton
    movlw    b'00010110'                ; Gira en un sentido.
    btfsc   sensormarcha
    goto    detieneabrir
    movlw    b'00000000'                    ; detiene motor
    
abrir_porton
    movwf   PORTB
detieneabrir
    movwf   PORTB

    end
 
Última edición por un moderador:
el programa que estoy trabajando lo simule en proteus y me funciona solo en un sentido no se como hacer que funcione en el otro sentido
Saludos wilson espejo.
Con el código que adjuntas, poco se puede hacer, pero también lo puedes mejorar.

Te adjunto un ejemplo simple de como cambiar el giro del motor con el L293
y el paro del motor con los sensores de fin de carrera.

Las comparaciones de seguridad y etc. Ya te corresponde hacerlas.

PD. Olvidaste adjuntar la simulación en ISIS, pero aquí adjunto la que hice.

Suerte.
 

Adjuntos

  • 16F84A_L293D.rar
    19.1 KB · Visitas: 69
de antemano muchas gracias por el aporte que me dieron pero tengo otra duda respecto al presente programa.
puse en practica el circuito todo bien pero lo que quiero es que cuando presione el pulsador marche el motor y al soltar el mismo el motor siga funcionando con el presente programa los pulsadores trabajan como interruptores por favor si me pueden ayudar de como hacerlo de antemano muchas gracias .
por cierto esto de los pics muy interesante
 
de antemano muchas gracias por el aporte que me dieron pero tengo otra duda respecto al presente programa.
puse en practica el circuito todo bien pero lo que quiero es que cuando presione el pulsador marche el motor y al soltar el mismo el motor siga funcionando con el presente programa los pulsadores trabajan como interruptores por favor si me pueden ayudar de como hacerlo de antemano muchas gracias .
por cierto esto de los pics muy interesante

Para eso se usan dos sensores fin de carrera, uno cuando el porton esta abierto, y otro cuando esta completamente cerrado.

Partiendo del portón cerrado, uno apreta el boton y el porton comienza a moverse, el motor solo se va a detener cuando llega al final del recorrido (porton completamente abierto).
 
Atrás
Arriba