Un valido dispositivo di output quando si lavora con i controllori è il display LCD. Ne esistono diversi per dimensioni (numero di righe e lunghezza righe). Quello mostrato nella foto è 2×16, ma l’interfacciamento è lo stesso anche con altre dimensioni. Il protocollo qui descritto (con allegato codice sorgente in C) prevede un interfacciamento di 4 bit di dati (oltre ai 3 di controllo).
I collegamenti del display
(Fare comunque riferimento alla documentazione tecnica del produttore. Nel mio caso si tratta di Hitachi HD44780)
Pin Nome
1 Vss
2 Vdd
3 Contrasto (collegare a massa)
4 RS
5 RW (di solito a massa)
6 E
7 D0 (n.c. per interfacciamento a 4 bit)
8 D1 (n.c. per interfacciamento a 4 bit)
9 D2 (n.c. per interfacciamento a 4 bit)
10 D3 (n.c. per interfacciamento a 4 bit)
11 D4
12 D5
13 D6
14 D7
Dalla tabella vediamo che per utilizzare un collegamento a 4 bit dobbiamo utilizzare i 4 più significativi del display, il register Select (RS) e il pin Enable (E)
Protocollo di comunicazione
- Portare RS a 1 per invio dati, 0 per invio di comando
- Portare E a 1
- Valorizzare i 4 bit più significativi
- Portare E a 0
- Portare E a 1
- Valorizzare i 4 bit meno significativi
- Portare E a 0
In caso di interfacciamento a 8 bit, i dati vanno inviati tutti in una volta
Inserire un ritardo di almeno 2ms tra ogni operazione
Inizializzazione del display
Appena acceso, il display, va inizializzato, inviando i comandi base. Primo fra tutti la selezione del modo di comunicazione a 4 o 8 bit.
La sequenza esatta è visibile dal codice sorgente scaricabile qui
Inviare caratteri al display
Dopo l’inizializzazione è possibile inviare i caratteri trasmettendo il loro valore ASCII.
Il display incrementa automaticamente la posizione, quindi non è necessario fare nulla tra un carattere ed il successivo
Il codice allegato
Il codice che allego l’ho testato con controllori PIC (!6f506, 16F84, 16F689 e 16F887), ma è utilizzabile con tutti i controllori che hanno almeno 6 piedini disponibili.