?? leda.vhd
字號:
--www.21eda.com
--深圳市21EDA電子
--學習LED控制。LED燈對應的腳為0時,點亮。為1時變暗
--視頻教程適合我們21EDA電子的所有學習板
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY LEDA is
PORT(
clk:in STD_LOGIC; --System Clk
led1:out STD_LOGIC_VECTOR(7 DOWNTO 0)); --LED output
END LEDA ;
ARCHITECTURE light OF LEDA IS
SIGNAL clk1,CLK2:std_logic;
BEGIN
P1:PROCESS (clk)
VARIABLE count:INTEGER RANGE 0 TO 9999999;
BEGIN
IF clk'EVENT AND clk='1' THEN --當時鐘脈沖上升沿到來時執行下面語句
IF count<=4999999 THEN
clk1<='0'; --當count<=499999時divls=0并且count加1
count:=count+1;
ELSIF count>=4999999 AND count<=9999999 THEN --當ount>=499999 并且 count<=999998時
clk1<='1'; --
count:=count+1; --clk1=1并且count加1
ELSE count:=0; --當count>=499999時清零count1
END IF;
END IF;
END PROCESS ;
P3:PROCESS(CLK1)
begin
IF clk1'event AND clk1='1'THEN
clk2<=not clk2;
END IF;
END PROCESS P3;
---------------------------------------------------------
P2:PROCESS(clk2)
variable count1:INTEGER RANGE 0 TO 16; --定義的整型變量用做計數器
BEGIN --
IF clk2'event AND clk2='1'THEN --當時鐘脈沖上升沿到來時執行下面語句
if count1<=16 then --當COUNT1<=9時執行下面語句
if count1=15 then --當COUNT1=8時,COUNT1清零
count1:=0; --
end if; --
CASE count1 IS --CASE語句給輸出LED1賦值
WHEN 0=>led1<="11111110"; --依次點亮發光二極管
WHEN 1=>led1<="11111100"; --
WHEN 2=>led1<="11111000"; --
WHEN 3=>led1<="11110000"; --
WHEN 4=>led1<="11100000"; --
WHEN 5=>led1<="11000000"; --
WHEN 6=>led1<="10000000"; --
WHEN 7=>led1<="00000000";
WHEN 8=>led1<= "01111111"; --依次點亮發光二極管
WHEN 9=>led1<= "00111111"; --
WHEN 10=>led1<="00011111"; --
WHEN 11=>led1<="00001111"; --
WHEN 12=>led1<="00000111"; --
WHEN 13=>led1<="00000011"; --
WHEN 14=>led1<="00000001"; --
WHEN 15=>led1<="00000000"; -- --
WHEN OTHERS=>led1<="11111111";
END CASE;
count1:=count1+1;
end if;
end if;
end process;
END light;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -