BJ-EPM CPLD開(kāi)發(fā)板:VHDL入門(mén)例程3(4)

2012年05月16日 11:01 來(lái)源:本站整理 作者:秩名 我要評(píng)論(0)

--按鍵控制LED控制位狀態(tài)(流水燈左移/右移)

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --異步復(fù)位

  led_direction <= '0';

  elsif (Clk'event AND Clk = '1') then --時(shí)鐘上升沿

  if (key_valueneg(1) = '1') then --控制流水燈工作/停止

  led_direction <= '1'; --鎖存鍵值

  elsif (key_valueneg(0) = '1') then --控制流水燈工作/停止

  led_direction <= '0'; --鎖存鍵值

  end if;

  end if;

  end process;

  --320ms計(jì)數(shù)

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --異步復(fù)位

  cnt320ms <= x"000000";

  elsif (Clk'event AND Clk = '1') then --時(shí)鐘上升沿

  if (cnt320ms < 10#16000000#) then --320ms計(jì)數(shù)

  cnt320ms <= cnt320ms+1;

  else

  cnt320ms <= x"000000";

  end if;

  end if;

  end process;

  --LED顯示控制

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --異步復(fù)位

  Led_out <= "0001";

  elsif (Clk'event AND Clk = '1') then --時(shí)鐘上升沿

  if (cnt320ms = 10#16000000# AND led_display = '1') then --每320ms做一次LED移位判斷

  if (led_direction = '1') then --右移

  Led_out <= Led_out(0) & Led_out(3) & Led_out(2) & Led_out(1);

  --Led_out <= Led_out SLA 1;

  else --左移

  Led_out <= Led_out(2) & Led_out(1) & Led_out(0) & Led_out(3);

  --Led_out <= Led_out SRA 1;

  end if;

  end if;

  end if;

  end process;

  end architecture KEY_CONTROL_OF_LED;


上一頁(yè)1234

本文導(dǎo)航