BJ-EPM CPLD开发板:VHDL入门例程3(4)

2012年05月16日 11:01 来源:本站整理 作者:秩名 我要评论(0)

--按键控制LED控制位状态(流水灯左移/右移)

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --异步复位

  led_direction <= '0';

  elsif (Clk'event AND Clk = '1') then --时钟上升沿

  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计数

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --异步复位

  cnt320ms <= x"000000";

  elsif (Clk'event AND Clk = '1') then --时钟上升沿

  if (cnt320ms < 10#16000000#) then --320ms计数

  cnt320ms <= cnt320ms+1;

  else

  cnt320ms <= x"000000";

  end if;

  end if;

  end process;

  --LED显示控制

  process(Clk,Rst_n)

  begin

  if (Rst_n = '0') then --异步复位

  Led_out <= "0001";

  elsif (Clk'event AND Clk = '1') then --时钟上升沿

  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;


上一页1234

本文导航