I display a sette segmenti sono unità di visualizzazione importanti in Elettronica e ampiamente utilizzati per visualizzare numeri da 0 a 9. Può anche visualizzare alcuni alfabeti di caratteri come A, B, C, H, F, E ecc. In questo tutorial, impareremo come interfacciare un display a 7 segmenti con il microcontrollore 8051. Stiamo utilizzando il microcontrollore AT89S52 della serie 8051.
Prima di interfacciarci, dovremmo conoscere il display a 7 segmenti. È l'unità più semplice per visualizzare numeri e caratteri. Consiste solo di 8 LED, ogni LED utilizzato per illuminare un segmento dell'unità e l'8 ° LED utilizzato per illuminare DOT nel display a 7 segmenti. Possiamo riferire ogni segmento come una LINEA, come possiamo vedere che ci sono 7 linee nell'unità, che vengono utilizzate per visualizzare un numero / carattere. Possiamo fare riferimento a ogni linea / segmento "a, b, c, d, e, f, g" e per il carattere punto useremo "h". Ci sono 10 pin, in cui 8 pin vengono utilizzati per riferirsi a a, b, c, d, e, f, ge h / dp, i due pin centrali sono l'anodo / catodo comune di tutti i LED. Questi comuni anodo / catodo sono cortocircuitati internamente, quindi è necessario collegare solo un pin COM.
Sono disponibili due tipi di display a 7 segmenti: anodo comune e catodo comune:
Anodo comune: In questo tutti i terminali negativi (catodo) di tutti gli 8 LED sono collegati tra loro (vedi diagramma sotto), denominati COM. E tutti i terminali positivi vengono lasciati soli.
Catodo Comune: In questo sono collegati tra loro tutti i terminali positivi (Anodi) di tutti gli 8 LED, denominati COM. E tutte le termiche negative sono lasciate sole.
Schema del circuito e descrizione del lavoro
Qui stiamo usando un tipo di anodo comune a 7 segmenti perché abbiamo bisogno di collegare i LED al contrario. Poiché sappiamo che il microcontrollore non fornisce energia sufficiente per illuminare il LED, dobbiamo collegare il catodo del LED al pin del microcontrollore e l'anodo del LED all'alimentazione. Puoi capire questo concetto di logica negativa in questo articolo "Interfacciamento LED con microcontrollore 8051". Dovresti anche leggere questo articolo per comprendere la connessione di base del microcontrollore come il cristallo e il circuito di ripristino.
Come mostrato sopra lo schema del circuito per l' interfacciamento del display a 7 segmenti con il microcontrollore 8051, abbiamo collegato a, b, c, d, e, f, g, h ai pin da 2.0 a 2.7 significa che stiamo collegando 7 segmenti alla porta 2 del microcontrollore. Supponiamo ora di voler visualizzare 0, quindi dobbiamo accendere tutti i LED tranne il LED che appartiene alla linea "g" (vedi diagramma sopra), quindi i pin da 2.0 a 2.6 dovrebbero essere a 0 (dovrebbe essere 0 per ACCENDERE il LED come per logica negativa) e i pin 2.7 e 2.8 dovrebbero essere a 1 (dovrebbe essere 1 per SPEGNERE il LED come da logica negativa). Quindi i LED collegati ai pin da 2.0 a 2.6 (a, b, c, d, e, f) saranno accesi ei LED collegati a 2.7 e 2.8 (geh) saranno spenti, che creerà uno "0" in 7 segmento. Quindi abbiamo bisogno dello schema di bit 11000000 (il pin 8 è il bit più alto, quindi a partire da P2.7 a P2.0), e il codice HEX per 11000000 binario è "C0". Allo stesso modo possiamo calcolare per tutte le cifre. Qui dovremmo notare che stiamo mantenendo "punto / h" sempre su OFF,quindi dobbiamo dargli LOGIC “1” ogni volta. Di seguito è stata fornita una tabella per tutti i numeri durante l'utilizzo del segmento Common Anode 7.
Cifra da visualizzare |
hgfedcba |
Codice esadecimale |
0 |
11000000 |
C0 |
1 |
11111001 |
F9 |
2 |
10100100 |
A4 |
3 |
10110000 |
B0 |
4 |
10011001 |
99 |
5 |
10010010 |
92 |
6 |
10000010 |
82 |
7 |
11111000 |
F8 |
8 |
10000000 |
80 |
9 |
10010000 |
90 |
Spiegazione del codice
Abbiamo creato la funzione ms_delay per fornire il ritardo in millisecondi, questo ritardo viene solitamente fornito in qualsiasi programma del microcontrollore in modo che il microcontrollore possa completare il suo funzionamento interno.
Quindi abbiamo creato un array di codici esadecimali da 0 a 9 (vedi tabella sopra), e infine abbiamo inviato i codici esadecimali alla porta 2, che è collegata al segmento 7 dell'anodo comune. In questo modo vengono visualizzati i numeri sul display a 7 segmenti.
Ora abbiamo solo 4 porte nel microcontrollore e se volessimo mostrare i dati in più di quattro 7 segmenti ?? Per risolvere questo problema, entra in scena la tecnica del multiplexing. Abbiamo bisogno di multiplexare più unità di 7 segmenti. Leggi anche l'interfacciamento del display a 7 segmenti con il microcontrollore AVR.