TECHNIKA UKŁADÓW PROGRAMOWALNYCH
Sprawozdanie
Temat : Generator bramki czasowej(t=1s i 2s , przerwa 1s)
prowadzący:
dr inż. Ryszard Szplet
Grupa : E1G2S1 Data oddania :13.03.2014
Skład podgrupy:
1.Wijata Bartosz
2.Woźniak Jakub
1.Opis programu .
Celem programu jest wyświetlenie 1 lub 2 na wyświetlaczu LCD( aby odróżnić 2 stany) . W przypadku 1 dioda będzie mrugać co 1 s a w 2 przypadku dioda będzie świeciła przez 2 s a przez 1 sekunde będzie zgaszona . Aby tego dokonać należy zmienić częstotliwość sygnału zegarowego .Do praktycznego testowania realizowanych projektów laboratoryjnych przeznaczona jest płytka testowa firmy Xilinx. Na płytce znajdują się dwa układy programowalne.
2.Kod programu.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity licznik is
port(CLK: in std_logic;
P1 : in STD_LOGIC;
seg : out std_logic_vector(7 downto 0);
Q: out std_logic);
end licznik;
architecture beh of licznik is
signal tq: std_logic_vector(6 downto 0);
signal prog : std_logic_vector(3 downto 0):="1010";
signal licz: std_logic_vector(3 downto 0);
signal wyjscie1: std_logic;
signal tq2: std_logic_vector(6 downto 0);
signal wyjscie2: std_logic;
begin
process (CLK,wyjscie1)
begin
if P1 = '1' then
seg <= "00010010";
if rising_edge(CLK) then
if tq < 10 then
tq <= tq+1;
else
tq <= "0000000";
wyjscie1<=not wyjscie1;
end if;
end if;
if rising_edge(wyjscie1) then
if licz<"1111" then licz<=licz+1; else licz<="0000";
end if;
end if;
if licz=prog then Q<='1'; end if;
if licz=0 then Q<='0'; end if;
else
if rising_edge(CLK) then
seg <= "11001111";
if tq2 < 100 then
tq2 <= tq2+1;
else
tq2 <= "0000000";
wyjscie2<=not wyjscie2;
end if;
end if;
Q <= wyjscie2;
end if;
end process;
end beh;