您的位置:电子发烧友网 > 电子技术应用 > 实验中心 > 编程实验 >
BJ-EPM CPLD开发板:VHDL入门例程3(4)
2012年05月16日 11:01 来源:本站整理 作者:秩名 我要评论(0)
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;
本文导航
- 第 1 页:BJ-EPM CPLD开发板:VHDL入门例程3(1)
- 第 2 页:第一拍按键锁存
- 第 3 页:消抖后键值锁存
- 第 4 页:水灯左移/右移
标签: