Corso di BASCOM 8051 - (Capitolo 4 1 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Real Time Clock, in I2C BUS, Provvisto di RAM. Il PCF 8583 è un diffusissimo dispositivo che unisce i vantaggi, offerti da un versatile Real Time Clock (RTC), a quello di una RAM da 240x8 Byte. Pin-Out del PCF 8583. Schema a Blocchi dell'rtc+ram Seriale PCF 8583. 278
La sezione RTC, oltre ad avere le classiche funzioni da Orologio/Calendario, ha anche la possibilità di gestire un uscita, in Open Collector associabile all orologio, con cui è possibile pilotare un carico esterno. Tipica Applicazione di PCF 8583. La peculiarità di essere un dispositivo pilotato in I2C BUS lo rende facilmente integrabile in qualsiasi applicazione in cui è disponibile questo BUS, oppure, in cui sia possibile simularlo. Per implementarlo è sufficiente avere a disposizione una linea di I/O bidirezionale ed una linea di uscita pilotabile da firmware. Tramite queste due linee è possibile pilotare, molto facilmente tutti i classici dispositivi in I2C BUS, gestendo un numero molto alto di componenti. 279
Esempio.082. Gestione della RAM Interna del Real Time Clock PCF 8583 in I2C BUS. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: Operatori aggiunti: Nessuno Schema Applicativo RTC+RAM seriale PCF 8583. 280
Programma di Esempio.082 del corso BASCOM 8051. Consente di accedere a byte, tramite console, alla RAM interna. Il programma gestisce le 240 locazioni di RAM, disponibili a byte, disponibili nel componente PCF 8583, tramite l'interfaccia I2C BUS del Mini Modulo. In dettaglio visto che le prime 16 locazioni (0..15) possono avere usi alternativi, il programma propone come campo di indirizzi gestibili quello degli ultimi 240 bytes (16..255). Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x Chr, 1 Stop bit, Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8051 (vedere Configurazioni IDE). Il programma funziona completamente solo se la GMM 5115 è montata sullo zoccolo Z2 della GMM TST3!! 281
Esempio.083. Gestione di Base del Real Time Clock PCF 8583. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: MAKEBCD ; MAKEDEC. Operatori aggiunti: Nessuno Schema Applicativo RTC+RAM seriale PCF 8583. 282
Programma di Esempio.083 del corso BASCOM 8051. Consente di Impostare, Acquisire e Rappresentare, Data ed Ora attuale a byte tramite console. Gestione orologio in Tempo Reale (Real Time Clock) tramite I2C BUS. Il programma usa il componente PCF 8583 che è in grado di gestire un orario con ore, minuti, secondi ed una data con giorno della settimana, giorno del mese ed anno, tramite l'interfaccia I2C BUS del Mini Modulo. Il programma preleva ciclicamente dall'orologio la data e l'ora e le rappresenta sulla console. Sempre da console si può reimpostare l'ora e la data attuale del componente. L'orologio hardware gestito dal programma, è caratterizzato da un basso errore, ottenuto grazie ad un apposito quarzo che fornisce una base temporale precisa ed indipendente dalla frequenza del microcontrollore. Inoltre, il collegamento di una batteria sull'alimentazione del RTC garantisce il corretto aggiornamento di data ed ora anche in assenza della tensione di alimentazione principale. Il programma completa la gestione del calendario del PCF 8583 portando i soli 4 anni gestiti dal RTC ad un valore a 4 cifre, usando la RAM integrata nello stesso componente. Questa tecnica funziona regolarmente solo se l'orologio viene impostato almeno una volta ogni 4 anni. Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x Chr, 1 Stop bit, Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8051 (vedere Configurazioni IDE). Il programma funziona completamente solo se la GMM 5115 è montata sullo zoccolo Z2 della GMM TST3!! 283
Esempio.084. Gestione Allarme dell RTC Tramite il PCF8583. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: Operatori aggiunti: Nessuno Schema Applicativo RTC+RAM seriale PCF 8583 + Uscita di Allarme. 284
Programma di Esempio.084 del corso BASCOM 8051. Gestione dell allarme dell'orologio in Tempo Reale (Real Time Clock) tramite il PCF 8583. Il programma usa il componente PCF 8583 che è in grado di gestire un orario, una data ed una sveglia, tramite l'interfaccia I2C BUS del Mini Modulo. Il programma preleva ciclicamente dall'orologio la data, l'ora e lo stato della sveglia per poi rappresentarle sulla console. Sempre da console si può reimpostare Data ed Ora attuale, impostare il tempo di Sveglia (con Mese, Giorno, Ore, Minuti, Secondi), attivare la Sveglia e disattivare la sveglia. Quando la sveglia è attivata e l'orologio raggiunge il tempo di sveglia impostato, viene indicata la condizione sulla console e contemporaneamente si attiva l'uscita /INT del componente che attiva il LED collegato. Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x Chr, 1 Stop bit, Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8051 (vedere Configurazioni IDE). Il programma funziona completamente solo se la GMM 5115 è montata sullo zoccolo Z2 della GMM TST3!! 285
Esempio.085. Gestione Orologio e Sveglia del PCF8583 Completo di Attivazione Relè e Acquisizione dei Tasti. Definizioni aggiunte: Dichiarazioni aggiunte: Istruzioni aggiunte: Operatori aggiunti: Nessuno Schema Applicativo Orologio-Sveglia con PCF 8583. 286
Realizzazione di una Sveglia con PCF 8583. Programma di Esempio.085 del corso BASCOM 8051. Gestione Orologio e Sveglia del PCF 8583 tramite Tasti e Relè. Il programma usa il componente PCF 8583 che è in grado di gestire un orario, una data ed una sveglia, tramite l'interfaccia I2C BUS del Mini Modulo. Il programma preleva ciclicamente dall'orologio la data, l'ora e lo stato della sveglia per poi rappresentarle sulla console. Tramite 4 pulsanti collegati ad altrettante linee di I/O del MIni Modulo si può reimpostare Data ed Ora attuale, impostare il tempo di Sveglia, attivare la sveglia e disattivare la sveglia. Quando la sveglia è attivata e l'orologio raggiunge il tempo di sveglia impostato, viene indicata la condizione sulla console, contemporaneamente si attiva l'uscita /INT del componente (che attiva il LED LD1) ed il relè Relay1 (visualizzato dal LED LD2). Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x Chr,1 Stop bit, Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM 8051 (vedere Configurazioni IDE). Il programma funziona completamente solo se la GMM 5115 è montata sullo zoccolo Z2 della GMM TST3!! 287