Вы находитесь на странице: 1из 6

Sistemas digitales

TECLADO MATRICIAL
SISTEMAS DIGITALES

Luis vasquez 421120451, Leonardo rivera 421210232 David aroca4211xxxx3

Introduccin
El Codigo BCD:

Para poder compartir informacin, que est


en formato digital, es comn utilizar las
representaciones binaria y hexadecimal. Hay
otros mtodos de representar informacin y
una de ellas es el cdigo BCD. Con ayuda de
la codificacin BCD es ms fcil ver la
relacin que hay entre un nmero decimal
(base 10)
y
el
nmerocorrespondiente en binario (base 2)
El cdigo BCD utiliza 4 dgitos binarios (ver
en los dos ejemplos que siguen) para
representar un dgito decimal (0 al 9).
Cuando se hace conversin de binario a
decimal tpica no hay una directa relacin
entre el dgito decimal y el dgito binario.
Teclado matricial:
Un teclado matricial, independientemente del nmero de
teclas, se divide en filas y en columnas. Cuando una tecla
especfica se presiona, se une la columna con la fila
respectiva en una coordenada nica. El teclado ms comn
es el de 4 x 4 (16 teclas) con 8 pines base: 4 para las
columnas y 4 para las filas (en ocasiones, se encuentran
teclados matriciales con ms pines redundantes a un mismo
pin base).
El circuito que controla el teclado matricial se divide en dos
partes: el circuito de escaneo, que permite identificar qu
tecla se presion y el circuito del encoder, cuya funcin es
codificar el valor binario de una tecla hacia una conversin
particular (por ejemplo, un display a 7 segmentos). El
algoritmo de escaneo ms simple es utilizar un contador de
anillo con un demultiplexor que barre cada una de las
columnas (o filas) en un tiempo. El valor binario
correspondiente a una tecla presionada se almacena en un
registro de datos con salida hacia el mdulo del encoder.
(Canto, s.f.)

Lenguaje de descripcin de hardware:


El lenguaje de descripcin de hardware es un lenguaje
formal que sirve para describir la operacin de circuitos
electrnicos (Chico, 2009). Este lenguaje (por sus siglas
VLDH), permite modelar la arquitectura y comportamiento
de sistemas digitales. De esta forma se pueden realizar
simulaciones de circuitos, con el fin de comprobar que
tienen la funcionalidad deseada y asegurar la correcta
operacin antes de su fabricacin y posterior
implementacin, y a su vez, sintetizar automticamente a
travs de ciertos programas especializados que permiten
crear un circuito que funciona como un modelo que permite
simular el circuito de forma que pueda asegurarse su
funcionalidad, lo cual es equivalente a una compilacin en
un software; todo esto a travs de una sntesis lgica, la cual
convierte una descripcin de un sistema digital en una
implementacin tecnolgica.
Este lenguaje, no solamente permite la modelacin del
hardware, sino tambin permite programar algoritmos tiles
para el software, y responde a la necesidad de hallar una
manera de describir circuitos integrados, con el fin de
reducir el tiempo de diseo de stos y tener una manera
estndar de documentarlos. (Buedo, 2012)
Entre las principales ventajas del uso de los LDH, se
encuentra la facilidad de sintetizar el mismo modelo en
distintas libreras, la rpida portabilidad a otras tecnologas
y la habilidad de utilizar el diseo en otros componentes,
adems la opcin de verificacin del diseo en etapas
tempranas, lo que permite corregir errores durante el
proceso.
SIETE SEGMENTOS

Autor principal et al.: Titulo

Desarrollar un circuito o diseo capaz de


codificar seales de un teclado matricial en la
forma BCD.
Utilizar y modificar un modulo de escalado de
reloj, o divisor de frecuencia.

PROCEDIMIENTO.
1. Se realizo la descripcin de cada un de
las tablas de verdad de cada circuito a
implemntar (circuito 1,circuito2 y siete
segmentos)
2. De los mapas de karnauagh se hizo la
respectiva simplificacin de funciones
boleanas para la implementacion de los
circuitos.
3. Se implementaron y se empaquetaron
cada uno de los circuitos en el programa
xilin para su respectivo unin a los
circuitos, divisor de frecuencia y cdigo
matricial.
4. Se comprobaron cada uno
de los
cicuitos
para
su
correcto
funcionamiento.

El displays
segmentos,
es
un componente que se utiliza para la
representacin de nmeros en muchos
dispositivos electrnicos. Cada vez es ms
frecuente encontrar LCDs en estos equipos
(debido a su bajsima demanda de energa),
todava hay muchos que utilizan el display de
7 segmentos por su simplicidad. Este
elemento se ensambla oarma de manera que
se pueda activar cada segmento (diodo LED)
por separado logrando de esta manera
combinar los elementos y representar todos
los nmeros en el display (del 0 al 9). El
display de 7 segmentos ms comn es el
de color, por su facilidad de visualizacin.

Inicialmete se planteo la coneccin del circuito figura.


Luego teniendo en cuenta las condiciones y el
comportamiento del generador de codigo fueron diseados
los circuitos.

Si se activan todos los segmentos:


a,b,c,d,f,g se forma el nmero 8
Si se activan slo los segmentos:
a,b,c,d,f, se forma el nmero 0
Si se activan slo los segmentos:
a,b,g,e,d, se forma el nmero 2
Si se activan slo los segmentos:
b,c,f,g, se forma el nmero 4
Si se activan slo los segmentos:
a,b,g,c,d, se forma el nmero 3
Si se activan slo los segmentos:
a,f,g,c,d, se forma el nmero 5

Figura 1. Conexin del circuito completo.


Diseo de circuitos
Teniendo en cuenta el comportamiento del generador de
cdigo de la siguiente manera:

OBJETIVO DE LA PRCTICA
Tiempo
t1
t2
t3
t4

Disear e implementar un mtodo para leer


las seales de un teclado matricial.

Genera
0001
0010
0100
1000

Z0
0
0
1
1

Z1
0
1
0
1

Autor principal et al.: Titulo

Tabla 1. Comportamiento del generador de cdigo.

En el circuito 2 entran 4 bits y salen 4 bits como se muestra


en la tabla 2.

Diseo circuito 1
Z0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

El circuito 1, se diseada teniendo encuenta que si alguien


oprimiera dos teclas, la tecla que mostrara el teclado ser la
que primero envie un 1 observandola de derecha a
izquierda, por ejemplo si se presionan el 1 y el 2 el circuito
en KO recibir la seal de 1100 por lo cual el teclado
mostrara el 2 que es 0100. Sabiendo esto se obtuvo la tabla
2.
.
N
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

A
B
C
D
Z0
0
0
0
0
X
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
Tabla 2. Tabla de verdad del circuito 1.

Z1
X
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0

Para Z1
ab\cd
00
01
11
10
BD

Z1= C D+

00
X
1
1
1

00
X
0
0
1

01
0
0
0
0

01
0
0
0
0

11
0
0
0
0

11
0
0
0
0

N
D
#
0
*
C
9
8
7
B
6
5
4
A
3
2
1

Se tienen 4 salidas Yo, Y1, Y2, Y3 para obtener el circuito lo


simplificamos atravez de mapas de karnagh:
Para Yo
ab\cd
00
01
00
1
1
01
1
1
11
1
0
10
1
0

Y0= AC + CD+ AB D+ A B D

Ahora tenemos dos salidas Zo y Z1, para obtener el circuito


lo simplificamos atravez de mapas de karnagh se observara
algunas tablas y resultados de esta:
Para Zo
ab\cd
00
01
11
10

Z0= CD

Z1
Z2
Z3
Y0
Y1
Y2
Y3
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
Tabla 3. Tabla de verdad del circuito 2.

11
1
0
0
0

10
0
1
0
0

11
1
1
0
1

10
0
0
0
1

11
1
1
0
0

10
0
0
1
0

11

10

Para Y1

10
0
0
0
0

ab\cd
00
01
00
1
1
01
1
0
11
0
0
10
0
1
D+ ACD+

CD + A B C
Y1= B
A

10
1
1
1
1

Para Y2
ab\cd
00
01
00
0
1
01
0
0
11
1
1
10
1
1

BD

Y2= A C+ AB D+ A CD + A
Para Y3
ab\cd

Diseo circuito 2
3

00

01

00
01
11
10
Y3=

1
0
0
1

1
1
1
0

0
1
1
0

Para Sg

0
0
0
1

S g=

+ A BD

BD + ABC

Resultados

Siete segmentos

Una vez generado el circuito se realizanlas conexiones


indicadas por el esquemtico final. Se hace la debida
implementacin en la tarjeta desarrollo. Donde se hace de
asinacion de pines externos.

Ahora bien observamos, siete segmentos para este se tiene


en cuenta el procedimiento del teclado. Este se describe en
siguente tabla de la verdad, y se logr teniendo en cuenta
cada resentacion de cada letra del teclado.
N
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Y0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

Y1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

Y2 Y3 Sa Sb Sc Sd
0
0
1 1
1 1
0
1
0 1
1 0
1
0
1 1
0 1
1
1
1 1
1 1
0
0
0 1
1 0
0
1
1 0
1 1
1
0
1 0
1 1
1
1
1 1
1 0
0
0
1 1
1 1
0
1
1 1
1 1
1
0
1 1
1 0
1
1
0 0
1 1
0
0
1 0
0 1
0
1
0 1
1 1
1
0
1 0
0 1
1
1
1 0
0 0
Tabla 3. Tabla de verdad.

Se
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1

Sf
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1

Sg
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1

Tenemos siete salidas Sa, Sb, Sc, Sd, Se, Sf, Sg para obtener el
circuito lo simplificamos atravez de mapas de karnagh:

Implementacin y empaquetamiento del circuito 1

Para Sa

A
. B . D+ A . B. C
B . D+ A . C+ B .C + A . D+

Para Sb
Sb=

. C . D+ A C D
A . B+ B . D+ A . C . D+ A

Para Sc
Sc=

. D+ A . B+ A B
A .C + A . D+ C

Para Sd
+ A . B . D+ B . C . D+B . C . D+ B .C . D

Sd= A . C
Para Se

Para Sf
Sf=

A B+
AD + A
BC

B C +C D+

A . C+ A . B
Se= B . D+C . D+

A B+
A . C+ A
. B C
C . D+B D+
4

Autor principal et al.: Titulo

Implementacin y empaquetamiento del circuito 2

Implementacin del circuito completo


Cdigo ScaleClock
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity ScaleClock is
Port ( CLK_IN : in STD_LOGIC;
RST : in STD_LOGIC;
CLK_OUT : out STD_LOGIC;
hold : in STD_LOGIC);
end ScaleClock;
architecture Behavioral of ScaleClock is
signal temporal: STD_LOGIC := '0' ;
signal counter : integer range 0 to 50000000;
constant quotient : integer := 5000000;
begin
clk_out <= temporal;
frequency_divider: process (RST, CLK_IN, temporal, hold)
begin
if (RST = '1') then
temporal <= '0';
counter <= 0;
elsif rising_edge(CLK_IN) and hold = '0' then
if (counter = quotient) then
if (temporal = '0') then
temporal <= '1';
else
temporal <= '0';
end if;
counter <= 0;

Implementacin y empaquetamiento del circuito siete


segmentos

else
counter <= counter + 1;
temporal <= temporal;
end if;
end if;
end process;
end Behavioral;

Una vez generado el circuito se realizanlas conexiones


indicadas por el esquemtico final. Se hace la debida
implementacin en la tarjeta desarrollo. Donde se hace de
asinacion de pines externos.

if (x='0') then
siguiente<=s3;
else
siguiente<=s1;
end if;
when s3 =>
Z<="0001";
if (x='0') then
siguiente<=s0;
else
siguiente<=s2;
end if;
end case;

CDIGO FMS
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity FSM_main is
Port ( x : in STD_LOGIC;
clk : in STD_LOGIC;
reset : in STD_LOGIC;
Z : out STD_LOGIC_VECTOR (3 downto 0));
end FSM_main;

end process;
architecture Moore of FSM_main is
end Moore;
type estados is (s0,s1,s2,s3);
signal actual, siguiente: estados := s0;
begin

Concluciones.
Se tuvieron problemas en laimplementacion delcircuito
completo,ya que al hacer la respectiva implementacin en la
tarjeta nomostrabaningun resultado correspondiente a la
tecla, presionada.Para realizar la correccin ,primero se
comprob que la asignacin del teclado y el display fuera
correcta probndolo de manera individual cada uno de los
circuitos, el cual no mostraron ningn error.

SEQ: process(clk, reset)


begin
if reset = '1' then
actual <= s0;
elsif CLK'event and CLK = '1' then
actual <= siguiente;
end if;
end process SEQ;

Bibliografa
Boylestad, R. (s.f.). Electrnica, Teora de Circuitos .
Obtenido de
ftp://ftp.unicauca.edu.co/Facultades/FIET/DEIC
/Materias/Electronica_Basica/electronica_teoria_
de_circuitos_6_ed_boylestad.pdf
Buedo, S. L. (2012). Introduccin al lenguaje descripcin
de hardware VDHL. Obtenido de
http://www.iearobotics.com/tmp/seminariosvhdl.pdf

process(actual,x)
begin
case actual is
when s0 =>
Z<="1000";
if (x='0') then
siguiente<=s1;
else
siguiente<=s3;
end if;
when s1 =>
Z<="0100";
if (x='0') then
siguiente<=s2;
else
siguiente<=s0;
end if;
when s2 =>
Z<="0010";

Вам также может понравиться