Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/ognigiorno.com/wp-content/plugins/math-comment-spam-protection/math-comment-spam-protection.php:1) in /var/www/html/ognigiorno.com/wp-includes/feed-rss2.php on line 8 44780 – OgniGiorno.com https://www.ognigiorno.com insieme tutti i giorni Sun, 13 Mar 2011 20:28:07 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.9 Come pilotare i display LCD tipo HD44780 https://www.ognigiorno.com/2009/03/30/come-pilotare-i-display-lcd-tipo-hd44780.html https://www.ognigiorno.com/2009/03/30/come-pilotare-i-display-lcd-tipo-hd44780.html#respond Mon, 30 Mar 2009 08:12:13 +0000 http://www.ognigiorno.com/?p=254 Read More »Come pilotare i display LCD tipo HD44780]]> 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).

hd44780

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

  1. Portare RS a 1 per invio dati, 0 per invio di comando
  2. Portare E a 1
  3. Valorizzare i 4 bit più significativi
  4. Portare E a 0
  5. Portare E a 1
  6. Valorizzare i 4 bit meno significativi
  7. 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.

]]>
https://www.ognigiorno.com/2009/03/30/come-pilotare-i-display-lcd-tipo-hd44780.html/feed 0