当前位置:网站首页>FPGA:基础入门按键控制LED灯
FPGA:基础入门按键控制LED灯
2022-08-05 10:10:00 【最早的早安...】
题目概述:
使用按键控制LED灯亮灭。
无按键按下——LED全灭
按下KEYO——从右向左的流水灯效果
按下KEY1——从左向右的流水灯效果
按下KEY2——LED闪烁
按下KEY3——LED全亮
编程:
`timescale 1ns / 1ps
module key_led(
input sys_clk,
input sys_rst_n,
input [3:0] key,
output reg [3:0] led
);
//定义0.2s计数器 0.2s/20ns=10^7
reg [23:0] cnt;
[email protected](posedge sys_clk or negedge sys_rst_n)
begin
if(!sys_rst_n)
cnt<=0;
else if(cnt<24'd999_9999)
cnt<=cnt+1'b1;
else
cnt<=0;
end
reg [1:0] led_control;//4个LED 00 01 10 11
//状态切换和状态赋值
[email protected](posedge sys_clk or negedge sys_rst_n)
begin
if(!sys_rst_n)
led_control<=4'b0;
else if(cnt==24'd999_9999)
led_control<=led_control+1'b1;
else
led_control<=led_control;
end
[email protected](posedge sys_clk or negedge sys_rst_n)
begin
if(!sys_rst_n)
led<=4'b0000;
else if(key[0]==0)
case(led_control)
2'b00:led<=4'b1000;
2'b01:led<=4'b0100;
2'b10:led<=4'b0010;
2'b11:led<=4'b0001;
endcase
else if(key[1]==0)
case(led_control)
2'b00:led<=4'b0001;
2'b01:led<=4'b0010;
2'b10:led<=4'b0100;
2'b11:led<=4'b1000;
endcase
else if(key[2]==0)
case(led_control)
2'b00:led<=4'b0000;
2'b01:led<=4'b1111;
2'b10:led<=4'b0000;
2'b11:led<=4'b1111;
endcase
else if(key[3]==0)
led<=4'b1111;
else
led<=4'b0000;
end
endmodule
上机实践:
QQ视频20220804160212
边栏推荐
猜你喜欢
【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different
Data Middle Office Construction (10): Data Security Management
茄子科技CEO仇俊:以用户为中心,做用户真正需要的产品
19.服务器端会话技术Session
MySQL advanced (twenty-seven) database index principle
dotnet OpenXML 解析 PPT 图表 面积图入门
The founder of the DFINITY Foundation talks about the ups and downs of the bear market, and where should DeFi projects go?
STM32+ULN2003 drives 28BYJ4 stepper motor (forward and reverse according to the number of turns)
leetcode: 529. 扫雷游戏
【AGC】增长服务1-远程配置示例
随机推荐
MySQL transactions
百年北欧奢华家电品牌ASKO智能三温区酒柜臻献七夕,共品珍馐爱意
three物体围绕一周呈球形排列
mysql索引
Open Source Summer | How OpenHarmony Query Device Type (eTS)
How can project cost control help project success?
Introduction to SD NAND Flash!
NowCoderTOP35-40 - continuous update ing
Oracle 19.3 restart 环境
语音社交软件开发——充分发挥其价值
公众号如何运维?公众号运维专业团队
【温度预警程序de开发】事件驱动模型实例运用
QSS 选择器
three.js调试工具dat.gui使用
七夕浪漫约会不加班,RPA机器人帮你搞定工作
微服务 技术栈
长达四年的减肥记录
Technical dry goods | Hausdorff distance for image segmentation based on MindSpore
three objects are arranged in a spherical shape around the circumference
Voice-based social software development - making the most of its value