Esto te debería funcionar a la perfección:
//------Directivas para el compilador--------
#Include <16F628A.h> //PIC utilizado
#Fuses INTRC_IO, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOCPD, NOPROTECT //Configuramos los fuses
#Use Delay (Clock=4000000) //Oscilador a 4Mhz
#Use Fast_Io(B) //Optimizamos E/S del PORTB
#Use Fast_Io(A) //Optimizamos E/S del PORTA
int16 milisegundo;
int1 flag;
#int_timer0 //la interrupcion por timer0
void timer0_isr(void)
{
milisegundo++;
set_timer0(135); //cargo el timer0 para que desvorde en un 1ms (con 135 en vez de 131 para compensar)
}
void main(void)
{
set_tris_a(0b00000000); //configuro el puerto a
set_tris_b(0b00000000); //configuro el puerto b
//-----------------------configuramos la interrupciones-----------------------
disable_interrupts(global); //desactivo todas las interrupciones
//-----------------------configuro el timer 0-----------------------
setup_counters( rtcc_internal, rtcc_div_8 | rtcc_8_bit); //configuro timer0 con prescaler de 1:8
enable_interrupts(int_timer0); //activo el timer0
set_timer0(130); //cargo el timer0 para que desborde en un 1ms
//------------------------------------------------------------------
enable_interrupts(global); //activo las interrupciones
//----------------------------------------------------------------------------
while(true)
{
if ((milisegundo >= 1000) && (flag == 1))
{
milisegundo = 0;
output_low(pin_b5); //desactiva el led
flag=0;
}
if ((milisegundo >= 1000) && (flag == 0))
{
milisegundo = 0;
output_high(pin_b5); //activa el led
flag=1;
}
}
}
espero que te sirva