BJ-EPM CPLD開發(fā)板:VHDL入門例程2(3)

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

--消抖后第一拍按鍵鎖存

  process(Clk,Rst_n)

  begin

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

  key_valuer0 <= "111";

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

  key_valuer0 <= key_value; --鎖存上一拍鍵值

  end if;

  end process;

  --消抖后第二拍按鍵鎖存

  process(Clk,Rst_n)

  begin

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

  key_valuer1 <= "111";

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

  key_valuer1 <= key_valuer0; --鎖存上一拍鍵值

  end if;

  end process;

  --消抖后按鍵下降沿檢測(cè)

  key_valueneg <= key_valuer1 AND (NOT key_valuer0); --消抖后按鍵下降沿標(biāo)志位,高電平有效一個(gè)時(shí)鐘周期

  --LED狀態(tài)控制

  process(Clk,Rst_n)

  begin

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

  Led_out <= "000";

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

  if (key_valueneg(0) = '1') then --按鍵0按下

  Led_out(0) <= NOT Led_out(0); --LED0亮滅狀態(tài)更替

  end if;

  if (key_valueneg(1) = '1') then --按鍵1按下

  Led_out(1) <= NOT Led_out(1); --LED1亮滅狀態(tài)更替

  end if;

  if (key_valueneg(2) = '1') then --按鍵2按下

  Led_out(2) <= NOT Led_out(2); --LED2亮滅狀態(tài)更替

  end if;

  end if;

  end process;

  end architecture KEY_CONTROL_OF_LED;

上一頁(yè)123

本文導(dǎo)航