Tutorials - Elettronica

 
 

Caratteri CGRAM nei display LCD
 a matrice


DATO e MATRICE

Va fatta qui una ben chiara distinzione, che, a prima vista, è fonte di seria confusione. Alla visualizzazione di un simbolo partecipano due elementi differenti:

  • il dato a 8 bit

  • la matrice di uscita dal CG, ovvero i 40 bit

Il dato contenuto nella DDRAM è un codice a 8bit, che è stato inviato dall' host sul bus del controller.
Esso viene trattato automaticamente dal controller e messo in ingresso del generatore di caratteri, alla cui uscita sono disponibili i 40 bit che formano la matrice del carattere. 
Quindi esiste una coincidenza tra un certo dato, che diventa indirizzo del generatore di caratteri e l' uscita del CG, che corrisponde al dato in esso contenuto in quella particolare area indirizzata.

La tabella che descrive questa corrispondenza è presente sul foglio dati del controller.

Questo a lato è il set di caratteri A02 del controller HD44780.

Agli indirizzi di ingresso da 10h a FFh corrispondono lettere, numeri e simboli ASCII, oltre a caratteri di alfabeti non europei, lettere accentate, simboli vari.

Quindi, inviando, ad esempio, il codice 9Ah come dato, si presenterà a display il carattere omega minuscolo; inviando il dato 3Fh si visualizzerà il simbolo del punto interrogativo.

Ma se inviamo come dato un valore compreso tra 00h e FFh ?

Nella tabella, questi valori non hanno alcun carattere corrispondente, dato che essi vengono deviati alla tabella della CGRAM, dove corrispondono ai caratteri introdotti dall' utente.

L' uscita del CG è costituita da una sequenza di 40 bit che il controller dispone sulle linee COM e SEG che comandano rispettivamente righe e colonne  il pannello LCD

Dunque, i 40 bit di uscita del CG vanno a formare il simbolo presentato in una zona di visualizzazione del display.

Un carattere 5x8 ha come base questa matrice. I punti visibili, all' incrocio tra righe e colonne, possono essere scuri su fondo chiaro (tipico dei modelli non retro illuminati) o chiari su fondo scuro (tipico dei pannelli dotati di retro illuminazione).

In ogni caso, se il bit inviato è a 1, il punto all' incrocio corrispondente si accenderà, mentre gli altri resteranno invisibili. Ad esempio, nella figura a lato, la cifra 6 è presentata dai 40 punti di cui la prima fila ne ha solo tre accesi, la seconda e la terza uno, la quarta tutti e così via.

Essendo necessarie 8 righe, occorreranno 8 locazioni di ROM da 5 bit ciascuna per definire un carattere. Nell' esempio, il contenuto delle 8 celle sarà:

Locazione Punti Contenuto
binario hex
1 0 1 1 1 0 01110 0Eh
2 1 0 0 0 0 10000 10h
3 1 0 0 0 0 10000 10h
4 1 1 1 1 1 11111 1Fh
5 1 1   1 1 11011 1Bh
6 1 1   1 1 11011 1Bh
7 1 1 1 1 1 11111 1Fh
8 0 0 0 0 0 00000 00h

Dalla tabella vista prima possiamo osservare che il simbolo '6' è accessibile inviando al CG l' indirizzo 36h.
Questo si effettua, come detto, scrivendo 06h in DDRAM come dato.

Per l' utente il processo di trasformazione di questo dato in immagine sul pannello LCD è del tutto trasparente e si limita solamente a scrivere in DDRAM il codice a 8 bit del simbolo da rappresentare. 
Dal foglio dati del controller l' utente può conoscere la corrispondenza tra dato inviato e simbolo ottenuto; anzi, se il simbolo voluto è un carattere ASCII, solitamente le tabelle dei CG fanno corrispondere i principali caratteri alfanumerici con il relativo valore ASCII standard, facilitando al massimo la scrittura sul display. Quindi, ad esempio, volendo scrivere sul display il simbolo ora visto, basterà:

movlw  '6'
call   senddatatolcd

La conversione in punti, l'invio dei punti all' LCD, le temporizzazioni, ecc. sono tutte operazioni che il controller svolge autonomamente. Veramente comodo, tanto da far guadagnare a questi moduli LCD la denominazione di "intelligent display".


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 03/12/12.