Hola:
1- Si lo que necesitas es una subrutina de temprorizacion y ya, utiliza con confianza el PICDEL.
2- Si quieres hacerla "casera", te explico como.
Para hacer una rutina de 1 segundo exacto, tendras que repetir un multiplo de veces una temporizacion mas pequeña basada en la cuenta del timer del PIC. Por ejemplo, si quieres 1 segundo, tendras que repetir 100 veces una tempo mas pequeña, de 10 ms por ejemplo (100 por 10ms = 1 segundo).
Para dicha tempo tienes que usar la formula:
Tempo de 10ms = 4 . Tclk . valor de cuenta de timer . prescaler
Ten en cuenta que los valores a setear en el timer dependeran de la frecuencia del oscilador con que el PIC trabaje, es decir Tclk = 1 / fclk, donde fclk es la frecuencia del cristal u oscilador que utilices.
Luego puedes cargar un registro auxiliar CONTA con el valor d'100' e irlo decrementando hasta 0. Cada vez que decrementes, deberas ejecutar tu tempo de 10ms.
Si lo que quieres es 1 segundo muy exacto -el caso de un reloj-, tendras que seguir muy de cerca la cantidad de instrucciones que realizas luego de temporizar, calcular las diferencias que estas introducen en tu tempo, y compensarlas.
Espero haberte sido util.
Un cordial saludo.