Documente Academic
Documente Profesional
Documente Cultură
UNIVERSIDAD DE IBAGUE
FACULTAD DE INGENIERIA
INGENIERIA ELECTRONICA V SEMESTRE
IBAGUE TOLIMA
2014
OBJETIVO
elsif
rising_edge(entrada) then
if (contador =
124999) then
temporal <=
NOT(temporal);
contador <= 0;
else
contador <=
contador+1;
end if;
end if;
salida <=
temporal;
if clr='1' then -- Clear
Asincrono
h<=A;
display<="1111";
elsif clk'event and
clk='1'then --Deteccion del
flanco
case h is
when A =>
h<=B;
palabra<="1000";
display<="1111";--Cambio
de palabra y no hay salida en
el display
when B =>
if x="000" then
h<=C;
palabra<="0100"; --Cambio
de palabra
elsif x="001" then
h<=B;
display<="0011";
elsif x="010" then
h<=B;
display<="0010";
elsif x="100" then
h<=B;
display<="0001";
end if;
when C =>
if x="000" then
h<=D;
palabra<="0010"; --Cambio
de palabra
elsif x="001" then
h<=C;
display<="0110";
elsif x="010" then
h<=C;
display<="0101";
elsif x="100" then
h<=C;
display<="0100";
end if;
when D=>
if x="000" then
h<=E;
palabra<="0001"; --Cambio
de palabra
elsif x="001" then
h<=D;
display<="1001";
use
IEEE.STD_logic_unsigned.All;
entity clave is port
bcd<="0000";
conta<="0000";
leds <= "11111111";
mem1<=0;
mem2<=0;
mem3<=0;
mem4<=0;
oprimio<='0';
count<=0;
contaerror<=contaerror+1;
end if;
end if;
else
if(contaerror<2) then
bcd<="0000";
conta<="0000";
leds <= "11111111";
mem1<=0;
mem2<=0;
mem3<=0;
mem4<=0;
oprimio<='0';
count<=0;
contaerror<=contaerror+1;
end if;
end if;
else
if(contaerror<2) then
bcd<="0000";
conta<="0000";
leds <= "11111111";
mem1<=0;
mem2<=0;
mem3<=0;
mem4<=0;
oprimio<='0';
count<=0;
contaerror<=contaerror+1;
end if;
end if;
elsif (colum="0000") then -no se oprimio nada en
col=1000
bcd<= "0000";
fila<= "0100";
end if;
elsif(fila= "0100") then
if (colum="1000") then -PREGUNTA COLUMNAS
bcd<= "0100";
if(conta="0011" and
oprimio='0') then -pregunta por contador
leds <= "11110000";
oprimio <= '1';
conta<="1000";
mem4<= 4;
elsif(conta="0010" and
oprimio='0') then -pregunta por contador
leds <= "11111000";
conta<= "0011";
oprimio <= '1';
mem3<= 4;
elsif(conta="0001" and
oprimio='0') then -pregunta por contador
leds <= "11111100";
conta<= "0010";
oprimio <= '1';
mem2<= 4;
elsif(conta="0000" and
oprimio='0') then -pregunta por contador
leds <= "11111110";
mem1<= 4;
oprimio <= '1';
conta<= "0001";
end if;
elsif (colum="0100") then -se oprimio 5
bcd<= "0101";
if(conta="0011" and
oprimio='0') then -pregunta por contador
leds <= "11110000";
oprimio <= '1';
conta<="1000";
mem4<= 5;
elsif(conta="0010" and
oprimio='0') then -pregunta por contador
leds <= "11111000";
conta<= "0011";
oprimio <= '1';
mem3<= 5;
elsif(conta="0001" and
oprimio='0') then -pregunta por contador
leds <= "11111100";
conta<= "0010";
oprimio <= '1';
mem2<= 5;
elsif(conta="0000" and
oprimio='0') then -pregunta por contador
leds <= "11111110";
mem1<= 5;
oprimio <= '1';
conta<= "0001";
end if;
elsif (colum="0010") then -se oprimio 6
bcd<= "0110";
if(conta="0011" and
oprimio='0') then -pregunta por contador
leds <= "11110000";
oprimio <= '1';
conta<="1000";
mem4<= 6;
elsif(conta="0010" and
oprimio='0') then -pregunta por contador
elsif(conta="0001" and
oprimio='0') then -pregunta por contador
leds <= "11111100";
conta<= "0010";
oprimio <= '1';
mem2<= 7;
elsif(conta="0000" and
oprimio='0') then -pregunta por contador
leds <= "11111110";
mem1<= 7;
oprimio <= '1';
conta<= "0001";
end if;
elsif (colum="0100") then -se oprimio 8
bcd<= "1000";
if(conta="0011" and
oprimio='0') then -pregunta por contador
leds <= "11110000";
oprimio <= '1';
conta<="1000";
mem4<= 8;
elsif(conta="0010" and
oprimio='0') then -pregunta por contador
leds <= "11111000";
conta<= "0011";
oprimio <= '1';
mem3<= 8;
elsif(conta="0001" and
oprimio='0') then -pregunta por contador
leds <= "11111100";
conta<= "0010";
oprimio <= '1';
mem2<= 8;
elsif(conta="0000" and
oprimio='0') then -pregunta por contador
if;
if;
process;
nose;
CONCLUSIONES