Tecnologia dei Cristalli Liquidi
Controller/Driver HD44780-HW Controller/Driver HD44780-SW
Connettore Modulo LCD Interfaccia Parallela LPT1
Applicazioni Software Progetti Hardware
Download INDICE

 Display LCD

LCD-Applicazioni Software

  Applicazioni Software

PROGETTO n° 01 - 6/13 [23 di 65] 

               

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia · Descrizione dello schema

Aggiornato 13 novembre  2007

Modulo LCD su parallela LPT1 - Gestione di 2 linee, 16 chr/linea - Controller/Driver HD44780
Analisi delle procedure importanti [2 di 7]

 

   Ricostruzione temporale dei segnali con Bus a 8 bit   [segue, 2 di 2]
bulletIl primo compito della procedura è dunque quello di forzare E a 0, RS a 0 o a 1 a seconda che si deva scrivere rispettivamente un codice operativo (istruzione) o un carattere (dato), e R/W a 0.
bulletCiò significa forzare al medesimo valore logico i corrispondenti pin17, pin16 e pin1del connettore della porta parallela.
bulletPer far questo basta scrivere sul registro la giusta combinazione, ma non bisogna dimenticare che le uscite del Registro d'uscita 037AH/027AH della parallela, corrispondenti ai bit3 (associato ad E) e bit0 (associato ad R/W) sono invertiti internamente.
bulletIn definitiva, per generale la prima sequenza di livelli sui segnali del modulo dovremo avere:
bulletper scrivere un codice operativo (istruzione) la sequenza xxxx00x0 sul connettore e la sequenza xxxx10x1 sul Registro d'uscita 037AH/027AH,
bulletper scrivere un carattere (dato) la sequenza xxxx01x0 sul connettore e la sequenza xxxx11x1 sul Registro d'uscita 037AH/027AH.

               

bulletPer rendere la procedura adatta sia alla scrittura di dati che a quella di comandi ho pensato di predisporre in AH un numero che la aiuti ad impostare automaticamente entrambe le situazioni.
bulletse in ingresso AH=00H il byte da scrivere è un codice operativo (istruzione), il segnale RS deve essere posto a 0 e il byte da scrivere del Registro d'uscita 037AH/027AH è xxxx10x1, per esempio 0BH.
bulletse in ingresso AH=01H il byte da scrivere è un carattere (dato), il segnale RS deve essere posto a 1 e il byte da scrivere del Registro d'uscita 037AH/027AH è xxxx11x1, per esempio 0FH.

               

Progetti con Modulo LCD Esercizio IMPEGNATIVO Progetto
NB: se il testo nell'Area  ti sembra strano
     
installa il  font
Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM
 

               

bulletFinalmente tutto è pronto per iniziare la fase di scrittura sul modulo; la configurazione di bit che farà assumere ai segnali il giusto valore viene effettivamente attivata; da notare il piccolo ritardo, successivo all'attivazione, per consentire ai segnali RS e R/W di mantenere il loro valore logico per almeno 60 ns (Tas, Address Setup Time) prima di portare alto il segnale di abilitazione E:

               

               

bulletE' il momento di porre sul bus dati il byte da scrivere; per evitare di perderlo in precedenza (prima istruzione) era stato salvato in BL e da esso viene estratto per essere spedito al Registro d'uscita 0378H/0278H della porta parallela.
bulletDa notare che questa operazione non altera (PUSH/POP) il valore corrente di AL, che contiene ancora in uscita il prezioso codice corrispondente allo stato attuale dei segnali (xxxx10x1 per le istruzioni e xxxx11x1 per i dati):

               

               

bulletIl segnale E è ancora a 0; bisogna portarlo a 1 ed attendere almeno altri 450 ns (Tw, Enable Pulse Width) e comunque almeno 195 ns (Tds, Data Setup Time) prima di riportarlo di nuovo a 0.
bulletLe istruzioni seguenti, con l'aiuto della AND, forzano a 0 solo il bit3 e quindi solo il segnale E a 1 (per via dell'inversione interna) lasciando inalterati RS e R/W:

               

               

bulletE' arrivato il momento di scrivere il byte presente sul bus dati nella memoria del controller del modulo: poichè l'evento si manifesta sul fronte di discesa di E è necessario riportarlo a 0.
bulletLe istruzioni seguenti, con l'aiuto della OR, forzano a 1 solo il bit3 e quindi solo il segnale E a 0, per via dell'inversione interna) lasciando inalterati RS e R/W.
bulletLa procedura di ritardo è chiamata perchè il dato deve essere mantenuto sul bus almeno altri 10 ns (Th, Data Hold Time) dopo che il segnale E è tornato basso:

               

               

bulletLa Procedura Out_By8 è finalmente terminata; poichè nel caso di gestione con bus a 4 bit è necessario chiamarla 2 volte, il valore del byte da scrivere sul modulo è lasciato inalterato in uscita, prelevato da BL, in cui era stato salvato in precedenza (prima istruzione):

               

    

Pagina Precedente Display LCD Pagina Successiva PROGETTO n° 01 - 6/13   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
23 di 65
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

    

Display LCD » Tecnologia dei Cristalli Liquidi | Controller/Driver HD44780-HW | Controller/Driver HD44780-SW
Connettore Modulo LCD | Interfaccia Parallela LPT1 | Applicazioni Software | Progetti Hardware Download | INDICE
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati