Lectura De Un Teclado Matricial En Vhdl

Páginas: 6 (1255 palabras) Publicado: 12 de mayo de 2012
LABORATORIO Nº 3
LECTURA DE UN TECLADO MATRICIAL EN VHDL

1. OBJETIVO GENERAL
* Diseñar en vhdl un código que lea un teclado matricial.

1.1 OBJETIVOS
* Implementar la lectura de un teclado matricial a un display 7 segmentos.
* Combinar un diagrama en esquemático con un codigo en vhdl.

2. DISEÑO DEL PROGRAMA

FIGURA 2
CONFIGURACION INTERNA DEL TECLADO
COLUMNAS
FILASFIGURA 1
TECLADO MATRICIAL

Para realizar esta practica utilizamos un teclado matricial de 4 x 4 (figura 1), es decir de cuatro filas y cuatro columnas, que nos da un total de 16 teclas, para manejar el teclado es necesario tener líneas de entrada y líneas de salida, en este caso se utilizo las líneas de entrada como las columnas, y las líneas de salida como filas.
Al presionar una tecla segenera un corto circuito en la fila y columna presiona de esta forma se puede comprobar con ayuda de un multímetro que el teclado funciona o también se puede mirar la configuración de pines que presenta el teclado (figura 2).
Para que el teclado funcione hay que activar las columnas de manera alternada, después de activar una de las columnas hay que verificar si se ha activado alguna de lasfilas, Cuando se active una de las filas implica que una de las teclas ha sido presionada y si una de las teclas ha sido presionada hay que determinar qué tecla fue, la tecla presionada corresponde a la intersección de la columna activada y la fila activada, en el caso de que ninguna de las filas esté activa se asume que ninguna tecla de la columna fue activada o presionada.
El diseño consta dedos bloques en código vhdl, una donde se leerá y enviara información del teclado y un decodificador a 7 segmentos, como se aprecia en el diagrama 1.
El decodificador debe diseñarse para ánodo común esto quiere decir que se polariza con vcc y para q prendan los leds deberán estar en 0 (ver tabla 1).

DIAGRAMA 1. Diagrama circuital

numero | Numero en binario | A | B | C | D | E | F | G |
0| 0000 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0001 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
2 | 0010 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
3 | 0011 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
4 | 0100 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
5 | 0101 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
6 | 0110 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
7 | 0111 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
8 | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 1001 | 0 | 0 | 0 | 0 | 1| 0 | 0 |
A | 1010 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
B | 1011 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
C | 1100 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
D | 1101 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
* | 1110 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
# | 1111 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
Tabla 1

PROGRAMA EN VHDL
Se creo el programa en vhdl y se realizo su símbolo para ser acoplado con al otro bloque (diagrama1).

TECLADOlibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

--asignacion de entradas y salidas

entity teclado is
Port ( fil : in STD_LOGIC_VECTOR (3 downto 0);
clk: in STD_LOGIC;
col : out STD_LOGIC_VECTOR (3 downto 0);
ent_tecla:out std_logic_vector(3 downto 0));
end teclado;

--asignacion de sañales ausar

architecture Behavioral of teclado is

signal act:std_logic;
signal cambio:std_logic_vector(3 downto 0):="0001";
signal corre_fil,corre_col:std_logic_vector(3 downto 0);
begin

--inicio del process y asignacion de variables

process(clk)
variable conta,cont:integer;
begin

if (clk'event and clk='1') then -- reloj
cont:=cont+1; -- cada vez que haga uncambio a 1
col<=cambio;

if cont=500000 then -- reinicio de frecuencia
cont:=0;
cambio<=cambio(2 downto 0)& '0';
conta:=conta+1;

if conta=4 then -- reinicio de contador
cambio<="0001";
conta:=0;
end if;
end if;

if fil/="0000" then -- activacion del teclado
cambio<="0000";
act<='1';...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Teclado matricial
  • Teclado Matricial
  • Teclado matricial
  • Teclado matricial
  • Teclado Matricial
  • Teclado Matricial
  • Teclados matriciales
  • Teoria teclado matricial

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS