提示:以下是本篇文章正文内容,下面案例可供参考
一、实验要求
1.无按键按下时,LED灯全灭;
2.按键1按下时,LED灯显示.自右向左的流水效果;
3.按键2按下时,LED灯显示自左向右的流水效果;
4.按键3按下时,四个LED灯同时闪烁
5.按键4按下时,LED灯全亮
二、实验原理
如图1所示,本实验使用四个按键开关控制四个LED灯
图 1 按键电路原理图
如上图所示,开发板上的5个按键未按下时,输出高电平,按下后,输出低电平。本实验中,系统时钟、复位按键、按键和LED灯的管脚如下表所示
图 2 触摸按键控制LED管脚分配图
LED在流水效果和闪烁效果在时间间隔均为0.2秒,因此需要在程序中定义一个0.2s的计数器,即每隔0.2s,状态计数器加一。根据当前按键的状态选择不同的显示模式,不同的显示模式下四个led灯的亮灭随状态计数器的值改变,从而呈现出不同的显示效果。文章来源:https://www.toymoban.com/news/detail-717193.html
图 3 系统框图文章来源地址https://www.toymoban.com/news/detail-717193.html
二、代码
1.按键控制led模块的代码如下所示:
module key_led (
input sys_clk , //50Mhz系统时钟
input sys_rst_n, //系统复位,低有效
input [3:0] key, //按键输入信号
output reg [3:0] led //LED输出信号
);
//reg define
reg [23:0] cnt;
reg [1:0] led_control;
//用于计数0.2s的计数器
always @ (posedge sys_clk or negedge sys_rst_n) begin
if
到了这里,关于摁键控制LED灯(FPGA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!