Hola, puedes usar el DS1307 de Dallas, muy popular pues usa protocolo I2C, no se que microcontrolador PIC usas si usas por ejemplo un 16F870, puedes poner un XTAL de 32.768, y hacer que el timer 1 se incremente con este, cargando 32768 en el registro del timer este tardata exactamente un segundo en desbordarse, entonces, activas l ainterrupcion de este y ahi cuentas tu tiempo real, pues cada vez que se produzca una interrupcion sera 1 segundo y no importan ni los ciclos de reloj de tu programa ni el XTAL que uses o el tipo de oscilador, puedes usar un barato RC para la maquina, si usas un PIC16F84 por ejemplo, puedes hacer lo mismo, pero tendras que agragar un circuito externo para los 32.768, los ingresas al TMR0 por el pin y pones el presscaler en 128 esto hara que el timer te produca una interrpcion cada 1 segundo tambien, entonces despues de que sales de la interrucion actualizas el display o que se yo, pero tienes hasta la proxima inetrrupcion mucho tiempo 1.000.000 de instrucciones para ejecutar, con esto puedes hacer un TIMER perfecto, claro dependera de la estabilidad del XTAL de 32.768, que se consigue en cualquier relojeria uno bueno.
espero que te sirva.
saludos
ARIEL