Hola tempus, acá te dejo algunas correcciones que hice a tu código:
#include <16F876.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay(clock=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
int segundos,minutos,horas,temperatura;
int seg=0;
//INTERRUPCION//
#int_rtcc //Habilita interrupción timer0
void interrupt_timer(void){
seg++;
if(seg==125){ //Condición de cambio
segundos++; // cuenta 1 segundo
seg=0; // qeu no se te olvide reiniciar cuenta
}
set_timer0(131); //Inicializa Timer0
}
void main(void){
setup_adc_ports(RA0_ANALOG);// configura RA0 como entrada analogica
set_tris_a(0xff);
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64); //Configura timer0 y prescaler
set_timer0(131); //Inicializa timer0
enable_interrupts(INT_RTCC); //Habilita interrupción timer0
enable_interrupts(GLOBAL); //Habilita Interrupciones
lcd_init();// inicializa el LCD
set_adc_channel(0);
delay_us(20);
while(true){
temperatura=read_adc();//lee valor analogico
if(segundos>59){
segundos=0;
minutos++;
if(minutos>59){
minutos=0;
horas++;
if(horas>24)
horas=0;
}
}
printf (lcd_putc,"\f%02u:%02u Temp:%d C" ,minutos,segundos,temperatura*2); // ya no hace falta el gotoxy ni el \f fuera del printf
delay_ms(100);
}
}
Hay un ligero retraso en la cuenta, para lo que te recomiendo ver un poco más en el foro, para que intentes minimizar el retraso, pues hay muchas opciones, como la de utilizar un IC RTC, como el DS1307 u otro parecido, o un cristal de 32.768KHz en el T1CKI y T1CKO
Espero pueda servirte por ahora, cualquier cosa paso por acá, un saludo. No te olvides buscar en el foro y tener orden al crear temas