Giobe®2000
Pagina creata il 01/09/2012 [4477 giorni fa]

Come Funziona... Indirizzi Base Area Comunicaz. Bios
Registri Livello Hardware Livello BIOS Livello DOS
Tecniche d'Interruzione Connettori Cavi Interfaccia
Applicazioni Software Applicazioni Hardware Download INDICE
  Porta Parallela
Applicazioni Software Applicazioni Software PROGETTO n° 15 - 6/6 [150 di 189] 
Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia
Porta Parallela - Effetto Blanking - Con Decoder con memoria 9368
Analisi delle procedure importanti

La procedura Out08bit, dedicata alla gestione dell'interfaccia hardware costituita dai due decoder con memoria 9368, è descritta nella seguente casella di testo:

Progetti con la Porta Parallela Esercizio MOLTO FACILE Progetto
015
NB: se il testo nell'Area ti sembra strano
installa il font Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile Scarica il codice Sorgente

Essa è chiamata una-tantum solo per provvedere ad accendere i due digit con il codice ricevuto in ingresso in AL, il byte 00H, spedito direttamente sui pin 2÷pin 9 del connettore della porta parallela con un OUT sul suo Registro d'uscita 0378H/0278H e, di fatto, fornito stabilmente in ingresso anche ai due decoder.

Non appena il digit accende i suoi segmenti, in coerenza con il valore dei bit racchiusi nella parola ricevuta, il numero esadecimale di quest'ultima è visualizzato al centro del monitor, per dare la possibilità di verificarne il valore: di questo si occupa la sottoprocedura CALL Byt2Asc, che mette a video i due caratteri ascii corrispondenti ai due nibble del byte corrente, ancora disponibile in AL, come detto entrambi "0".

Ma in questo caso, l'azione più interessante è gestita dalla parte affidata ai due Servizi previsti per la gestione di questo progetto: non si  tratta di procedure ma di codice specificatamente pensato per rispondere propriamente alla pressione del tasto relativo; a ciascuno di essi si accede infatti con un salto condizionato (dalla flag di Zero, JZ Address, la cui presenza a 1 stabilisce che l'evento si è verificato e va servito) e vi si esce con un salto incondizionato (JMP xxx01) direttamente in ingresso al loop d'attesa (.. non esiste dunque RET). Entrambe sono visibili nella seguente casella di testo:

Progetti con la Porta Parallela Esercizio MOLTO FACILE Progetto
015
NB: se il testo nell'Area ti sembra strano
installa il font Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile Scarica il codice Sorgente

Ciascuno dei due Servizi (IncByt e DecByt) si limita semplicemente ad incrementare o decrementare il valore trovato nella variabile BlkTIME, usato per stabilire contemporaneamente sia la durata t1 della parte alta che quella t2 della parte bassa della forma d'onda quadra asimmetrica necessaria per il controllo della luminosità; i due tempi sono complementari tra loro e la loro somma t1+t2 è pari al periodo T, mantenuto pari a 22 ms.

Se l'aspetto dell'onda quadra è quello di un treno d'impulsi di breve durata, molto distanziati tra loro (tipico di un duty cycle molto basso, per esempio del 5%) l'effetto sui digit è quello di tenerli (quasi) spenti, mentre se l'onda quadra assomiglia ad un treno d'impulsi molto lunghi, praticamente attaccati l'uno all'altro (tipico di un duty cycle molto alto, per esempio del 95%) l'effetto sui digit è quello di accenderli (quasi) al massimo; la figura seguente mostra i segnali necessari rispettivamente per una discreta (duty cycle pari a 86%) e una bassa (duty cycle del 14%) accensione dei digit; l'effetto ottenuto è legato al valore medio del segnale imposto su BI, più vicino a 1 logico nel primo caso e allo 0 nel secondo.

Progetti con la Porta Parallela Esercizio MOLTO FACILE Progetto
015
  Mostra l'Effetto Prova l'eseguibile Scarica il codice Sorgente
Duty Cycle per controllo del Blanking su Digit FND500 con Interfaccia 9368

L'effettiva onda quadra TTL (cioè con valori tra 0,2 V e 2,4V) viene generata forzando prima a "1" (per il tempo t1) e poi a "0" (per il tempo t2) il bit0 del Registro di Controllo 037AH/027AH, per assicurare sul pin1 del  connettore della parallela (in virtù del fatto che il valore del bit è invertito internamente) rispettivamente prima un livello basso e poi un livello alto; questa sequenza, offerta all'ingresso BI/RBO (pin4) del decoder con memoria 9368, produce lo spegnimento di tutti i segmenti dei Digit per un tempo t1 e la loro successiva riaccensione per un tempo t2.

Da notare che le temporizzazioni sono rese possibili dalla procedura Del_1, in grado di generare un ritardo fisso di 1 millisecondo con particolare precisione, appoggiandosi per questo al Timer di sistema del personal computer; spetta poi ai due loop interni (Blk_01 e Blk_02) richiamarla il numero di volte necessario per dare all'onda quadra il duty cycle desiderato.

La creazione di ogni periodo T=t1+t2 deve continuare senza interruzioni, per garantire l'effetto Blanking in modo continuativo; per questo è necessario appoggiarsi alla Funzione 01H (MOV AH,01) della procedura a livello BIOS nota come INT 16H, che consente di verificare la eventuale pressione di tasti senza fermarsi; non appena viene rilevata la pressione di un tasto qualunque viene infatti imposto il rientro nel Main Loop, per cambiare comando o per terminare il nostro test.

Pagina Precedente Porta Parallela Pagina Successiva PROGETTO n° 15 - 6/6 Torna alla Home della Sezione VERIFICA la validità della pagina!! Torna al Menu di "Dentro al Computer"
150 di  189
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
Parallela  »  Come Funziona..|Indirizzi Base|Area di Comunicazione Bios|Cavi
Livello Hardware|Livello BIOS|Livello DOS|Tecniche d'Interruzione|Connettori
Applicazioni Software|Progettazione|Interfaccia|Indice
Home
Pascal|Manuali|Tabelle|Schede|Pubblicazioni
Tutorial Assembly|Palestra Assembler
Nuovo Ambiente Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
Copyright ® 2001-2012 -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati