¿Necesita ayuda con el interruptor en pic16f887

0

Recientemente he empezado a aprender a usar el microcontrolador pic. Estoy usando pic16f887 mc y para la programación usando mplabx con el compilador xc8. Mi microcontrolador está leyendo desde el interruptor y encendiendo el led cuando uso cualquier pin de entrada / salida digital excepto rb0-rb5. No sé por qué esos pines no funcionan. Hice el circuito en proteus también. Me está dando el mismo resultado. ¿Alguien puede decirme por qué esto está pasando? Aquí hay códigos y esquemas donde utilicé rc7 para la entrada y eso funciona perfectamente.

void main(void) {
OSCCON=0x76;
TRISC7 = 1; //RC7 as INPUT PIN
TRISD1 = 0; //RD0 as OUTPUT PIN

RD1 = 0; //LED Off

while(1)
{
 if(RC7 == 0) //If Switch Pressed
 {
    __delay_ms(100);
    if(RC7==0)
    {
        RD1 = 1; //LED ON
        __delay_ms(3000); //3 Second Delay
          RD1 = 0; //LED OFF

      }

    }
  }
 return;
}

    

1 respuesta

1

Los pines con entradas analógicas están configurados en modo de entrada analógica por defecto. Para leer una entrada digital, debe borrar el bit ANSEL o% co_de correspondiente. ANSELH es RB0 , por lo que necesita borrar AN12 (bit 4 en ANS12 ).

Los pines

configurados en modo de salida no se ven afectados por la configuración de entrada analógica. Sin embargo, una operación de lectura-modificación-escritura puede fallar si necesita conocer el estado del pin y el pin está configurado en modo de entrada analógica.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas