Decodifica della tastiera
Tastiera Esadecimale
Una tastiera esadecimale consiste di una matrice di tasti disposti su una griglia di 4 righe e 4 colonne. I tasti sono collocati all'intersezione di ciascuna riga con una colonna. Un livello 1 viene applicato in successione ad ogni linea di colonna. La pressione di un tasto deve fermare la rotazione del livello 1 in corrispondenza della colonna in cui c'è il tasto premuto e deve attivare un livello 1 anche sulla stessa riga.

Leggendo il numero di riga e il numero di colonna contenenti il livello 1 si risale al tasto premuto.

La rotazione del livello 1 sulle linee di colonna viene ottenuta tramite un circuito Shift Register. Questo possiede:
Il clock è messo in AND con il segnale che indica che c'è un tasto premuto.

schema

Pulsante a rilascio
Modificare il tipo di funzionamento del switch facendo clic con il tasto destro sul switch e scegliendo set Switch type. Nel riquadro di dialogo scegliere Push to make




Decodifica della tastiera
Nel circuito precedente cancellare i LED e completare il circuito applicando le porte OR che forniscono la codifica in BCD del tasto premuto.
Si deve notare che il circuito mostrato fornisce decodifica 0 anche quando nessun tasto è premuto, pertanto la decodifica si dovrebbe confermare con l'attivazione di un ulteriore segnale che indichi, ad esempio, la condizione di tasto premuto.



Le 4 porte OR costituiscono la sezione di codifica in esadecimale del tasto premuto. Le espressioni booleane dei bit A, B, C e D del codice sono:
A = C1 + C3
B = C2 + C3
C = R0 + R2
D = R0 + R1

che sono ottenute dalla seguente tabella di verità:
TastoR3R2R1R0 C3C2C1C0 DCBA
0 1 0 0 0 0 0 01 0 0 0 0
1 1 0 0 0 0 0 10 0 0 0 1
2 1 0 0 0 0 1 00 0 0 1 0
3 1 0 0 0 1 0 00 0 0 1 1
40 1 0 0 0 0 01 0 1 0 0
5 0 1 0 0 0 0 10 0 1 0 1
6 0 1 0 0 0 1 00 0 1 1 0
7 0 1 0 0 1 0 00 0 1 1 1
8 0 0 1 0 0 0 01 1 0 0 0
9 0 0 1 0 0 0 10 1 0 0 1
A 0 0 1 0 0 1 00 1 0 1 0
B 0 0 1 0 1 0 00 1 0 1 1
C 0 0 0 1 0 0 01 1 1 0 0
D 0 0 0 1 0 0 10 1 1 0 1
E 0 0 0 1 0 1 00 1 1 1 0
F0 0 0 1 1 0 00 1 1 1 1