Hola a todos compañeros.
Estoy diseñando un programa (en lenguaje ensamblador) para un pic16f88, que tenga en una salida PWM variable (variando un potenciómetro) y otras 6 salidas secuenciales.
Como entrada para el PWM tengo el RA0, y como entradas secuenciales tengo RA1 RA2 RA3 y RA4.
Al inicio todas las entradas menos la del PWM estan a nivel alto "1" y cuando alguna cambia a nivel bajo "0" cambia la salida, por ejemplo:
Cuando RA1 es 0, se activa unicamente RB1
Cuando RA2 es 0, se activa unicamente RB2
Cuando RA3 es 0, se activa unicamente RB3
Cuando RA4 es 0, se activa unicamente RB4
Cuando RA1 y RA2 son 0, se activa unicamente RB5
Cuando RA3 y RA4 son 0, se activa unicamente RB6
Hasta aquí todo funciona perfectamente.
Ahora quiero hacer que, cuando se active a la vez RA1 y RA2 quede en nivel alto "1" la salida RB5, hasta que se vuelvan activar a la vez esas dos entradas, entonces la salida RB5 se pondrá a nivel bajo "0" (ya que tal y como esta el programa, una vez que una de esas dos entradas se pone a "1", se pone a "0" la salida RB5) y mientras esa salida este a "1" o a "0" se pueda seguir con la secuencia anterior de 4 bits.
No se como hacer para que la salida quede activada y la secuencia siga funcionando al mismo tiempo. Me podeis echar una mano? aun soy principiante en microcontroladores
Os dejo aquí el programa para el MPLAB y el circuito en Proteus para simular.
Salu2
Estoy diseñando un programa (en lenguaje ensamblador) para un pic16f88, que tenga en una salida PWM variable (variando un potenciómetro) y otras 6 salidas secuenciales.
Como entrada para el PWM tengo el RA0, y como entradas secuenciales tengo RA1 RA2 RA3 y RA4.
Al inicio todas las entradas menos la del PWM estan a nivel alto "1" y cuando alguna cambia a nivel bajo "0" cambia la salida, por ejemplo:
Cuando RA1 es 0, se activa unicamente RB1
Cuando RA2 es 0, se activa unicamente RB2
Cuando RA3 es 0, se activa unicamente RB3
Cuando RA4 es 0, se activa unicamente RB4
Cuando RA1 y RA2 son 0, se activa unicamente RB5
Cuando RA3 y RA4 son 0, se activa unicamente RB6
Hasta aquí todo funciona perfectamente.
Ahora quiero hacer que, cuando se active a la vez RA1 y RA2 quede en nivel alto "1" la salida RB5, hasta que se vuelvan activar a la vez esas dos entradas, entonces la salida RB5 se pondrá a nivel bajo "0" (ya que tal y como esta el programa, una vez que una de esas dos entradas se pone a "1", se pone a "0" la salida RB5) y mientras esa salida este a "1" o a "0" se pueda seguir con la secuencia anterior de 4 bits.
No se como hacer para que la salida quede activada y la secuencia siga funcionando al mismo tiempo. Me podeis echar una mano? aun soy principiante en microcontroladores
Os dejo aquí el programa para el MPLAB y el circuito en Proteus para simular.
Salu2
Adjuntos
Última edición: