ESERCITAZIONE # 12b
Esecuzione
Per verificare se il display è ok, una volta applicata tensione, senza
ancora attivare il programma, il display stesso dovrà aver effettuato il reset
hardware. Ruotando il contrasto verso 0 volt si visualizzerà la prima riga con
tutti i caratteri riempiti di un rettangolo scuro (o chiaro, a seconda della
presenza o meno della retro illuminazione); questo indica che il display,
almeno in via di massima, è funzionante. Qui
maggiori informazioni.
Altre informazioni su possibili problematiche nell' uso dei moduli LCD a
caratteri, le trovate qui.
Nel nostro caso è stato usato un display NHD0216KHZ-NBW-BBW-L di Newhaven,
reperibile ad esempio da DigiKey.
Si tratta di un 2 righe da 16 caratteri, fondo blu con scritte in bianco, retro
illuminato.
Non corre la Rs perchè il costruttore l' ha già montata a bordo del circuito
stampato. La retro illuminazione richiede meno di 80 mA.
Ovviamente si potrà utilizzare qualsiasi altro display che sia 2x16 e
HD44780 compatibile. Se si utilizza un display diverso occorrerà modificare il
modello locale del modulo.
Una volta assemblato il sorgente e caricata la memoria del PIC, basta lanciare
il programma con
Run e, se tutto è a posto, il display visualizzerà il test.
Se questo non succede, dopo aver verificato con cura i collegamenti, provate
a regolare il contrasto: i caratteri dovranno apparire chiaramente.
Leggendo il sorgente, si troverà una notevole quantità di nop prima delle varie funzioni;
essi non sono funzionali al programma, ma sono stati inseriti solamente per poter
introdurre con facilità breakpoints di arresto dell' esecuzione per un analisi
passo-passo del programma.
Il programma di test effettua le seguenti operazioni:
- inizializza I/O per il display
- esegue controlli sulle linee, sul cursore e su varie funzioni del package
- scrive messaggi utilizzando le funzioni temporizzate del package
- visualizza il set di caratteri del modulo con il relativo valore
esadecimale
- carica un set di caratteri in CGRAM e li visualizza
Qui un filmato dell' esecuzione del test.
Il package consente di richiamare gli entry point resi disponibili dalle
librerie di subroutine e di macro ed utilizzarli in qualsiasi punto del programma.
L' uso della libreria ci permette di impiegare le sue macro-funzioni senza
interessarci di come esse operino; ci interessano solo come blocchi logici che,
a fronte di un ingresso, generano una ben determinata uscita.
Sempre riguardo alle librerie, il programma di test utilizza anche la già
vista libreria per commutare le frequenze disponibili nel sistema di clock
interno dei PIC18F, viste nell' Esercitazione
5.
Il package del driver, il progetto di MPLAB e le librerie accessorie sono
scaricabili qui per la versione con
RW e senza
RW.
Espansioni possibili dell' esercitazione possono essere:
- usare moduli LCD differenti e scrivere il file di LocalModel
necessario
- variare i parametri nel LocalModel allo scopo di verificare le
possibilità di riduzione dei tempi
- verificare il funzionamento con diverse lunghezze dei cavi di collegamento
tra microcontroller display
- ideare test aggiuntivi, ad esempio di lettura della RAM
- implementare altri simboli
per la CGRAM
|