Galería

Reloj – Calendario con PCF8583 e I2C

En el presente ejercicio mostraremos cómo hacer un reloj-calendario con el chip PCF8683 y el PIC 18F4550 y mostrarlo en un LCD alfanumérico de 2×16 píxeles. Para comunicar los dos integrados, utilizaremos el bus I2C.

Antes de explicar el ejercicio, una breve introducción sobre el bus I2C y el PCF8583:

El bus de comunicaciones en serie I2c fue creado por Phillips, y es muy utilizado en la industria para comunicar microcontroladores y sus periféricos en sistemas integrados. La principal característica de I²C es que utiliza tres líneas para transmitir la información: una para los datos (SDA), otra para la señal de reloj (SCL) y otra para referenciar las señales (masa o GND).

El PCF8583 es un reloj-calendario basado en una RAM estática de 2048 bits organizado en 256 palabras de 8 bits. Las direcciones y los datos son transferidos de forma serial mediante el bus I2C. Los 8 primeros bytes de la RAM son usados para la función de conteo del reloj-calendario, los siguientes 8 bytes pueden ser programados como registros de alarma o espacio libre de RAM. Los 240 bytes restantes son espacio libre de la RAM.

Una vez puestos al día, volvemos al ejercicio. La finalidad es mostrar en el LCD nuestra fecha de nacimiento y una hora cercana a las 00:00, para poder visualizar así la transición de un día a otro. El código está programado en CCS PCWHD versión 4.084. En la misma carpeta, incluimos las librerías necesarias (en el enlace inferior final se puede descargar todo el ejercicio, pudiendo visualizar el código en el archivo RELOJ_CAL.c, con sus debidos comentarios y explicaciones en el programa).

La simulación del circuito la realizamos en el entorno ISIS de PROTEUS:

En el esquema se pueden observar el LCD, el MCLR alimentado (pues funciona en bajo activo) y el conexionado del PCF8583 al bus I2C mediante SDA, SCL ( con sus correspondientes resistencias pull-up) y la referencia GND.

En el vídeo se puede observar la simulación en ISIS:

HACER CLICK PARA DESCARGAR EJERCICIO COMPLETO