Display 7 Segmenti - I blogs dell`ISIS Leonardo da Vinci

Download Report

Transcript Display 7 Segmenti - I blogs dell`ISIS Leonardo da Vinci

Display a 7 segmenti
Il display a 7 segmenti è un dispositivo composto da 7 diodi luminosi LED
(Light-Emitting Diode) sagomati a forma di rettangolo o meglio a forma di
“segmento” appunto. Dunque mediante una opportuna combinazione di
LED accesi e LED spenti è possibile visualizzare su un singolo display un
singolo carattere.
Per convenzione i segmenti del display
vengono identificati con le lettere da A a G.
Questo è la rappresentazione circuitale
del display: ognuno dei 7 led ha due
connessioni una è a potenziale
costante nullo (è collegato a massa)
e l’altra è collegata al segnale che comanda
l’accensione. Quindi nello schema a destra, CC è
collegato a massa e i segnali da A a G sono i
segnali di controllo. Quando un segnale di
controllo vale ‘1’ il corrispondente LED (quindi il
segmento) si accende.
1
Display a 7 segmenti
Supponiamo ora di voler visualizzare, su un display a 7 segmenti, una cifra
BCD, definita dai 4 segnali X[3..0] Il problema da risolvere è dunque
transcodificare, cioè “tradurre” il codice BCD nel codice a 7 segmenti.
Gli ingressi del transcodificatore sono i 4 segnali X[3..0]
Le uscite del transcodificatore sono i 7 segmenti a,b,c,d,e,f,g
Si considerano lecite solo le 10 configurazioni di ingresso associate alle cifre
BCD.
BCD
X[3..0]
?
7 segmenti
abcdefg
2
Transcodificatore BCD 7 segmenti
Il primo passo per creare la logica di transcodifica è avere una tabella che
descrive il funzionamento del transcodificatore.
Dec
X3
X2
X1
X0
abcdefg
0
0
0
0
0
1111110
1
0
0
0
1
0110000
2
0
0
1
0
1101101
3
0
0
1
1
1111001
4
0
1
0
0
0110011
5
0
1
0
1
1011011
6
0
1
1
0
1011111
7
0
1
1
1
1110000
8
1
0
0
0
1111111
9
1
0
0
1
1111011
3
Transcodificatore BCD 7 segmenti
Prendiamo in considerazione il segnale abcdefg cioè il segnale con codifica
7 segmenti: proviamo a scomporre il problema in 7 sotto-problemi, quindi
dobbiamo creare 7 reti per gestire altrettanti segmenti!
A questo punto l’ingresso è sempre X, però l’uscita è ad un solo bit, quindi
il problema è più semplice…
Se prendiamo come esempio il segmento a, questa è la rete che dobbiamo
progettare
BCD
X[3..0]
BCD
->
1 segmento
a
Abbiamo tanti ingressi e una sola uscita… un
MUX può esserci utile…
Possiamo cioè provare a fare la sintesi con
un mux a 16 vie.
In realtà, visto che ci sono solo dieci
configurazioni di ingresso possibili, solo 10
ingressi dovranno essere fissati a un valore
ben preciso.
Non ha importanza a quale valore logico
verranno fissati gli altri 6 ingressi “inutili”,
ma un valore dovrà essere scelto perché
nessun ingresso di una RL può essere
lasciato non connesso.
4
Astrazione
Arrivati a questo punto è necessario richiamare il concetto di astrazione e
applicarlo al nostro progetto!
Transcodificatore
Livelli di
Astrazione
Bottom-Up
Per la
realizzazione
in Quartus II
MUX e DEC
Top-Down
In fase di
progetto
Gate elementari
Transistor
In Quartus II è possibile applicare il concetto di astrazione al progetto grazie
alla creazione dei componenti di libreria (file .bsf)
5
Transcodificatore BCD 7 segmenti
1
0
1
1
0
1
1
1
1
1
Non
possono
Essere
lasciati
non
connessi
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
L’uscita del MUX è ‘a’.
‘a’ varia al variare di X, cioè è X che controlla la rete
logica. Quindi possiamo collegare X all’ingresso di
selezione del MUX e poi colleghiamo gli ingressi del
MUX a dei valori costanti 0 e 1 a seconda dei valori
della tabella che descrive il transcodificatore. X è a 4
bit allora gli ingressi del MUX saranno 2^4 cioè 16,
quindi ci serve un MUX a 16 vie.
a
X3 X2 X1 X0
Dec
X3
X2
X1
X0
a
0
0
0
0
0
1
1
0
0
0
1
0
2
0
0
1
0
1
3
0
0
1
1
1
4
0
1
0
0
0
5
0
1
0
1
1
6
0
1
1
0
1
7
0
1
1
1
1
8
1
0
0
0
1
9
1
0
0
1
1
6
Creazione dello schema logico
A questo punto bisogna effettuare le connessioni con Orthogonal Node Tool
prestando molta attenzione ai collegamenti con gli ingressi/uscite dei
componenti. Nell’esempio possiamo vedere che il collegamento a destra è
stato effettuato correttamente mentre il collegamento a sinistra è errato.
Infatti anche se graficamente il “filo” è a contatto con l’ingresso dell’AND, il
collegamento reale non c’è!!!
Collegamento
sbagliato
Collegamento
corretto
Il Graphic Editor evidenzia con una X le terminazioni dei fili
volanti
7
Creazione dello schema logico
Finito di creare il circuito logico bisogna specificare quali sono i nodi di
ingresso e di uscita. Quartus è in grado di riconoscere in automatico solo
alcuni nodi di input e output cioè solo quelli non connessi a niente!
Nell’esempio riconosce l’uscita dell’OR come output e solo gli ingressi non
connessi degli AND come input, mentre non è in grado di riconoscere i due
ingressi centrali degli AND in quanto sono connessi tra loro!
Per l’assegnazione in automatico bisogna selezionare tutto le schema (o un
gate per volta), cliccare con il tasto destro e selezionare l’opzione Generate
Pins for Symbol Ports
8
Creazione dello schema logico
IN1, IN2 e OUT sono stati aggiunti con il procedimento descritto prima,
mentre Input_Symbol_Tool è stato aggiunto con Symbol Tool (Primitives ->
Pin) come fosse un normale componente ed è stato collegato al circuito
9