La pantalla és una part molt important de qualsevol aplicació de sistema incrustat, ja que ajuda els usuaris a conèixer l’estat del sistema i també mostra la sortida o qualsevol missatge d’advertència generat pel sistema. Hi ha molts tipus de pantalles utilitzades en electrònica, com ara pantalles de 7 segments, pantalla LCD, pantalla tàctil TFT, pantalla LED, etc.
Ja teníem interfície LCD de 16x2 amb ARM7-LPC2148 al nostre tutorial anterior. Avui en aquest tutorial farem una interfície de pantalla de 7 segments amb ARM7-LPC2148. Abans d’entrar en detalls, veurem com controlar el mòdul de 7 segments per mostrar qualsevol nombre de caràcters.
Pantalla de 7 segments

Les pantalles de 7 segments es troben entre les unitats de visualització més senzilles per mostrar els números i els caràcters. Generalment s’utilitza per mostrar números i té una il·luminació més brillant i una construcció més senzilla que la visualització de matriu de punts. I a causa de la il·luminació més brillant, la sortida es pot veure des d’una distància més gran que la pantalla LCD. Com es mostra a la imatge superior d’una pantalla de 7 segments, consta de 8 LED, cada LED que s’utilitza per il·luminar un segment de la unitat i el 8thLED que s’utilitza per il·luminar el DOT en una pantalla de 7 segments. 8thLED s’utilitza quan s’utilitzen dos o més mòduls de 7 segments, per exemple per mostrar (0,1). S’utilitza un sol mòdul per mostrar un sol dígit o caràcter. Per mostrar més d'un dígit o caràcter, s'utilitzen diversos segments de 7.
Clavilles de la pantalla de 7 segments
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

Segons la connexió, classifiquem el segment 7 en dos tipus:
Càtode comú
En això, tots els terminals negatius (càtode) de tots els 8 LED estan connectats entre si (vegeu el diagrama següent), anomenats COM. I tots els terminals positius es deixen sols o connectats als pins del microcontrolador. Si fem servir un microcontrolador, establirem la lògica HIGH per il·luminar el particular i establirem LOW per apagar el LED.
Ànode comú
En això, tots els terminals positius (ànodes) de tots els 8 LED estan connectats junts, anomenats COM. I totes les tèrmiques negatives es deixen soles o connectades als pins del microcontrolador. Si fem servir un microcontrolador, establirem la lògica BAIX per il·luminar el particular i establirem la lògica Alta per apagar el LED.

Per tant, segons el valor del pin, es pot activar o desactivar un segment o línia de 7 segments en particular per mostrar el número o l’alfabet desitjat. Per exemple, per mostrar 0 dígits hem d’establir els pins ABCDEF com a ALT i només G com BAIX. Com que els LED ABCDEF estan ON i G està apagat, es forma el dígit 0 del mòdul de 7 segments. (Això és per a càtode comú, per a ànode comú és oposat).
A la taula següent es mostren els valors HEX i el dígit corresponent segons els pins LPC2148 per a la configuració del càtode comú.
|
Dígit |
Valors HEX per a LPC2148 |
A |
B |
C |
D |
E |
F |
G |
|
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
|
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
|
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
|
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
|
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
IMPORTANT: a la taula anterior he indicat els valors HEX segons els pins que he utilitzat a LPC2148, consulteu el diagrama de circuits següent. Podeu utilitzar els pins que vulgueu, però canvieu els valors hexadecimals d'acord amb això.
Per obtenir més informació sobre la visualització de 7 segments, consulteu l'enllaç. Comproveu també les interfícies de visualització de 7 segments amb altres microcontroladors:
- Interfície de visualització de 7 segments amb Raspberry Pi
- Interfície de visualització de 7 segments amb microcontrolador PIC
- Interfície de visualització de 7 segments amb Arduino
- Interfície de visualització de 7 segments amb microcontrolador 8051
- Comptador 0-99 mitjançant microcontrolador AVR
Materials necessaris
Maquinari
- ARM7-LPC2148
- Mòdul de visualització de set segments (dígit únic)
- Taula de pa
- Connexió de cables
Programari
- Keil uVision5
- Flash Magic
Esquema de connexions
Per a la interfície de 7 segments amb LPC2148, no cal cap component extern tal com es mostra al diagrama del circuit següent:

La taula següent mostra les connexions de circuits entre el mòdul de 7 segments i LPC2148
|
Set pins del mòdul de segment |
LPC2148 Pins |
|
A |
P0.0 |
|
B |
P0.1 |
|
C |
P0.4 |
|
D |
P0.5 |
|
E |
P0.6 |
|
F |
P0.7 |
|
G |
P0.8 |
|
Comú |
GND |

Programació ARM7 LPC2148
Hem après a programar ARM7-LPC2148 amb Keil al nostre tutorial anterior. Utilitzem el mateix Keil uVision 5 aquí per escriure el codi i crear un fitxer hexadecimal i, a continuació, penjarem el fitxer hexagonal a LPC2148 mitjançant l’eina flash magic. Estem utilitzant un cable USB per alimentar i carregar el codi a LPC2148
Al final d’aquest tutorial es dóna un codi complet amb explicació de vídeo. Aquí expliquem algunes parts importants del codi.
Primer hem d’incloure el fitxer de capçalera del microcontrolador de la sèrie LPC214x
#incloure
A continuació, configureu els pins com a sortida
IO0DIR = IO0DIR-0xffffffff
Això estableix els pins P0.0 a P0.31 com a sortida, però utilitzarem només pins (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 i P0.8).
A continuació, configureu els pins determinats a LOGIC HIGH o LOW segons el dígit numèric que es mostrarà. Aquí mostrarem valors de (0 a 9). Utilitzarem una matriu que consta de valors HEX per als valors de 0 a 9.
unsigned int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
Els valors es mostraran contínuament a mesura que s'hagi introduït el codi mentre es fa un bucle
while (1) { for (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // estableix els pins corresponents retard HIGH (9000); // Funció de retard de trucades IO0CLR = IO0CLR-a; // Estableix els pins corresponents BAIX } }
Aquí IOSET i IOCLR s’utilitzen per configurar els pins HIGH i LOW respectivament. Com que hem utilitzat pins PORT0, també tenim IO0SET i IO0CLR .
El bucle For s'utilitza per incrementar la i en cada iteració i cada vegada que incremento i , el segment de 7 també augmenta el dígit que hi apareix.
La funció de retard s'utilitza per generar temps de retard entre SET i CLR
void delay (int k) // Funció per fer el delay { int i, j; per a (i = 0; i
A continuació es mostra el codi complet i la descripció del vídeo de treball. Consulteu també tots els projectes relacionats amb la visualització de 7 segments aquí.
