http://tomasella.altervista.org/it/elettronica/microcontrollori/LCD16F84.html

Display LCD comandato da PIC16F84

Si tratta di uno dei primi progetti che ho realizzato quando ho cominciato ad utilizzare i microcontrollori, ma che ancora oggi uso molto spesso perchè in molte occasioni utilizzo i display.

Il circuito e il firmware sono entrambi estremamente semplici, infatti lo schema circuitale è il seguente:

schema collegamento LCD - PIC16F84
mentre il codice sorgente scritto in assembly lo potete trovare qui. Metto inoltre a vostra disposizione anche il codice macchina, che potete direttamente caricare sul PIC. Và precisato che questo firmware comunica con il display utilizzando la modalità a 4 bit di dati, la quale risulta leggermente più lenta e un po' più complessa, ma necessita di quattro pin in meno. Un ulteriore pin viene "risparmiato" connettendo a massa l'ingresso R/W del display, lavorando così sempre in modalità di scrittura verso il display.

La prima parte del codice è dedicata alle dichiarazioni, ossia viene indicato il modello del processore sul quale dovrà essere caricato il codice e la relativa libreria, vengono poi dichiarate delle costanti simboliche e successivamente riservato dello spazio per le variabili utilizzate dal programma. Appena dopo l'inizio del programma vero e proprio vengono impostate le funzioni dei singoli pin del microcontrollore, cioè se essi avranno la funzione di ingresso o di uscita. Poi c'è il ciclo principale, che non fa altro che scrivere all'infinito una stringa sul display. Ci sono poi alcune routine (o sottoprogrammi) che hanno delle specifiche funzioni quali inizializzare o pulire il display, inviargli comandi o dati, o produrre delay precisi per il corretto rispetto delle tempistiche di comando.

Per l'alimentazione del circuito è necessaria una tensione stabilizzata di 5V (+/-10%) e di una tensione di circa -5V. Quest'ultima viene impiegata solamente per la regolazione del contrasto e può essere generata in vari modi (uno dei quali è impiegato ad esempio nella demoboard). Non tutti i display necessitano di una tensione negativa per la regolazione del contrasto e quindi, in quei casi, il punto contrassegnato con "-5V" potrà essere semplicemete connesso a massa.

È importante utilizzare un quarzo da 4MHz perchè le tempistiche dei segnali sono calibrate in base alla durata dei cicli di clock. L'impiego di quarzi a frequenza maggiore è sconsigliabile, poiché il display potrebbe non riuscire a rilevare la procedura di inizializzazione e/o i caratteri da visualizzare. Se risultasse necessario aumentare la frequenza di clock si dovranno aumentare i ritardi inseriti per rispettare le tempistiche di comunicazione. Al contrario non dovrebbero esserci controindicazioni se si utilizzassero frequenze di clock inferiori a 4MHz.

Nota sui display LCD compatibili con i miei progetti

Non tutti i display LCD sono uguali! Quelli che uso io nei miei progetti (se non diversamente specificato) sono display LCD testuali, cioè che possono visualizzare solo caratteri alfanumerici (e pochi altri simboli). Ogni display è formato da una matrice di celle, ognuna delle quali può visualizzare un carattere. Esistono, ad esempio, display 1×8 (1 riga e 8 colonne), 1×16, 1×20, 2×16, 2×20, 4×16 eccetera.

foto del display collegato alla demoboard USB

Questo tipo di display generalmente hanno al loro interno uno o più chip che si occupano di pilotare direttamente tutti i segmenti del display (tipicamente ogni carattere è formato da una matrice 5×8 di punti), la backplane e di ricevere in ingresso le informazioni riguardo ai caratteri da visualizzare e altre. I display che uso io montano un chip apposito, l'Hitachi HD44780 (oppure uno equivalente), il quale ha ormai costituito uno standard per i display alfanumerici. Dovrete perciò procurarvi un display compatibile con questo standard (io ne ho trovati a 5 euro nelle fiere di elettronica oppure in campo di recupero, ad esempio su alcune stampanti).

Consiglio inoltre di prestare molta attenzione alla piedinatura dei display perchè non tutti utilizzano la stessa. In particolare alcuni presentano generalmente 16 pin anzichè 14, dove i 2 pin in più servono per poter collegare l'eventuale retroilluminazione. Siccome ho visto sia display con la retroilluminazione collegata ai pin 15 e 16, che display con retroilluminazione collegata ai pin 1 e 2, suggerisco di verificare accuratamente il collegamento. In ogni caso i 14 pin dedicati all'alimentazione e alla comunicazione rispettano sempre lo stesso ordine. Verificate dunque il reale pinout del vostro display e collegatelo in maniera opportuna.

Siccome spesso ho faticato a trovare informazioni precise sullo standard di comunicazione adottato dal chip Hitachi, vi dò il link al datasheet dell'HD44780.



torna all'inizio     Stampa

Valid HTML 4.01 Transitional    Valid CSS