Proba con estos fuses:
#include "p16F886.inc"
; CONFIG1
; __config 0xEFD4
__CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
; CONFIG2
; __config 0xFFFF
__CONFIG _CONFIG2, _BOR4V_BOR40V & _WRT_OFF
Utiliza:
- Oscilador Interno (4Mhz se puede aumentar a 8Mhz), sin salida al exterior asi aprovechas un pin ( y no necesitas poner un cristal -obligatorio en el PIC16F84- )
- Desactive el MCLR asi tenes otro pin mas como salida ( y no necesitas del condensador + resistencia + diodo como el PIC16F84 )
- Desactive el WDT el cual podria resetearte el PIC ( es como un seguro por si se queda colgado en alguna parte, pero al comienzo dejemoslo aparte. )
- Desactivado el Low Voltage Programming (LVP)
(A esto lo habia hecho pero cuando lo hice tenia el compilador en C, asi que tuve que pasarlo a ASM para que me de el codigo
y me olvide cambiarlo antes de pasartelo xD )
Aca te dejo un codigo y te explico los cambios al final.
ORG 0x00
GOTO Start
ORG 0x04
RETURN
Start:
; Configuracion de Entrada/Salida
BANKSEL TRISA ; Banco donde esta TRISA (Banco 1)
MOVLW 0xFF
MOVWF TRISA ; PORTA todas entradas
CLRF TRISB ; PORTB todas salidas
;Configuracion Digital
BANKSEL ANSEL ; Banco donde esta ANSEL (Banco 3)
CLRF ANSEL
CLRF ANSELH
BANKSEL PORTA ; Banco donde esta PORTA (Banco 0)
Inicio:
BTFSC PORTA, 0 ; Si esta en 1 RA0, pongo 1 a RB0
GOTO Inicio
BSF PORTB, 0
Arranque:
BTFSC PORTA, 1 ; Si esta en 1 RA1, pongo 0 a RB0, sino espero que se presione
GOTO Arranque
BCF PORTB, 0
GOTO Inicio
END
Al comienzo estan los vectores de reset e interrupcion, en el reset ese PIC comienza en 0x00, y cuando ocurre una interrupcion ejecuta la instruccion de 0x04, si la activas por error esto te salvaria, acostumbrate a ponerlos (aunque no los uses, si usas interrupcion, solo reemplazar el RETURN por el GOTO a tu rutina de interrupcion -esto para mas adelante- ).
BANKSEL es una pseudo-instruccion, no es una instruccion del microcontrolador en si, sino del compilador ASM ( el que pasa el asm en el codigo del PIC ) este va a reemplazar el BANKSEL por los BSF/BCF de los RP1 y RP0. Pero se va a complicar la vida el compilador no vos.
Por ultimo los comentarios, SIEMPRE acostumbrate a los comentarios, asi es mas facil de entender que esta pasando o que hiciste/ o intentaste hacer.