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° 04 - 5/11 [52 di 65] 

               

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia · Descrizione dello schema
Modulo LCD su parallela LPT1 - Editor Avanzato di 2 linee, 40 chr/linea - Controller/Driver HD44780
Analisi del Codice Sorgente [3 di 3]

               

bulletIl loop di attesa tasti è certamente la più importante parte di codice assembly del programma principale.

               

bulletLa sua efficienza regola e qualifica tutto il progetto, per cui è bene conoscere le tecniche e i trucchi  per gestire al meglio la tastiera; se non l'hai ancora fatto ti consiglio di leggere le 5 pagine dedicate alla Procedura KEYwait, una delle prestigiose procedura della libreria Giobe.ASM.

               

bulletLa struttura d'attesa è pressocchè identica a quella del progetto precedente ed è raccolta nella seguente casella di testo:

               

Progetti con Modulo LCD Esercizio MOLTO 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

               

bulletLa chiamata CALL KEYwait lascia in AL con il codice Ascii e in AH il codice di scansione del tasto premuto, informazioni più che sufficienti per stabilire con certezza la richiesta di un preciso compito da eseguire.

               

bulletIl progetto prevede 3 categorie di tasti e la tecnica di indagine proposta nelle pagine dedicate alla Procedura KEYwait stabilisce delle priorità insindacabili:
bulletper primi vanno indagati i tasti Funzione (nel nostro caso F1 e F2) e i tasti Funzionali (nel nostro caso End, PgUp, PgDn, Home e le 4 frecce), perchè sono caratterizzati dall'avere codice Ascii uguale a 00H; il codice assembly verifica l'appartenenza a queste categorie (CMP AL,00H) e si accinge a dedicare loro un supplemento d'indagine (JE KeyFunz)
bulleti tasti rimanenti sono tutti chiamati a rappresentare un codice Ascii standard, per lo più lettere, numeri, interpunzione,...; ma tra essi una piccola categoria va indagata prima degli altri: quelli che portano simboli o parole riconducibili ai caratteri Ascii di controllo (nel nostro caso Invio, Backspace e Esc)
bullettutti gli altri sono caratteri Ascii stampabili e subiranno il medesimo trattamento (JMP Serv_Chr): finiranno sui 2 visualizzatori, LCD e a video.

               

bulletSebbene il dettaglio delle istruzioni utilizzate sia comprensibile solo dopo aver studiato con pazienza le più volte citate 5 pagine di KEYwait posso farti notare alcune particolarità:
bulletla discriminazione tra i tasti Funzione e i tasti Funzionali avviene con riferimento ad AH, CMP AH,....; la cosa è chiara se si ricorda che il loro codice Ascii è nullo (cioè per essi  AL è uguale a 00H) per cui non rimane che affidarci al codice di scansione (comunque disponibile in AH)

               

bulletper il riconoscimento dei tasti di servizio ho fatto ricorso a etichette, piccole parole onomatopeiche, definite all'inizio del programma con l'aiuto della pseudooperazione EQU, chiamate a sostituire i numeri dei rispettivi codici (ascii o di scansione), difficili da ricordare (l'elenco completo è scaricabile qui)

               

bulletquando un tasto viene riconosciuto si provvede al suo servizio saltando ad una zona di codice ad esso dedicata (per esempio JMP Serv_F1 o JMP Serv_Up...); è assolutamente importante ricordare che questi codici di Servizio (documentati tra qualche pagina) non sono procedure, cioè non devono terminare con RET ma, a loro volta, devono rientrare con un salto all'inizio del loop d'attesa, cioè JMP Rientra

               

bulletuna cosa altrettanto importante (pena errori del tipo error A2053: Jump out of range by nnn byte(s)) è quella di imparare a rovesciare la logica; si tratta di un concetto semplice ed efficace per gestire i salti condizionati (come JE): se il punto da raggiungere è troppo lontano il compilatore si infastidisce e segnala Jump out of range (salto fuori range... non ce la faccio), aggiungendo di quanti bytes siamo oltre il possibile (..by 27 bytes). Se per esempio JE Serv_F1 non ce la fa, basta rovesciare la logica, cioè saltare subito sotto se NE (JNE KeyFun0) saltando a Serv_F1 in modo incondizionato, JMP Serv_F1 (poichè i servizi di tutti i tasti sono molto distanti dal punto che ne rileva la necessità, questa tecnica è applicata per ciascun di essi)

    

Pagina Precedente Display LCD Pagina Successiva PROGETTO n° 04 - 5/11   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
52 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