ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Visualizador de siete segmentos


Enviado por   •  4 de Marzo de 2016  •  Tutoriales  •  6.409 Palabras (26 Páginas)  •  201 Visitas

Página 1 de 26

Visualizador de siete segmentos

Un visualizador de siete segmentos se compone de siete diodos emisores de luz (LEDs) dispuestos en un patrón como se muestra en la figura 1, y algunos incluyen un octavo LED para el punto decimal. Existen dos tipos de visualizadores de acuerdo a su conexión eléctrica: ánodo común y cátodo común. Desde el punto de vista de programación (o del diseño de sistemas digitales), es necesario saber el tipo de visualizador para las condiciones de activación:

  • En ánodo común, un 0 se utiliza para encendido y un 1 para apagado (lógica negativa).
  • Caso contrario, cátodo común utiliza un uno para encender los LEDs y un cero para apagarlos (lógica positiva).

[pic 1]

Figura 1: Visualizador de siete segmentos.

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 símbolos utilizada por (Palacios, Remiro, y López, 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 símbolos se necesitan 6 bits (cinco bits pueden representar hasta 32 valores solamente). A este proceso de asignar un número a cada carácter se le conoce como codificación. Finalmente, para mostrar el digito en un visualizador de siete segmentos es necesario decodificar el valor numérico según el patrón de LEDs indicado. Esta decodificación se realiza asumiendo que el visualizador es de ánodo común (cero activa, uno apaga).

En resumen, inicialmente se tiene un carácter al cual se le asigna un valor numérico (codificación) para tratar con el digitalmente, posteriormente se transforma al patrón de LEDs correspondiente (decodificación).

Descripción de hardware

La descripción de hardware se encarga de determinar cuales LEDs estarán encendidos en base al valor de entrada de seis bits para cada uno de los 37 símbolos 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

BIT 2

BIT 1

BIT 0

dp

g

f

e

d

c

b

a

El listado 1, desarrollado en el IDE Xilinx ISE 13.4, muestra los 37 caracteres y su decodificación a siete segmentos correspondiente.

Listado 1: Decodificador de seis bits a siete segmentos.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

----------------------------------------------------------------------------------

-- Compañía:            Estado Finito

-- Ingeniero:           Carlos Ramos

--

-- Fecha de creación:   2012/07/29 12:56:33

-- Nombre del módulo:   siete_segmentos - Behavioral

-- Descripción:

--   Decodificador de seis bits a siete segmentos. Se incluyen los números del 0

--   al 9, las letras de la A a la Z, y otros signos de puntuación utilizados.

--

-- Revisión:

--   Revisión 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;

  

architecture Behavioral of siete_segmentos is

begin

    visualizador: process (entrada) begin

        case entrada is

            when "000000" =>  salida <= x"C0"; -- 0

            when "000001" =>  salida <= x"F9"; -- 1

            when "000010" =>  salida <= x"A4"; -- 2

            when "000011" =>  salida <= x"B0"; -- 3

            when "000100" =>  salida <= x"99"; -- 4

            when "000101" =>  salida <= x"92"; -- 5

            when "000110" =>  salida <= x"82"; -- 6

            when "000111" =>  salida <= x"F8"; -- 7

            when "001000" =>  salida <= x"80"; -- 8

            when "001001" =>  salida <= x"98"; -- 9

            when "001010" =>  salida <= x"88"; -- A

            when "001011" =>  salida <= x"83"; -- B

            when "001100" =>  salida <= x"C6"; -- C

            when "001101" =>  salida <= x"A1"; -- D

            when "001110" =>  salida <= x"86"; -- E

            when "001111" =>  salida <= x"8E"; -- F

            when "010000" =>  salida <= x"90"; -- G

            when "010001" =>  salida <= x"89"; -- H

            when "010010" =>  salida <= x"E6"; -- I

            when "010011" =>  salida <= x"E1"; -- J

            when "010100" =>  salida <= x"85"; -- K

            when "010101" =>  salida <= x"C7"; -- L

            when "010110" =>  salida <= x"C8"; -- M

            when "010111" =>  salida <= x"AB"; -- N

            when "011000" =>  salida <= x"C0"; -- O

            when "011001" =>  salida <= x"8C"; -- P

            when "011010" =>  salida <= x"98"; -- Q

            when "011011" =>  salida <= x"AF"; -- R

            when "011100" =>  salida <= x"92"; -- S

            when "011101" =>  salida <= x"87"; -- T

            when "011110" =>  salida <= x"E3"; -- U

            when "011111" =>  salida <= x"C1"; -- V

            when "100000" =>  salida <= x"E2"; -- W

            when "100001" =>  salida <= x"8F"; -- X

            when "100010" =>  salida <= x"91"; -- Y

            when "100011" =>  salida <= x"B6"; -- Z

            when "100100" =>  salida <= x"BF"; -- -

            when "100101" =>  salida <= x"F7"; -- _

            when "100110" =>  salida <= x"7F"; -- .

            when others   =>  salida <= x"FF"; -- Nada

        end case;

    end process;

end Behavioral;

Implementación del circuito

...

Descargar como (para miembros actualizados)  txt (30.4 Kb)   pdf (396.1 Kb)   docx (102.2 Kb)  
Leer 25 páginas más »
Disponible sólo en Clubensayos.com