|
||||||||||||||||||||||||||||||||||||||||||||||
LCD232 - INTERFACCIA SERIALE PER DISPLAY LCD - 4 |
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
Protocollo di comunicazione La comunicazione tra il modulo e il circuito esterno che lo pilota avviene secondo lo standard RS232 per un comunicazione asincrona a 8 bit senza parità. Il modulo e' pensato per essere pilotato da un micro ( per esempio il PIC 16F628A) che implementa lo standard RS232 tramite il modulo USART ma può essere pilotato anche tramite la porta seriale di un PC interponendo un traslatore di livelli. ( circuito con max232). vediamo come devono essere strutturate le istruzioni da mandare al modulo perché questo esegua le varie funzioni. Formato delle istruzioni Per un
display basato sul chipset HD44780, il controllo avviene agendo sui
segnali di controllo RS e RW e mandando
contemporaneamente sul bus dei dati a 8 bit (DB7-DB0) un determinato
dato in base al set predefinito di comandi come da specifica. Quindi
l’istruzione di comando del display comprende un comando definito da
RS e RW a cui si associa un dato passato sul bus
(DB7- DB0). ( per ulteriori informazioni sui display basati su HD44780
scaricate il datasheet)
L’istruzione, nella sua forma più semplice, e’
composta da tre byte:.
cmd
può assumere valori maggiori di quelli definiti da RS e
RW quando serve per attivare le funzioni aggiuntive (cmd>3).
Il byte end ha il valore di fine istruzione che corrisponde al return da tastiera ed e’ il carattere ASCII numero 13 che si ottiene inviando il valore esadecimale ( 0x0D). Struttura delle istruzioni multipla Normalmente, la istruzione singola, inviata con la struttura
prima descritta, viene eseguita subito dopo la fine della
comunicazione. In genere si può avere anche la necessità di
eseguire una set di istruzioni in maniera consecutiva.
con M<= 16 Si possono inviare, in maniera multipla tutte le istruzioni standard ( ovvero quelli definite per il display) e alcune istruzioni aggiuntive. Esempio 1: cancellare il display (funzione clear) Con un collegamento parallelo bisogna settare: RS = 0, RW = 0 con [DB7:DB0] = (01)h (vedi tabella istruzioni). Utilizzando il modulo seriale bisogna inviare la sequenza:
In tal caso si ha la seguente corrispondenza:
Esempio 2: leggere il registro di stato ( busy flag + address counter) Per controllo parallelo bisogna settare : RS=0 RW=1 con [DB7:DB0] = valore del registro di stato. A livello di modulo seriale bisogna inviare:
In tal caso
Successivamente sulla linea TX DATA e’ inviata il valore del registro di stato secondo la notazione:
con dato = valore registro di stato letto Praticamente bisogna utilizzare le stesse istruzioni del caso parallelo inviando serialmente il comando cmd, definito da RS e RW, il dato e, per finire la comunicazione, la stringa di fine istruzione (0x0D).
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
|