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