Tutorials - Elettronica

 

 

LCD con caratteri a matrice


Come funziona l' accesso al display

Abbiamo dato qualche cenno sulla struttura del modulo. Ora vediamo come sia possibile utilizzarlo.

Di nuovo, sul WEB è disponibile una massa considerevole di informazioni. Qui, cerchiamo in poche parole di evidenziare i punti essenziali per la comprensione del funzionamento.

In primo luogo, occorre considerare che il display LCD, all' arrivo della tensione, non fa nulla fino a quando non si trasmettono i comandi per inizializzarlo. 
Ovvero, il controller HD44780 è uno slave che non prende iniziative, ma si limita ad eseguire i comandi che riceve attraverso la sua interfaccia.

In effetti non è che non faccia nulla. L' arrivo della tensione, nei termini indicati sul foglio dati, determina una serie di operazioni iniziali di reset che impongono alcune condizioni di partenza:

  • interfaccia a 8 bit
  • display a 1 linea
  • font 5x8
  • display off
  • cursore off
  • blinking off
  • AC incrementato
  • no shift
  • riempimento della DDRAM con il codice 20h

dopo di che si avvia il suo compito principale, che è quello di presentare sul display il contenuto della DDRAM con le modalità specificate nell' inizializzazione. Siccome all' inizio la DDRAM è riempita di 20h, ovvero del carattere ASCII che indica uno spazio vuoto, il cursore è spento e lo stesso pannello LCD è spento, sul display non appare nulla !

In effetti, regolando al massimo il contrasto, si potrà osservare la linea attiva di caratteri un poco più visibile del fondo. 

Se il controller può governare in completa autonomia diverse combinazioni di linee/caratteri e di metodi di visaulizzazione dei messaggi, è compito dell' utente programmarlo per la modalità voluta:  il modulo LCD richiede obbligatoriamente una qualche inizializzazione. Anche se si trattasse di un display ad una sola riga, che le condizioni di di default del reset hardware per quello che riguarda cursore, font, ecc siano adeguate, occorrerà per lo meno accendere il display, che, per ragioni di riduzione del consumo, all' inizio è disattivato.

Si parla di inizializzazione hardware quando ci si basa sul POR (Power On Reset- reset all' arrivo della tensione di alimentazione) che il controller esegue automaticamente. Il POR avviene al momento dell'applicazione della tensione. A questa segue una più o esteso invio di comandi per far assumere al display le funzioni desiderate.
Si parla di inizializzazione software per una serie di comandi e temporizzazioni che possono essere forniti in qualsiasi momento per far variare le condizioni di lavoro del controller o resettarlo; questo è utile nel caso in cui occorra, durante il funzionamento, riportare il display ad una situazione di partenza certa.

I controller prevedono per default che i dati e i comandi necessari al controllo del display siano passati dall' host attraverso una interfaccia parallela a 8 bit.
Esistono anche controller con accesso seriale clock+dati, SPI o I2C, ma la struttura di base è comunque la medesima.

Il microcontroller host piazza il dato che vuole inviare al display sul bus parallelo, assieme al corretto settaggio delle linee di controllo ausiliarie RS e RW. Fatto questo, viene comandato un impulso positivo sul pin E, che conferma il trasferimento dei dati verso il display o permette la lettura dei dati emessi dal display sul bus.

Dunque, l'interfaccia parallela del controller, in modo nativo, è composta da:

  • un data bus a 8 bit (D0.. D7)
    si può accedere al display con l' intero bus a 8 bit. Però è possibile anche, dopo un opportuno comando, usare solamente i pin da D4 a D7, con un bus a 4 bit. In questo caso i dati e le parole di comando, essendo comunque lunghi 8 bit, vanno trasmessi in due tempi successivi.
     
  • una linea di abilitazione E
    Nella comunicazione parallela uno strobe (Enable) indica al modulo che i dati sono stabilizzati sulle linee parallele e possono essere recuperati, abilitando il display a riceverli. Il livello di abilitazione è alto, mentre invece con E = 0 il display è disabilitato.
    La cattura dei dati è effettuata sul fronte di discesa dell' impulso.
     
  • una linea di selezione dei registri RS
    indica se le linee di accesso portano un dato(RS = 1) o un comando a un registro di controllo (RS = 0).
  • una linea di selezione lettura/scrittura R/W
    seleziona se si vuole scrivere sul display (R / W = 0) o leggere dal display (R / W = 1). Questa linea, essendo i tempi di esecuzione dei comandi più o meno determinati dal clock del controller, può non essere usata nel caso in cui non occorre leggere dal display, utilizzando delle temporizzazioni adeguate. In queste condizioni, RW va collegato alla massa, in modo da abilitare sempre una condizione di scrittura.

Questa struttura, assieme alla corrispondenza tra caratteri ASCII e font del display, rende la scrittura del driver per queste periferiche assai facile e anche, assieme al costo limitato, è una delle ragioni per la loro ampia diffusione.

Più complesso, però, è l' uso delle varie funzioni offerte dal controller, che riguardano ad esempio il cursore (visibile, invisibile, lampeggiante) , la direzione della scrittura (da destra a sinistra o viceversa), lo scrolling delle righe, la scelta dei font, e, per controller più recenti (ad esempio Sitronix ST7036), effetti grafici, di unione di linee, di inversione del display, ecc.
Esiste un set di comandi specifico, standard dall' HD44780 per le azioni basilari, mentre le funzioni extra sono proprie di controller particolari e si basano sulla presenza di registri che nel modello Hitachi di riferimento non esistono.


 


  • Copyright © afg. Tutti i diritti riservati.
    Aggiornato il 12/01/13.