Que tal todos, Me gustaría pedir su cooperación.
Estoy trabajando con un PIC16F716, y como dice el titulo, no cambian los estados de los pins que declaro como entradas. Adjunto la imagen del esquemático.
El circuito usa como comun el pin de RB5 como "POWER SUPPLY".
El funcionamiento del circuito es el siguiente:
- despues de inicializar, se pone en SLEEP
- Cuando despierta (cada 150mS) se pone a "1" RB5
-Se revisa el estado de las 3 Entradas (RB0,RB3 y RB4), si el switch de alguna de ellas esta cerrado tendra un "1", si estas abierto tendra "0"
-si alguna de ellas cambio se activa determinada secuencia
Aqui el codigo de inicializacion en ensamblador
;-----------CONFIGURAR HARDWARE-------------------------
CLRWDT ;LIMPIAR WATCH DOG TIMER
BCF STATUS,RP0
CLRF PORTB
CLRF PORTA
BSF STATUS,RP0 ;BANCO 1
CLRF ADCON1 ;TODAS COMO DIGITAL I/O
CLRF TRISA ;
MOVLW H'19'
MOVWF TRISB ;CONFIGURAR ENTRADAS Y SALIDAS
MOVLW H'0B' ;HABILITAMOS RESISTENCIAS DE PULL-UP Y
MOVWF OPTION_REG ;ASIGNAMOS PRESCALER AL WDT 1:8
BCF STATUS,RP0 ;BANCO 0
CLRF PORTB
; MOVLW B'01000000' ;CONFIGURAR ADC
; MOVWF ADCON0 ;FOSC/8--CHN0--RA0
MOVLW H'00' ;NO SE USAN INTERRUPCIONES
MOVWF INTCON ;
El programa ya lo simule con PIC simulator IDE, y funciona correctamente, de hecho ya lo cargue el PIC, y cuando pongo cualquiera de las entradas directo a "GND" si cambia el estado.
En si el problema es que los pins que declaro como entradas siempre se quedan en nivel alto. ya intente cambiando el valor de las resistencias por unas mas chicas, pero a menos que las ponga directo a "GND" no cambia de estado.