Les pantalles de set segments són unitats de visualització importants a Electrònica i s’utilitzen àmpliament per mostrar números del 0 al 9. També pot mostrar alguns alfabets de caràcters com A, B, C, H, F, E, etc. En aquest tutorial, aprendrem com connectar una pantalla de 7 segments amb un microcontrolador 8051. Estem utilitzant el microcontrolador AT89S52 de la sèrie 8051.
Abans de la interfície, hauríem d’ aprendre sobre la visualització de 7 segments. És la unitat més senzilla per mostrar números i caràcters. Simplement consisteix 8 LED, cada LED utilitza per il·luminar un segment d'unitat i el 8 º LED utilitza per il·luminar DOT en Display de 7 segments. Podem referir cada segment a una LÍNIA, ja que podem veure que hi ha 7 línies a la unitat, que s’utilitzen per mostrar un número / caràcter. Podem referir cada línia / segment "a, b, c, d, e, f, g" i per al caràcter de punt utilitzarem "h". Hi ha 10 pins, en els quals s’utilitzen 8 pins per referir-se a, b, c, d, e, f, g i h / dp, els dos pins centrals són ànode / càtode comú de tots els LEDs. Aquests ànode / càtode comuns tenen un curtcircuit intern, de manera que només hem de connectar un pin COM.

Hi ha dos tipus de pantalles de 7 segments: ànode comú i càtode comú:
Ànode comú: en això es connecten tots els terminals negatius (càtode) de tots els 8 LED (vegeu el diagrama següent), anomenats COM. I tots els terminals positius es queden sols.
Càtode comú: en això es connecten tots els terminals positius (ànodes) de tots els 8 LED, anomenats COM. I totes les tèrmiques negatives es queden soles.

Diagrama de circuits i expansió de treball
Aquí fem servir un tipus d’ànode comú de 7 segments perquè hem de connectar LEDs a la inversa. Com sabem, el microcontrolador no proporciona prou energia per encendre el LED, de manera que hem de connectar el càtode del LED al pin del microcontrolador i l’ànode del LED a la font d’alimentació. Podeu entendre aquest concepte de lògica negativa en aquest article "Interfície LED amb microcontrolador 8051". També heu de llegir aquest article per entendre la connexió bàsica del microcontrolador, com ara els circuits de cristal·lització i restabliment.

Com es mostra a la part superior del diagrama de circuits per a la interfície de la pantalla de 7 segments amb el microcontrolador 8051, hem connectat a, b, c, d, e, f, g, h als pins 2.0 a 2.7 significa que estem connectant 7 segments al port 2 del microcontrolador. Ara suposem que volem mostrar 0 i, a continuació, hem d’encendre tots els LEDs excepte els LED que pertanyen a la línia “g” (vegeu el diagrama anterior), de manera que els pins 2.0 a 2.6 haurien d’estar a 0 (haurien de ser 0 per lògica negativa) i els pins 2.7 i 2.8 haurien d’estar a 1 (haurien de ser 1 per APAGAR el LED segons la lògica negativa). Per tant, els LED connectats als pins 2.0 a 2.6 (a, b, c, d, e, f) s’encendran i els LED connectats a 2.7 i 2.8 (g i h) estaran apagats, cosa que crearà un “0” a 7 segment. Per tant, necessitem el patró de bits 11000000 (el pin 8 és el bit més alt, així que a partir de P2.7 a P2.0), i el codi HEX per al binari 11000000 és "C0". De la mateixa manera, podem calcular per a tots els dígits. Aquí hem de tenir en compte que mantenim el punt "h /" sempre desactivat,per tant, hem de donar-li LOGIC "1" cada vegada. A continuació, s’ha proporcionat una taula per a tots els números mentre s’utilitza el segment Common Anode 7.
|
Dígit per mostrar |
hgfedcba |
Codi hexadecimal |
|
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 |
Explicació del codi
Hem creat la funció ms_delay per proporcionar el retard en mil·lisegons, aquest retard se sol proporcionar en qualsevol programa de microcontrolador perquè el microcontrolador pugui completar el seu funcionament intern.
A continuació, hem creat una matriu de codis hexadecimals de 0 a 9 (vegeu la taula anterior) i, finalment, hem enviat els codis hexadecimals al port 2, que està connectat al segment d'ànode comú 7. Així, d’aquesta manera, els números es mostren a la pantalla de 7 segments.
Ara només tenim 4 ports al microcontrolador i què passa si volem mostrar les dades en més de quatre 7 segments ?? Per resoldre aquest problema, apareix la tècnica de multiplexació. Hem de multiplexar diverses unitats de 7 segments. Llegiu també la interfície de visualització de 7 segments amb microcontrolador AVR.
