您的位置:电子发烧友网 > 电子技术应用 > 实验中心 > 编程实验 >
BJ-EPM CPLD开发板:VHDL入门例程2(3)
2012年05月16日 10:52 来源:本站整理 作者:秩名 我要评论(0)
process(Clk,Rst_n)
begin
if (Rst_n = '0') then --异步复位
key_valuer0 <= "111";
elsif (Clk'event AND Clk = '1') then --时钟上升沿
key_valuer0 <= key_value; --锁存上一拍键值
end if;
end process;
--消抖后第二拍按键锁存
process(Clk,Rst_n)
begin
if (Rst_n = '0') then --异步复位
key_valuer1 <= "111";
elsif (Clk'event AND Clk = '1') then --时钟上升沿
key_valuer1 <= key_valuer0; --锁存上一拍键值
end if;
end process;
--消抖后按键下降沿检测
key_valueneg <= key_valuer1 AND (NOT key_valuer0); --消抖后按键下降沿标志位,高电平有效一个时钟周期
--LED状态控制
process(Clk,Rst_n)
begin
if (Rst_n = '0') then --异步复位
Led_out <= "000";
elsif (Clk'event AND Clk = '1') then --时钟上升沿
if (key_valueneg(0) = '1') then --按键0按下
Led_out(0) <= NOT Led_out(0); --LED0亮灭状态更替
end if;
if (key_valueneg(1) = '1') then --按键1按下
Led_out(1) <= NOT Led_out(1); --LED1亮灭状态更替
end if;
if (key_valueneg(2) = '1') then --按键2按下
Led_out(2) <= NOT Led_out(2); --LED2亮灭状态更替
end if;
end if;
end process;
end architecture KEY_CONTROL_OF_LED;
本文导航
- 第 1 页:BJ-EPM CPLD开发板:VHDL入门例程2(1)
- 第 2 页:第二拍按键锁存
- 第 3 页:消抖后第一拍按键锁存
标签: