Veo varios errores.
El primero en la selección del oscilador. #pragma config FOSC = EXTRC es para un oscilador externo RC
Si usas un cristal de 4 MHz. el fuse debería ser XT
El segundo es que estás configurando todo el puerto B como salidas con TRISB = 0;
Si usas la interrupción por RB0, entonces debería ser entrada. TRISB = 0b00000001; o TRISB = 1;
Habría que definir el flanco de interrupción si es que es necesario. (Ver hoja de datos)
El tercero está en el esquema. Los pines de entrada están flotando, o sea, no tienen una referencia lógica.
Lo demás, como esto, es redundante:
No usas las librerías stdio.h ni stdlib.h pero las tienes incluidas.
Y el servicio de interrupciones no tiene una estructura adecuada.
PD:
Esto debe generar un error de compilación:
pORTBbits.RB2
El primero en la selección del oscilador. #pragma config FOSC = EXTRC es para un oscilador externo RC
Si usas un cristal de 4 MHz. el fuse debería ser XT
El segundo es que estás configurando todo el puerto B como salidas con TRISB = 0;
Si usas la interrupción por RB0, entonces debería ser entrada. TRISB = 0b00000001; o TRISB = 1;
Habría que definir el flanco de interrupción si es que es necesario. (Ver hoja de datos)
El tercero está en el esquema. Los pines de entrada están flotando, o sea, no tienen una referencia lógica.
Lo demás, como esto, es redundante:
C:
OPTION_REG=0b11100111;
OPTION_REGbits.T0CS=0;
OPTION_REGbits.INTEDG =1;
Y el servicio de interrupciones no tiene una estructura adecuada.
PD:
Esto debe generar un error de compilación:
pORTBbits.RB2