![]() |
| |
| ||
Una lámpara de 7 segmentos es un dispositivo optoelectrónico que permite iluminar 7 segmentos (y en algunos tipos un punto decimal) de forma independiente. Iluminado selectivamente estos segmentos, es posible formar todos los números, y algunas letras del alfabeto. Estas lámparas deben ser alimentadas externamente, dado que cada segmento necesita 20 mA de corriente (total 140 mA). Es suficiente utilizar el registro de datos para controlar una lámpara. Si se necesitan otras, se puede utilizar el circuito de expansión que se describe posteriormente.
Descripción de la lampara de 7 segmentos
Fig. Lampara de 7 segmentos
|
Referencias
Pin Descripción
1 Cátodo E
2 Cátodo D
3 Ánodo común
4 Cátodo C
5 Cátodo del Dp. (Punto decimal)
6 Cátodo B
7 Cátodo A
8 Ánodo común
9 Cátodo F
10 Cátodo G
Alimentación y operación
Esta lampara funciona con 5 voltios y 20 mA por segmento. La fuente de5 voltios para alimentar este circuito se puede obtener directamente de la fuente de poder del PC, o del puerto de juegos (ver fuente de alimentación).
Fig. Circuito sugerido para una lámpara de 7 segmentos
|
Modo de operación
La lámpara de 7 segmentos tiene un pin por cada segmento y dos ánodos comunes. Cuando se aplican 5 voltios entre cualquier pin de determinado segmento y los ánodos, este segmento se enciende. Para formar cualquier combinación de segmentos es necesario aplicar los 5 voltios a los pines que se deseen.
El siguiente algoritmo permite activar cualquier segmento de la lámpara de 7 segmentos.
/* inicio */
Definir qué segmentos serán iluminados.
Dado que cada segmento corresponde con un bit del registro de estado, entonces se crea una tabla de segmentos/bits
Segmento |
Bit del registro de control |
valor decimal |
A |
D0 |
1 |
B |
D1 |
2 |
C |
D2 |
4 |
D |
D3 |
8 |
E |
D4 |
16 |
F |
D5 |
32 |
G |
D6 |
64 |
Dp |
D7 |
128 |
Si se quiere iluminar el segmento A, entonces se debe escribir en el registro de datos del puerto paralelo el valor 1 (valor de la tabla)
Port[dir_base]:=1
Si se quiere iluminar más de un segmento, entonces se debe escribir en el registro de datos del puerto paralelo la suma de los valores de cada segmento. Ej.:
La letra C corresponde con los segmentos A, D, E, F.
Entonces: A=1, D= 8, E=16, F=32.
La suma es 1+8+16+32=57
Luego, se debe escribir:
Port[dir_base]:=57
Si se quiere escribir un texto, se coloca cada letra y luego un retardo de n milisegundos. Ej. :
Escribir: LULU
La letra L corresponde con los segmentos D, E, F.
La suma es 8+16+32=56
La letra U corresponde con los segmentos B, C, D, E, F.
La suma es 2+4+8+16+32=62
Luego, se debe escribir:
Port[dir_base]:=56; /* L */
Delay(1000);
Port[dir_base]:=62; /* U */
Delay(1000);
Port[dir_base]:=56; /* L */
Delay(1000);
Port[dir_base]:=62; /* U */
Delay(1000);
/* Fin */
Novedades en nuestro Blog:
Blog Puerto
Paralelo
Comentarios, aportes, consultas, visite nuestro Foro:
Foro Puerto Paralelo