Bueno te dejo el codigo de una interrupcion externa para el 16F84 pero que te vale tambien para el tuyo:
#include <16F84a.H>
#fuses HS,NOWDT // OSCILADOR CRISTAL DE CUARZO Y SIN WD
#use delay(clock=4000000)
// DEFINICION DE INTERUPCION EXTERNA
#int_ext
void interupcion_externa (void)
{
/* PROGRAMACION DE LAS RUTINAS DE ATENCION A LA INTERRUPCION EXTERNA */
}
// PROGRAMA PRINCIPAL
void main (void)
{
//configuracion de puertos
SET_TRIS_A(0x04); // PUERTO A COMO SALIDA
SET_TRIS_B(0X03); // PUERTO B COMO ENTRADA
// HABILITACION DE INTERUPCIONES EXTERNAS Y GLOBAL
ext_int_edge(L_TO_H); // interrupcion para comparacion flanco de subida
enable_interrupts(int_ext); // habilitacion de interupcion externa
enable_interrupts(global);
while (true)
{/* PROGRAMA PRINCIPAL */}
}
En cuanto al hardware, es tan simple como poner un circuito logico que cuando pase de nivel bajo a alto active la interrupcion (para este ejemplo, tambien lo puedes activar por flanco de bajada H_TO_L).
Saludos.