Caso contrario, ctodo comn utiliza un uno para encender los LEDs y un cero para
apagarlos (lgica positiva).
Caracteres
Al tener 7 LEDs se pueden generar un total de 128 combinaciones, aunque no todas ellas
conforman caracteres. En esta entrada se hace uso de la tabla de smbolos utilizada por
(Palacios, Remiro, y Lpez, 2008) y se codifican los siguientes caracteres: 10 digitos (del 0
al 9), 26 letras (A a la Z), y los caracteres _, -, y .. Para representar estos 37 smbolos se
necesitan 6 bits (cinco bits pueden representar hasta 32 valores solamente). A este proceso
de asignar un nmero a cada carcter se le conoce como codificacin. Finalmente, para
mostrar el digito en un visualizador de siete segmentos es necesario decodificar el valor
numrico segn el patrn de LEDs indicado. Esta decodificacin se realiza asumiendo que
el visualizador es de nodo comn (cero activa, uno apaga).
En resumen, inicialmente se tiene un carcter al cual se le asigna un valor numrico
(codificacin) para tratar con el digitalmente, posteriormente se transforma al patrn de
LEDs correspondiente (decodificacin).
Descripcin de hardware
La descripcin de hardware se encarga de determinar cuales LEDs estarn encendidos en
base al valor de entrada de seis bits para cada uno de los 37 smbolos distintos y un caso
para cubrir cualquier otro valor posible. El orden de los bits se muestra en la tabla 1.
Tabla 1: Bit correspondiente a cada segmento.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
dp
g
f
e
d
Bit 2
c
Bit 1
b
Bit 0
a
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
---------------------------------------------------------------------------------- Compaa:
Estado Finito
-- Ingeniero:
Carlos Ramos
--- Fecha de creacin:
2012/07/29 12:56:33
-- Nombre del mdulo:
siete_segmentos - Behavioral
-- Descripcin:
-Decodificador de seis bits a siete segmentos. Se incluyen los
nmeros del 0
-al 9, las letras de la A a la Z, y otros signos de puntuacin
utilizados.
--- Revisin:
-Revisin 0.01 - Archivo creado.
--------------------------------------------------------------------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
entity siete_segmentos is
PORT (
entrada: IN STD_LOGIC_VECTOR(5 downto 0);
salida : OUT STD_LOGIC_VECTOR(7 downto 0)
);
end siete_segmentos;
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16