domingo, 9 de febrero de 2020

6) El software o programación del μC . Reloj Retro ZM1022



Asignación de registros y memoria en el microcontrolador uC

         Como ya se vio, el uC a utilizar en este proyecto, el 16F628 es de rango medio y maneja 8 bits de longitud de registros internos, memoria,  y puertas de entrada/salida que como se vio son RA(RA0-RA7) y RB(RB0-RB7) y se asignan según la Fig. 5.2
Internamente en el microcontrolador se dispondrán entonces 6 registros o lugares de memoria de 8 bits donde se almacenará el número a mostrar en cada dígito del Reloj y un séptimo registro para el código de color de Luz de Fondo según la tabla de la Fig. 5.3.
Mas adelante veremos como mostrar también la fecha, alternando en el display  Horas, Minutos y Segundos con Año, Mes y Día.

La asignación de los registros para almacenar y mostrar Horas, MInutos y Segundos será la siguiente:

      Nombre   Función                              Rango utilizado   Rango máximo (8 bits)
      HD           Decenas de Horas               0-1                        0-255
      HU           Unidades de Horas             0-9                        0-255
      MD          Decenas de Minutos            0-5                        0-255
      MU          Unidades de Minutos          0-9                        0-255
      SD           Decenas de Segundos        0-5                        0-255
      SU           Unidades de Segundos       0-9                        0-255
      BL           Código de Luz de Fondo    0-7                        0-255

También se asignarán otros registros de memoria auxiliares para contadores y retardos que se definirán en el código de programación del μC

El software o código de programación del microcontrolador tendrá básicamente 6 etapas:
       1) Reset, arranque e inicialización del sistema
       2) Espera de sincronismo del temporizador de 1 segundo
       3) Actualizar la indicación de tiempo almacenada en los 6 registros (inc. 1 Seg)
       4) Mostrar el contenido de los 6 registros en el display Nixie
       5) Actualizar luz de fondo
       6) Volver al punto 2


Programación del microcontrolador, diagramas de flujo simplificados


La primera parte del diagrama de flujo simplificado incluye el punto 1 de arranque y el punto 2 de sincronismo de la lista de arriba.
El temporizador de 1 Seg. se divide en dos temporizadores de 1/2 segundo en cascada, para que el Led indicador de Sincronismo (LIS (RA4) en Fig. 5.2) permanezca 1/2 Seg. encendido y 1/2 Seg. apagado. Una vez que ocurre la espera completa de 1 Seg. se pasa al proceso y display de dígitos, y luego se vuelve a esperar la temporización del segundo siguiente (entrada Lazo Ppal.)







La segunda parte del diagrama de flujo incluye el punto 3 de la lista, actualización de los 6 registros de dígitos SU, SD, MU, MD, HU y HD , los cuales se incrementan, se comparan con sus limites y se ponen a cero según corresponda.







La tercera parte del diagrama de flujo incluye el punto 4 de la lista de arriba, consistente en mostrar el contenido de los 6 registros en el display de tubos Nixie

En este diagrama se manejan las señales ABCD y E1, E2, E3, E4 Y E5 de la Fig. 5.2
Primero las señales ABCD se mandan a reposo (0000) y luego se encienden (pasan a 1) según el estado del bit correspondiente del registro correspondiente. 
Por ejemplo, los 8 bits del registro SU se puede representar asi: 0,0,0,0,B3,B2,B1,B0
siendo B0 el bit de menor peso y B3 el de mayor peso de la combinación BCD que representa el dígito decimal contenido en el registro. Entonces como SU,B0 se indica el bit B0 del registro SU,
como MU,B3 se indica el bit B3 del registro MU y así con los demás registros y sus bits completando los seis.
En síntesis cada columna del diagrama reproduce en las salidas ABCD el estado de los bits correspondientes de cada registro SU, SD, MU Y MD, y luego se coloca el pulso en la señal E1, E2, E3 o E4, correspondiente para almacenar en los Latchs, según las Figs. 4.6 y 4.7
En cada columna también se colocan dos retardos antes y después de los pulsos. El Retardo 1 permite el establecimiento de las señales ABCD y el Retardo 2 impone la duración del pulso E.





La cuarta y última parte del diagrama de flujo completa los puntos 4, 5 y 6  de la lista de arriba. La columna de la izquierda procesa el registro de la unidades de horas HU como ya se vio arriba generando las señales ABCD y el pulso E5. Luego se enciende o apaga el dígito de decenas de horas HD de acuerdo al estado del registro HD.  Por último las señales ABCD adoptan el estado del código de Luz de Fondo (Back Light) de acuerdo al estado de los bits B3, B2, B1 Y B0 del registro dedicado a esta función BL (Back Light) y quedan asi hasta el proceso del segundo siguiente. Luego se retorna al Lazo Principal.
Nótese que la iluminación Back Light se controla con el circuito de la Fig. 5.3, donde se usan solo tres señales ABC, la D no se usa.








Nos encontramos en la siguiente entrada. Un saludo...








 

No hay comentarios:

Publicar un comentario