Programar sistema horario 12/24 (assembler)

Programación de un reloj LED, para que pueda mostrar la hora en cualquier formato (12h-24h). Esta modificación se realiza en un ‘Reloj-Fecha-Cronómetro-Temperatura‘ con 4 dígitos de 7 segmentos LED, de control serie. El controlador de este reloj está construido a partir del microprocesaror AT89S52, con encapsulado de 44 pines (SMD).

Sistema horario

El sistema horario de 24 horas es una convención de medición del tiempo, en la que el día se contabiliza de medianoche a medianoche. Con formato de 24 horas, las horas se empiezan a contar a partir de la medianoche, y se presenta con los números comprendidos entre el 0 y 23.

Sistema horario de 12/24 horas

El sistema de 24 horas es el más utilizado en la actualidad, y el sistema de 12 horas se utiliza principalmente para la comunicación oral, porque es más intuitivo. A pesar  de que el sistema de 24 horas es el más usado en comunicaciones escritas, en algunos países lo denominan como horario militar o astronómico, y prefieren realizar la presentación de la hora utilizando el sistema tradicional de 12 horas.

Esta actualización se realiza en el Reloj SMD que mostré anteriormente:

Construye un Reloj SMD

Planteamiento al programar el reloj

Cuando se programa el firmware de un reloj, es importante saber si el display de presentación es multiplexado o no, así como el valor de tiempo mínimo a mostrar.

  • Cuando el display es multiplexado, el microprocesador tiene que enviar la información con una cadencia mucho más rápida,  siempre superior a la persistencia del ojo humano. Si se quiere evitar el efecto de parpadeo, la frecuencia de refresco del display debería ser como mínimo de 50 Hz.
  • La cadencia de lectura de la información horaria debe ser igual o superior al valor del tiempo mínimo que se quiera mostrar en el display. Si el reloj muestra décimas de segundos, el microprocesador tendría que leer la información del chip RTC con una cadencia mínima de 1/10 segundos, cada 100 mSeg.

Funcionamiento del reloj

A pesar de que el Reloj SMD no es multiplexado, porque la presentación se realiza enviando los datos en serie (registro de desplazamiento), lo he programado con una frecuencia de refresco muy alta.

CPU: Reloj SERIE

 

Display: Reloj SERIE

Esto lo hice así, porque utilicé la estructura de programa del reloj de esfera rotante FC-209, el cuál si era multiplexado.

Reloj LED con 2 alarmas

Antes de presentar la hora en el display por primera vez, el microprocesador tiene que leer la información del chip RTC (DS1302). Y si el reloj muestra segundos, la lectura se debería hacer que como mínimo una vez por segundo.

Frecuencia de refresco del display

Aprovechando las prestaciones y velocidad del microprocesador que he utilizado, decidí insertar la rutina de lectura del chip DS1302 (RTC) dentro de la rutina de refresco del display. Como se puede ver en la gráfica anterior,  la lectura se está haciendo con una cadencia de 926 veces por segundo.

Actualización del firmware

La nueva actualización del Reloj SMD, la puedes descargar de forma gratuita desde el siguiente enlace:

J_RPM_v2_RELOJ_SERIE.HEX

Con esta actualización es posible configurar el sistema de presentación horaria en el display, pudiendo elegir el sistema de 12/24 horas.  Para incorporar esta función, he utilizado el método más sencillo de hacerlo: Internamente todo funciona en modo 24 horas, y dependiendo del modo en el que se deba mostrar la hora, el programa pasará o no a través de las rutinas de conversión a formato de 12 horas. Y esto lo hará sólo  antes de enviar la hora al display, porque los menús de configuración siempre mostrarán la hora utilizando el formato de 24 horas. Así no será necesario modificar los menús de configuración, ni cambiar el sistema horario del chip DS1302 (RTC). A continuación os muestro el código que he añadido en esta actualización.

Rutinas de programación en assembler

Funcionamiento de la subrutina: ValAB

Funcionamiento de la rutina Val_AB

Menús de configuración

Los menús de configuración de esta versión (v2), no cambian con respecto a la  versión anterior (v1). En esta versión aparece un nuevo menú, y es para configurar el sistema de presentación horaria (12/24) del reloj.

Menús de configuración del reloj

 

Soldando SMD-TQFP

Soldando SMD-TQFP: proceso a seguir para soldar un circuito integrado con encapsulado TQFP (Thin Quad Flat Package) de 64 pines. La separación entre pines del chip a soldar es de 0,5 mm y el hueco libre entre ellos es de 0,2 mm.

A pesar de que los componentes de tipo SMD están pensados para ser soldados a máquina en las cadenas de montaje, en todas las reparaciones o prototipos se suelen montar a mano. La tarea de soldar un componente SMD puede ser fácil o muy difícil, dependiendo de la destreza que se tenga con el soldador… aunque lo más importante es disponer de las herramientas y útiles necesarios: pinzas, soldador, estaño, flux, lupa o microscopio, etc.

Herramientas SMD

Arrastre de soldadura  (Drag soldering)

El método más rápido para soldar un circuito integrado de tipo SMD, es utilizando el método de arrastre de soldadura (Drag soldering), en el cual es muy importante disponer de Flux en gel y malla de desoldar. En un componente SMD es muy importante la calidad de las soldaduras, con el fin de evitar posibles averías mecánicas, debido a una posible caída o golpe del dispositivo. El tiempo de reparación junto con el coste del componente, siempre será superior al gasto del Flux y exceso de estaño que se emplee en la soldadura. En este montaje empleo más estaño y Flux del necesario, pero lo hago así para mostrar lo fácil que es soldar un componente SMD, aunque se hagan cortocircuitos entre los pines del componente. Siempre es mejor pasarse con el estaño, que quedarse corto y dejar las soldaduras defectuosas o frágiles.

Preparación antes de soldar

Antes de comenzar a soldar un circuito integrado SMD, es conveniente disponer de un soporte para mantener sujeta la placa. Calentar el circuito impreso antes de soldar y sujetar el componente con algún adhesivo, facilitará mucho la soldadura. El adhesivo debe ser fácil de eliminar, para facilitar una futura reparación. Utilizando un trozo de cinta adhesiva de doble cara sería suficiente.

Adhesivo SMD

Es muy importante alinear todos los pines del circuito integrado. En caso de que alguno de sus terminales esté doblado, podemos alinearlo con la ayuda de las pinzas y el filo de un cutter.

Alinear el chip

Soldadura SMD

Para evitar que se mueva el circuito integrado cuando se suelde, a pesar de que esté sujeto con cinta adhesiva, es conveniente soldar al menos un pin de cada cara del circuito integrado. De esta manera nos aseguramos que la alineación de todos los pines es correcta, y evitamos posibles cortocircuitos difíciles de eliminar cuando soldemos.

Soldar los extremos del chip

Antes de utilizar el soldador de punta ancha, tenemos que aplicar un cordón de Flux en gel en todos los pines del circuito integrado. Los terminales deben estar sumergidos en el Flux… ahorrar en Flux no es una buena idea.

Flux en gel

A continuación, con un soldador de punta ancha, aplicaremos estaño en la punta del soldador y lo arrastraremos por encima de todos los pines del circuito integrado. Cuando se arrastre el soldador, no tenemos que presionar sobre los terminales del circuito integrado. Los terminales los presionaremos después, desde el interior del circuito integrado hacia el exterior. De esta manera nos aseguramos que todos los terminales se queden apoyados en el circuito impreso y correctamente soldados.

Soldando chip SMD

Aplicando más Flux podemos eliminar los posibles cortocircuitos que hayan quedado. Si el volumen de estaño extra es mucho, aproximando la malla de desoldar se elimina con facilidad.

Malla para retirar estaño

Una vez que hayamos soldado todos los terminales del circuito integrado, haremos una revisión de las soldaduras con la ayuda de una lupa, buscando posibles defectos en las soldaduras y cortocircuitos. Cuando veamos que todo está bien, limpiaremos todos los restos del Flux con la ayuda de alcohol de limpieza, un cepillo, papel, etc.

Revisar soldaduras

La revisión final la podemos hacer aplicando luz en la cara inferior del circuito impreso, observando los posibles defectos de soldadura desde la cara superior.

En el siguiente video se muestran todos los detalles del proceso a seguir.