新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA驅(qū)動(dòng)LED靜態(tài)顯示和動(dòng)態(tài)顯示的VHDL程序

FPGA驅(qū)動(dòng)LED靜態(tài)顯示和動(dòng)態(tài)顯示的VHDL程序

作者: 時(shí)間:2012-05-29 來源:網(wǎng)絡(luò) 收藏

  din1 : in std_logic_vector(6 downto 0); --譯碼后的數(shù)據(jù)信號(hào)1(4位2進(jìn)制數(shù)據(jù)

  通過例1中的decoder模塊譯碼得到din1,din2,din3,din4)

  din2 : in std_logic_vector(6 downto 0); --譯碼后的數(shù)據(jù)信號(hào)2

  din3 : in std_logic_vector(6 downto 0); --譯碼后的數(shù)據(jù)信號(hào)3

  din4 : in std_logic_vector(6 downto 0); --譯碼后的數(shù)據(jù)信號(hào)4

  shift: out std_logic_vector(3 downto 0); --位選信號(hào)

  bus4 : out std_logic_vector(6 downto 0)); --數(shù)據(jù)信號(hào)

  end dynamic;

  architecture Behavioral of dynamic is

  signal scan_clk:std_logic_vector(1 downto 0);

  begin

  process(clk,scan_clk,reset) --分頻進(jìn)程

  variable scan:std_logic_vector(17 downto 0);

  begin

  if reset='1' then

  scan:=000000000000000000;

  scan_clk=00;

  elsif clk'event and clk='1'then

  scan:=scan+1;

  end if;

  scan_clk=scan(17 downto 16);

  end process;

  process(scan_clk,din1,din2,din3,din4) --掃描進(jìn)程

  begin

  case scan_clk is

  when 00=>

  bus4=din1;

  shift=0001;

  when 01=>

  bus4=din2;

  shift=0010;

  when 10=>

  bus4=din3;

  shift=0100;

  when 11=>

  bus4=din4;

  shift=1000;

  when others=> bus4=0000000;shift=0000;

  end case;

  end process;

  end Behavioral;


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA VHDL LED 驅(qū)動(dòng)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉