Hola, pues estoy realizando un programa para practicar el "switch case" y "juntar bits para hacer un numero decimal" , me esta compilando pero a la hora de probarlo en el protoboard no esta funcionando asi que solicito su ayuda para saber en que me estoy equivocando.
En este programa en el pin A0 y A1 de un pic 16f877a estoy conectando un deep switch como entrada, y a la salida conecto unos leds
Entonces al ejecutar este programa espero tener una salida como la siguiente:
Cuando RA1 y RA0 estan en baja, RB1 y RB0 estan en baja.
Cuando RA1 esta en baja y RA0 esta en alta, RB1 esta en baja y RB0 esta en alta.
Cuando RA1 esta en alta y RA0 esta en baja, RB1 esta en alta y RB0 esta en baja.
Cuando RA1 y RA0 estan en alta, RB1 y RB0 estan en alta.
#include <pic.h>
short int entrada;
void Inicializar(void);
void main(void)
{
Inicializar();
while(1)
{
entrada=((RA1<<1)+RA0); // Esta es la instruccion para juntar los bits
switch(entrada)
{
default:
RB1=0;
RB0=0;
break;
case 1:
RB1=0;
RB0=1;
break;
case 2:
RB1=1;
RB0=0;
break;
case 3:
RB1=1;
RB0=1;
break;
}
}
}
void Inicializar()
{
ADCON1=6;
TRISA0 = 1;
TRISA1 = 1;
TRISB0 = 0;
TRISB1 = 0;
entrada=0;
}
Saludos y gracias de antemano.