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° 06 - 9/12 [95 di 189] 

               

Analisi del Problema · Analisi del Codice · Procedure importanti · Schema interfaccia · Descrizione dello schema
Porta Parallela - INPUT di Dati a 8 bit - Uso di un convertitore ADC0804
Analisi delle procedure importanti [2 di 3]

 

bulletLa disponibilità di soli 5 bit d'ingresso dalla porta parallela (nella classica configurazione Centronics SPP) obbliga ad una lettura in 2 tempi di 4 bit alla volta, assumendo prima la parte alta e poi la parte bassa del byte frutto della conversione.
 
      Effettiva Lettura del bus dati del Convertitore
bulletLa Procedura Mpx_Dato è, in realtà, una parte della Procedura Leggi, descritta nella pagina successiva: il suo compito è quello di gestire l'acquisizione degli 8 bit generati dal convertitore ADC0804.
bulletAd essa è demandato il compito di trasformare il byte reso disponibile dal convertitore poco dopo l'attivazione di RD, in 2 gruppi da 4 bit, letti poi in sequenza tramite il Registro d'ingresso 0379H/0279H.
bulletLa selezione delle 2 quaterne è resa possibile dal multiplexer 74LS157, il cui ingresso di selezione A/B (pin 1) è controllato mediante il Registro d'uscita 037AH/027AH.
bulletLe istruzioni che la compongono sono già state più volte descritte nei progetti precedenti:

               

Progetti con la Porta Parallela Esercizio FACILE 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 lettura dei 4 bit più significativi del bus dati dell'ADC (DB7÷DB4, rispettivamente attaccati ai pin 2, 5, 11 e 14, ingressi di tipo "A" del '157, rispettivamente sui pin 11, 10, 12 e 13 del connettore della parallela) è ottenuta forzando uno 0 sull'ingresso di selezione A/B (pin 1 del selettore '157) cioè un 1 (essendo invertito internamente dall'hardware) sul bit0 del Registro d'uscita 037AH/027AH, disponibile sul pin 1 della porta parallela:

               

               

bullet Dopo il breve ritardo (per consentire l'assestamento del segnale) i dati da leggere sono stabili sui pin 11, 10, 12 e 13 del connettore della parallela e possono essere letti in sequenza sui bit7, bit6, bit5 e bit4 del Registro d'ingresso 0379H/0279H.
bullet Poichè nel progetto viene coinvolto solo il bit0 la scelta di forzare a zero tutti gli altri non si ritiene sconveniente e non crea disagio.
bullet Lo schema mette in evidenza che, dopo la lettura, lo stato dei 4 bit DB7÷DB4 del bus dati dell'ADC è disponibile nei 4 bit più significativi del registro, sebbene il valore logico proposto sul pin 11 della porta parallela venga invertito internamente dall'hardware, prima di essere letto sul bit7.
bullet Per questo, dopo la fase di lettura, il programma deve provvedere ai relativi aggiustamenti:

               

               

bullet L'operazione di XOR di AL con 80H rovescia il valore logico del solo bit7, lasciando inalterati gli altri; in questo modo si pone rimedio alla inversione prodotta internamente da hardware.
bullet Per facilitare la prossima ricomposizione del dato, è conveniente azzerare i 4 bit bassi, con la classica maschera prodotta dall'istruzione AND (AND AL,0F0H).
bullet La prima fase d'acquisizione è dunque terminata: l'informazione così ottenuta, nella forma xxxx0000B, viene salvata nel registro BL.
 
bullet E' ora necessario spostare il cursore del multiplexer 74LS157, in modo da collegare ora  i 4 bit meno significativi del bus dati dell'ADC (DB3÷DB0, rispettivamente attaccati ai pin 3, 6, 10 e 13, ingressi di tipo "B" del '157, ancora disponibili sui pin 11, 10, 12 e 13 del connettore della parallela).
bulletPer questo scopo si forza un 1 sull'ingresso di selezione A/B (pin 1 del selettore '157) cioè un 0 (per l'inversione hardware interna) sul bit0 del Registro d'uscita 037AH/027AH, disponibile sul pin 1 della porta parallela:

               

               

bullet La procedura è identica a quella della fase precedente: il breve ritardo imposto rende stabili i dati da leggere sui pin 11, 10, 12 e 13 del connettore della parallela, per cui possono essere di nuovo letti in sequenza sui bit7, bit6, bit5 e bit4 del Registro d'ingresso 0379H/0279H.
bullet Ora nei 4 bit più significativi di AL è disponibile lo stato dei 4 bit DB3÷DB0 del bus dati dell'ADC, non dimenticando che il valore logico del bit7 è sempre invertito internamente dall'hardware rispetto al valore assunto dal pin 11 della porta parallela:

               

               

bullet Per questo, dopo la fase di lettura, il programma deve provvedere ai relativi aggiustamenti; in primis l'istruzione XOR di AL con 80H rovescia il valore logico del solo bit7 lasciando inalterati gli altri.
bulletSuccessivamente la sequenza delle 4 SHR sposta in basso i 4 bit alti, immettendo al loro posto degli 0: il dato in AL è dunque, alla fine, del tipo 0000yyyyB, con yyyy pari al valore logico effettivo dei 4 switch meno significativi, pronto per essere integrato con quello assunto in precedenza (già disponibile nella forma xxxx0000B).
 
bullet La fase finale del servizio software di questo progetto consiste nel ricompattare le 2 metà, bassa e alta, in un unico byte, da consumare come meglio si ritiene; in questo punto del programma i 4 bit più significativi sono in BL, in forma xxxx0000B, mentre quelli meno significativi sono in AL, nella forma 0000yyyyB.

               

               

bullet La presenza degli 0 nei 2 bytes componenti facilita la ricomposizione del dato: basta infatti l'operazione OR logica tra AL e BL e il dato è ricomposto.
bulletCon questo la procedura di lettura è terminata: dopo l'istruzione precedente il dato letto dall'ADC sarà lasciato in AL, nella forma finale xxxxyyyyB = XYH.

    

Pagina Precedente Porta Parallela Pagina Successiva PROGETTO n° 06 - 9/12   Torna alla Home della Sezione Lezioni - Vai al DownLoad dei files DOC Torna al Menu di "Dentro al Computer"
95 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 | Registri | Cavi
Livello Hardware | Livello BIOS | Livello DOS | Tecniche d'Interruzione | Connettori
Applicazioni Software | Progettazione | Interfaccia | 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