| L'osservazione dello schema mette in evidenza:
| è necessaria una fonte di alimentazione esterna (di
+5V) |
| la massa
dell'alimentatore deve essere unita con quella della porta parallela: la
conoscenza del suo
connettore suggerisce la
disponibilità di ben 8
pin (dal
pin 18 al
pin 25);
per questa realizzazione si è scelto il
pin 18 |
| le 4 uscite
del bus formato dalle
16 uscite (collegate a 4 a 4) dei
2
buffer 3-state 74LS244 sono collegate
all'unica porta d'ingresso prevista dall'interfaccia
(usata come input di stato
nei rapporti con la stampante), associate
ad
altrettanti bit del
Registro d'ingresso
0379H/0279H |
| il controllo dei 2 buffer 3-state
è affidato ai rispettivi
2 piedini di abilitazione,
pin 1 e
pin 19:
in questi componenti sono entrambi
attivi bassi per cui, poichè la logica del bus vuole che solo
una delle 4 quaterne di ingressi sia spostata in uscita,
solo una delle 4 abilitazioni dei
buffer deve essere attiva (cioè
bassa) |
| il componente ideale per questa
necessità è dunque un decoder binario da 2 a 4,
disponibile in 2 copie nell'integrato
74LS139:
le sue uscite (attive basse) saranno collegate alle 4 abilitazioni dei
buffer |
| Il controllo delle uscite del
decoder è ottenuto con
l'aiuto di 2 linee d'uscita della parallela, associate al
Registro d'uscita
037AH/027AH;
in dettaglio gli ingressi A1 e B1 sono collegati rispettivamente ai
pin 1
e
pin
14, associati ai
bit0
e
bit1 del registro; è
importante sottolineare che entrambe le linee sono
invertite internamente dall'hardware
della parallela, per cui sarà necessario invertire da software
anche il valore del bit scritti sul registro (per esempio sarà attiva Y0 con
A1,B1=00 e con bit0,bit1=11) |
| i buffers 3-state
sono chiamati a leggere il dato a 16 bit
in 4 tempi, in funzione del valore
applicato ai sui rispettivi piedini di
abilitazione (pin 1 e
pin 19): |
| l'abilitazione del
decoder si esercita attraverso il suo
piedino (G1,
pin 1) di enable (attivo
basso): se è posto a 1 tutte le sue 4 uscite
Y sono alte, cioè
non attive, per cui
anche tutte le abilitazione dei 2 buffer 3-state (pin 1 e
pin 19) sono
non
attive; in questo caso il bus è in alta impedenza e nessuno degli ingressi
risulta leggibile. |
| in questo progetto si è scelto di abilitare
comunque il
'139, forzando
definitivamente a massa il suo piedino (G1,
pin 1) di
enable: in queste condizioni tutte le sue uscite
Y sono a
1 (disattive)
meno una, quella il cui numero
corrisponde al codice binario fornito sui 2 ingressi A1, B1 (per esempio
Y0 con 00 o Y3 con 11):
| con A1,B1=00
(attiva l'uscita Y0) sposta sul bus i 4
bit letti dagli switch sw
0÷
sw 3, collegati agli ingressi di
tipo 1A del primo
'244,
cioè rispettivamente ai suoi
pin
8, 6,
4 e 2. |
| con A1,B1=01
(attiva l'uscita Y1) sposta sul bus i 4 bit letti dagli switch sw
4÷
sw 7, collegati agli ingressi di
tipo 2A del primo
'244, cioè rispettivamente ai suoi
pin 17,
15, 13 e
11. |
| con A1,B1=10
(attiva l'uscita Y2) sposta sul bus i 4
bit letti dagli switch sw 8÷sw 11, collegati agli ingressi di
tipo 1A del secondo
'244,
cioè rispettivamente ai suoi
pin 8,
6, 4 e
2. |
| con A1,B1=11
(attiva l'uscita Y3) sposta sul bus i 4 bit letti dagli switch sw
12÷
sw 15, collegati agli ingressi di
tipo 2A del secondo
'244,
cioè rispettivamente ai suoi
pin 17,
15, 13 e
11. |
|
| non bisogna sottovalutare il fatto che la linea d'ingresso associata al
pin 11 del
connettore è invertita internamente dall'hardware
della parallela; questo fatto obbligherà il programmatore a invertire
a sua volta da software il valore del bit7, dopo ogni lettura
del registro.. |
| i 16 ingressi sono collegati
agli 16 switch
o sensori
o altro contatto da
leggere. |
| se nessuno degli switch è stato toccato la parola a
16
bit ricostruita dal programma sarà 1111111111111111, 0FFFFH. |
|