TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: carlillosgld en 15 de Abril de 2006, 21:26:58

Título: reloj Digital con LCD y PIC
Publicado por: carlillosgld en 15 de Abril de 2006, 21:26:58
Buenas, estoy realizando un reloj digital con un pic16f84a, soy novato, pero he investigado, y bueno estoy utilizando un LCD JHD162, tengo todas las instrucciones, lo he hecho funcionar y que muestre lo que quiero,
esta rutina de enviar mensajes al LCD la incorpore al programa del reloj, en el cual tengo variables para segundos, minutos y horas, estos registros se incrementan cuando ocurre un segundo.
Para lograr el segundo, utilice el TMR0 del pic, estoy usando un cristal de 4.000 MHz, un prescaler de 1:256, la interrupcion,  y un registro auxiliar checando el acarreo DC para completar los divisores de frecuencia, que segun los calculos debería de darme un segundo exacto.

El problema surge que cuando tengo el segundo y mando incrementar los registros y luego mando los datos al LCD, resulta en un retraso de aprox. 2 seg y medio, no puedo tomar exactamente este tiempo de retraso,

Este programa lo intenté ya con y sin interrupciones, y estoy frustrado. Quisiera un poco de apoyo, en sugerencias, no se si usar un cristal más rapido o un prescaler menor y hacer delays para completar el segundo y si asi fuera de cuanto tiempo serían. gracias
Título: Re: reloj Digital con LCD y PIC
Publicado por: Chaly29 en 16 de Abril de 2006, 02:36:39
Hola carlillosgld, si yo e entendido bien, de la forma que usas para conseguir 1 segundo te comento que no es la correcta ya que le lleva mas de 1 seg. hacer tal procedimiento.

Yo en tu caso lo que haría seria hacer que la interrupción realice una cuenta de 50000, luego sabemos que 20 cuentas de  la interrupción son 1 segundo. Decrementando un contador que inicie en 20, al llegar a cero que salte a incrementar los seg, min, horas, refresque el display y coloque nuevamente 20 en tal contador para generar el próximo segundo.

Bueno, espero haberme explicado bien, si no entiendes algo solo pregúntalo, un saldo.

Atte. CARLOS

Título: Re: reloj Digital con LCD y PIC
Publicado por: vszener en 16 de Abril de 2006, 08:16:55
Buenass!!!aunque la teoria que te han proporcionadoe s correcta, en tu programa tambien deberas incluir una subrutina/funcion de redondeo, ya que el timer en si mismo no es exacto y para hacer relojes no tendras exactitus, puedes realizar una subrutina o simplemente ajustar la no exactitud mediante una variable, en lenguaje c, concretamente en el post de Ejemplitos en c para 16F648A hay realizado un programa para reloj digital, eso si, en 7 segmentos su representacion, peor te puede servir para usarlo con una lcd seria mas sencillo, concretamente es el programa numero 50, aqui el enlace:
http://www.todopic.com.ar/foros/index.php?topic=4530.0


Suerte!!! :wink: