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

               

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

               

bulletDesidero mostrare in dettaglio il loop di attesa tasti, classico di un programma principale fatto a regola d'arte..
bulletIl visitatore curioso sa già tutto, avendo letto con attenzione la descrizione di ogni procedura della libreria Giobe.ASM, prima di cimentarsi con la programmazione.

               

bulletIn particolare conosce il modo migliore per gestire la tastiera, avendo letto le splendide 5 pagine dedicate alla Procedura KEYwait...

               

bulletScorrendo il testo della seguente casella possiamo rinfrescare insieme questi importanti concetti:

               

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° 03 - 5/11   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
41 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