Estoy tratando de leer un botón pulsador y encender un led en caso de que esté presionado. tengo el siguiente código. Tengo una resistencia de 1k con el LED y conecto el botón directamente a RD0. ¡Pero el led está siempre encendido! Si desconecto vcc un poco "funciona". ¿Qué estoy haciendo mal?
#define _XTAL_FREQ 8000000
#pragma config FOSC = INTRC_CLKOUT, WDTE = OFF, PWRTE = ON
#pragma config MCLRE = ON, CP = OFF, CPD = OFF, BOREN = OFF
#pragma config IESO = ON, FCMEN = ON, LVP = OFF
#include <xc.h>
#include <pic16f887.h>
void main() {
PORTD = 0;
TRISD = 0;
TRISD0 = 1;
RD1 = 0;
OSCCON = 0x70;
while (1) {
if (RD0) {
RD1 = 1;
} else {
RD1 = 0;
}
}
}