Página principal
RELOJ DIGITAL
Este es mi segundo proyecto sobre un pic 16f84, aún estoy en los primeros pasos, pero parece que me va gustando.
Esta practica se basa en la creación de un reloj digital utilizando como base de tiempos el crital del micro.
Se puede programar las horas, minutos y segundos mediante dos pulsadores.
Despues de buscar un cristal adecuado dentro de los que tenía en el taller he encontrado uno de 7,3728MHZ.
Veamos pues las divisiones que se deben realizar en el micro para que sea exacta la base de tiempos:
Cuando se toma el reloj interno como base de cuentas, el micro divide por 4 la frecuencia del cristal.
7,3728MHZ /4=1,8432MHZ
Despues se divide por 256 en el prescaler.
1,8432MHZ/256=7200HZ
Y por último se divide por 32 mediante el prescaler programable del registro OPTION bits PS2-PS1-PS0
7200HZ/32=225HZ
Ahora hacemos que se produzca una interrupción 225 veces por segundo. En el programa de interrupción se contará las veces que se produzca una interrupción y cuando llegue a 225 se incrementara el segundero y se actualizara la hora el el LCD.

He probado utilizar un cristal mas común de 4MHZ, esto creaba un reloj que se adelantaba 2,07 segundos por hora, para un experimento vale, pero nada mas.
Los cálculos son los siguientes:
4Mhz/4=1MHZ .....1MHZ/256=3906,25HZ.....3906,25HZ/32=122,07031
Se toma como contador 122, y los decimales son los que hacen el desfase de 2 segundos por hora.

En cuanto al tipo de 16f84 he utilizado un  PIC 16F84-04/P , en teoría solo debería funcionar a 4MHZ pero las pruebas practicas realizadas, he comprobado que llega incluso a 15MHZ, mas no he probado por no disponer de otro cristal.

Recordar que en el programador debereis colocar el tipo de cristal como HS

PROGRAMA