TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: idroj en 08 de Junio de 2009, 07:21:53

Título: Ayuda con reloj digital con pic16f876
Publicado por: idroj en 08 de Junio de 2009, 07:21:53
Hola,

Me llamo Jordi, estoy estudiando ingenieria electronica.
He intentado de hacer un programa para que realizara un reloj digital pero no me a funcionado. Por eso posteo aki para haver si algun sabe algun programa sencillo i k funcione para un reloj digital implementando LCD.

Muchas gracias
Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: QIQE en 08 de Junio de 2009, 08:55:21
pasanos tu programa y esquema y estudiamos un poco el problema si no poco podemos hacer por ti
Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: MLO__ en 08 de Junio de 2009, 11:26:26
Que lenguaje? lo haces con un RTC o usas un Timer? La LCD es grafica o alfanumerica?
Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: idroj en 08 de Junio de 2009, 12:12:13
Lo hago con ensamblador, i Timer.
La LCD es alfanumerica


Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: MLO__ en 08 de Junio de 2009, 12:37:32
Usa el buscador.

Comienza por aqui:

Alamcen del Assembler (http://www.todopic.com.ar/foros/index.php?board=3.0)
Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: Suky en 08 de Junio de 2009, 12:52:40
Hola,

Me llamo Jordi, estoy estudiando ingenieria electronica.
He intentado de hacer un programa para que realizara un reloj digital pero no me a funcionado. Por eso posteo aki para haver si algun sabe algun programa sencillo i k funcione para un reloj digital implementando LCD.

Muchas gracias

Que parte no te funciono?
Título: Re: Ayuda con reloj digital con pic16f876
Publicado por: matocomasi en 10 de Junio de 2009, 05:10:06
Yo personalmente te recomendaria usar C en vez de ensamblador y mas concretamente el CCS que es muy facil de controlar, pero esa decision es tuya.

Si vas a usar el Timer0, lo que debes de hacer es buscar los parametros para que el timer0 te calcule los segundos. Ello va a depender de la frecuencia del cristal.

Por ejemplo

Si usas un cristal de 4MHz tienes un ciclo de reloj cada 0.25uS y un ciclo de instruccion cada 1uS y el timer0 desbordara cada 256uS, para generar 1 segundo el timer0 debe desbordar 3906.25 veces, por lo que el timer 0 debe desbordar 3906 veces completas y el ultimo debe ser precargado con el valor 192.

1S = 0.000256 * 3906 + 0.000001*(256 - 192)=0.999936 + 0.000064 = 1 Segundo

Esta es la teoria

Si aplicas algun prescaler puedes hacer que el numero de desbordamientos sea menor.

Si usas el prescaler 16, el timer0 desbordará cada 0.004096 por lo que tendra que desbordar 244 veces y precargar a 220.

No se si he conseguido aclarate algo o liarte aun mas, pero si no te queda claro te lo explicare con mas detalles.

Con respecto al control de la lcd alfanumerica, hay una libreria llamada flex_lcd.c  que es muy buena y controla cualquier modelo de forma muy simple.

Saludos