Applicazioni Software |
PROGETTO n° 03 - 2/11 [38 di 65] |
|
|
||
Modulo LCD su parallela LPT1 - Editor di 2 linee, 16 o 40 chr/linea - Controller/Driver HD44780 | ||
Analisi del Problema |
|
Il progetto si occupa della gestione di un Visualizzatore a Matrice di Punti a cristalli liquidi, organizzato su 2 linee da 16 o 40 caratteri ciascuna. |
|
Come negli altri progetti proposti in questa Sezione, il display LCD è montato su un Modulo LCD ed è governato dal controller HD44780, del quale sono disponibili tutti i dettagli, sia sul suo funzionamento hardware che sulle sue necessità software... |
|
Questo progetto è la versione potenziata e ottimizzata del precedente e si basa su un'idea originale di Paolo Rallo; si tratta di una soluzione assembly alternativa, in sintonia con le tecniche e la linea editoriale tipica di ogni altro applicativo di questo Sito. |
|
Come il precedente, realizza in pratica un Editor per LCD, interfacciandosi con la tastiera del PC per il controllo totale della scrittura su un Modulo LCD , garantendo contemporaneamente l'eco a video delle operazioni imposte sul display. | |
La pressione del tasto F1 consente di intervenire sui 2 visualizzatori (LCD e a video), adattandoli al collaudo di 2 diverse tipologie, entrambe a 2 linee, ma con 16 caratteri oppure con 40 caratteri per riga. |
|
La comprensione dell'idea che sta alla base del progetto comporta la conoscenza del modo con cui il controller HD4478 gestisce i caratteri sul suo visualizzatore. | |
Come è noto ciascuna posizione LCD corrisponde ad una delle 80 locazioni di memoria RAM per i dati (detta DDRam, Display Data Random access memory). | |
Ciascuna locazione DDRam può essere indirizzata con un numero esadecimale, da 00H a 27H per i 40 caratteri della prima riga e da 40H a 67H per i 40 caratteri della seconda riga. |
|
Risulta evidente che, variando da 16 a 40 il numero di caratteri per riga, per poter collocare i caratteri in sequenza alternativamente su entrambe le righe bisogna controllare l'indirizzo esadecimale. |
|
Ed è proprio questa la parte più impegnativa del progetto, resa trasparente dall'innocua pressione di F1, ma in realtà piuttosto impegnativa; ogni azione di editing, dalla scrittura vera e propria allo spostamento a vuoto del cursore, dovrà fare i conti con la dimensione desiderata per i display, garantendo comunque la circolarità della scrittura dei caratteri e della posizione del cursore. | |
Per il visualizzatore LCD si dovrà intervenire in modo dinamico sul byte d'indirizzo della DDRam, coinvolgendo le 16+16 locazioni da 00H a 0FH (per la prima riga) e da 40H a 4FH (per la seconda riga) o le 40+40 locazioni da 00H a 27H (per la prima riga) e da 40H a 67H (per la seconda riga). | |
La necessità di riprodurre, contemporaneamente, il medesimo effetto anche sul visualizzatore a video porterà il suo contributo di complessità. |
|
In conclusione, il controllo dell'Editor per LCD garantisce comunque:
|
|
Per il controllo del Modulo LCD il progetto prevede la programmazione della porta parallela standard SPP (Standard Parallel Port) LPT1. |
|
NB: Con i moderni Sistemi Operativi (Windows NT, Windows 2000, Windows XP ) non è più concesso l'accesso diretto alle porte di Input/Output dall'ambiente Assembly o dai linguaggi di programmazione (Pascal, Delphi, Visual Basic ...), come si poteva fare prima con Windows 95/98/ME. |
|
Quando si tenta, come fa il nostro progetto, un Output agli indirizzi Hardware viene generata una segnalazione d'errore di "istruzione protetta" o, semplicemente non succede nulla... |
|
Naturalmente un problema
di questo tipo non poteva rimanere irrisolto:
puoi accedere al driver che restituisce l'accesso
diretto all'Hardware del computer in
ambiente Window2000/NT/XP cliccando su
questo link:
|
|
Display LCD | PROGETTO n° 03 - 2/11 | |||||||
38 di 65 |
|
|
Home |
|
|||||||
|
Motore Ricerca |
|