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 |
|