Collegamento porte di input/output
Senza porte di ingresso/uscita (o input/output o I/O) un sistema a microprocessore è completamente isolato dal mondo esterno, può eseguire un programma anche complesso, ma non ha nessuna via per segnalare i risultati o acquisire informazioni, fossero anche solo l'accendere un diodo LED o "avvertire" la pressione di un pulsante.

Il collegamento di porte di ingresso/uscita è analogo a quello delle memorie, con la differenza che si usano solo i primi 8 bit del BUS indirizzi (A0..A7) e si usa il segnale di controllo IORQ invece che MREQ. C'è sempre l'address decoder che determina a quale indirizzo sono mappate le porte e che genera i segnali di abilitazione, in questo esempio chiamati ADDR1 e ADDR2. Questi vengono poi combinati in OR con i segnali di lettura/scrittura del BUS dello Z80 e si ottengono i singoli impulsi di comando delle porte.
 

Le porte, nel caso più semplice rappresentato in figura, sono un registro latch a 8 bit (che all'arrivo dell'impulso di scrittura sul pin T memorizza il valore presente sul bus dati D0..D7 e lo propaga sulle sue uscite Q0..Q7 mantenendolo stabile) e un buffer three state (che quando riceve il segnale di lettura su OE propaga i valori presenti sui suoi ingressi E0..E7 sul bus dati affinchè il processore possa leggerli).

Nel caso in assoluto più semplice l'address decoder può non esistere neppure, e si può mandare il segnale IORQ direttamente alle porte OR, in questo caso le porte risponderanno a tutti gli indirizzi, in quanto il valore dei bit del BUS indirizzi non viene controllato, in altre parole OUT (0),A sarà del tutto equivalente a OUT (12),A o OUT (255),A, il risultato sarà sempre che il valore di A verrà inviato all'unico latch presente:
 


Integrato SN74LS374

Questo integrato contiene 8 flip flop di tipo D e permette di realizzare un registro (o porta di uscita) a 8 bit, memorizza i livelli presenti su D0..D7 durante il fronte di salita del segnale T e li porta sulle uscite Q0..Q7 mantenendoli stabili fino al prossimo impulso su T. Il pin OE va collegato a massa per abilitare le uscite che altrimenti sono in alta impedenza.

Integrato SN74LS244

Questo integrato è un buffer three state, quando OE (abilitazione uscite) è alto le uscite Q0..Q7 sono in alta impedenza (praticamente scollegate), quando OE è basso gli ingressi E0..E7 vengono propagati sulle uscite. 

Ci sono due pin OE perchè l'integrato internamente è diviso in due sezioni da 4 bit, i due pin OE vanno collegati tra loro. 

Con la schedina base della pagina connessione memorie e un sistema minimo di porte composto da un latch in uscita, un buffer in ingresso e un 7432 (per la combinazione di IORQ con WR e RD), è già possibile realizzare un mini sistema funzionante completo, che può eseguire dei programmi e "comunicare" con l'esterno tramite 8 fili in uscita e 8 in ingresso. Questi fili possono essere collegati a pulsanti, interruttori, sensori (che forniscono un segnale digitale TTL), e possono comandare transistor, diodi LED, optoisolatori e altri integrati TTL. Per leggere lo stato dei segnali di ingresso si effettua un'operazione IN A,(0) e si controllano i vari bit di A che riportano la "fotografia istantanea" dei livelli logici presenti sugli ingressi della porta al momento della lettura, per impostare i livelli in uscita dalla porta di out si preparano i bit in A e si effettua un OUT (0),A

Cliccare sul disegno per vedere lo schema elettrico
 
NOTA: Degli integrati 74374 e 74244 esistono anche le versioni CMOS HC o HCT, queste sono preferibili perchè consumano molto meno, sono molto più veloci e forniscono segnali con livelli di uscita più precisi e squadrati rispetto a una normale logica TTL di tipo LS. Nel caso si usi come porta di ingresso un 74244 CMOS gli ingressi non devono essere lasciati scollegati, vanno bloccati a 1 con una resistenza da 10Kohm.

Pagina e disegni realizzati da Claudio Fin