Parpadeo multiplexion (reloj digital) pic 16f628A

Hola, estoy tratando de realizar un reloj digital con el pic 16f628A de 24 hrs
la programación anda bien pero tengo un problema con eso de la multiplexion de los display's
es que al querer agregar mas tiempo de pause a mi contador el parpadeo de estos disminuye y se ve el desplazamiento de los números y no se si sea proteus el que no esta simulando bien o este mal mi programacion bueno acá les dejo el archivo esta programado en microcode studio
 

Adjuntos

  • reloj.rar
    16.7 KB · Visitas: 81
Hola, La simulación de Proteus (ISIS) depende de la poténcia de la computadora.
Siempre he notado que el Proteus tiene ciertas desventajas en cuanto al entórno gráfico cuando la simulación así lo requiera.
En tu caso (multiplexado) siempre va a parpadear y funcionar de modo errático por lo que te sugiero que pruebes en un circuito real o realices la simulación paso a paso y no en tiempo real.

Saludos
 
tengo un problema con eso de la multiplexion de los display's
es que al querer agregar mas tiempo de pause a mi contador el parpadeo de estos disminuye y se ve el desplazamiento de los números y no se si sea proteus el que no esta simulando bien o este mal mi programación
Estoy de acuerdo con ByAxel.
Simular displays multiplexados en ISIS es algo que no funciona bien.
Puedes usar los modelos de display del tipo multiplex como los 7SEG-MPX4 para mejorar un poco la simulación.
Sin embargo las pruebas en montajes físicos son mejor para ver bien los resultados.

Yo he realizado proyectos con 4 displays multiplexados con 2Ms de retardo y no funcionan en la simulación, solo en físico.

Notas:
En tu simulación no configuraste la velocidad de reloj del PIC, la tienes en 1MHz.
En tu programa tampoco configuraste la velocidad de trabajo del oscilador ni definiste el tipo.
Por default MicroCode Studio establece una velocidad de 4MHz cuando no es declarada y XT_OSC.
Tampoco declaraste algunos fuses de la palabra de configuración y eso te puede traer problemas en tu montaje.

Esto es algo importante y puedes declarar algo como esto en tu programa...
Código:
;*******************************************************************************
@ DEVICE PIC16F628A    ; Microcontrolador utilizado
; Palabra de configuración
@ DEVICE INTRC_OSC_NOCLKOUT,PROTECT_OFF,CPD_OFF,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_OFF,LVP_OFF
;*******************************************************************************
DEFINE OSC 4                ; Definir que se trabajará con 4MHz.
;*******************************************************************************
Suerte.
 
Última edición:
haré el circuito en real para ver que tal.
D@arkbytes estoy trabajando con el oscilador interno del pic, anteriormente realice otro reloj pero sin mutliplexion pero en mi contador tenia una pause de 60000+60000+1000 para realizar el minuto casi exacto (59.6seg) pero ahora tengo que agregarle mas cosas al reloj (alarma, sus respectivos botones y su buzzer) y ya no tengo entradas ni salidas en mi pic mas que dos pero no es suficiente por eso opte por hacerlo por multiplexion y en la palabra de configuracion o los fuse siempre los desactivo en mi programador antes de grabar el programa en el pic y siempre me andan bien los programas.
 
Atrás
Arriba