FPGA学习之按键控制led
按键控制led
设计要求:通过8个按键分别控制一个led的亮灭。
该实验有两个模块:按键缓存模块和由按键值控制led模块
按键缓存模块:通过二级缓存,将按键值存入key_r1,防止按键时产生的尖峰脉冲影响按键值。
由按键值控制led模块:采用case语句,一一对应控制led的亮灭。
顶层代码:
module keyled(clk,rst_n,key,led);
input clk;
input rst_n;
input [7:0]key;
output [7:0]led;
//二级缓存按键数据
reg [7:0]key_r0,key_r1;
always @(posedge clk or negedge rst_n)
if(!rst_n)begin
key_r0 <= 8'd0;
key_r1 <= 8'd0;
end
else begin
key_r0 <= key;
key_r1 <= key_r0;
end
reg [7:0]led_r;
always @(key_r1)begin
case(key_r1)
8'b1111_1110:led_r = 8'b1111_1110;
8'b1111_1101:led_r = 8'b1111_1100;
8'b1111_1011:led_r = 8'b1111_1000;
8'b1111_0111:led_r = 8'b1111_0000;
8'b1110_1111:led_r = 8'b1110_0000;
8'b1101_1111:led_r = 8'b1100_0000;
8'b1011_1111:led_r = 8'b1000_0000;
8'b0111_1111:led_r = 8'b0000_0000;
default:led_r = 8'b1111_1111;
endcase
end
assign led = led_r;
endmodule
测试文件:除了clk,rst_n信号外,还设置了8+1种不同的key值(最后一种是乱序的按键),以便观察led。
代码:
`timescale 1ns/1ns
`define clk_period 20
module keyled_tb;
reg clk;
reg rst_n;
reg [7:0]key;
wire [7:0]led;
keyled keyled(
.clk(clk),
.rst_n(rst_n),
.key(key),
.led(led)
);
initial clk=1;
always#(`clk_period/2)clk=~clk;
initial begin
rst_n=0;
key=0;
#(`clk_period*20+1);
rst_n=1;
#`clk_period;
key=8'b1111_1110;
#(`clk_period*10);
key=8'b1111_1101;
#(`clk_period*10);
key=8'b1111_1011;
#(`clk_period*10);
key=8'b1111_0111;
#(`clk_period*10);
key=8'b1110_1111;
#(`clk_period*10);
key=8'b1101_1111;
#(`clk_period*10);
key=8'b1011_1111;
#(`clk_period*10);
key=8'b0111_1111;
#(`clk_period*10);
key=8'b1101_1110;
#(`clk_period*10);
end
endmodule
仿真波形图:
![](http://download.bbs.ednchina.com/images/attachments/201511/9950401770_TIME_1448891400373.jpg)
FPGA学习之按键控制led相关推荐
- STM32学习:按键控制LED
STM32学习:按键控制LED 文章目录 前言 一.所用知识点复习 1.stm32工作模式(*注意上下拉输入的区别*) 2.按键抖动与常见按键接法 按键抖动: 按键消抖: 常见按键接法: 3.GPIO ...
- Chapter002-FPGA学习之按键控制LED灯和蜂鸣器
硬件原理 在正点原子开发板中,LED模块高电平驱动,蜂鸣器也是高电平驱动,按键按下,对应引脚为低电平: 原理图如下: 以上设备与FPGA引脚的对照表如下: 设备 引脚名称 对应FPGA引脚 按键 PL ...
- 51单片机入门学习------独立按键控制LED亮灭
一.独立按键 1.特点:同侧导通,异侧断开 2.独立按键的I/O口 单片机上电后,所有I/O口默认都是高电平.没有按开关时都是高电平,按下后变成低电平. 寄存器通过检测高低电平检测按键是否被按下 1 ...
- 奋斗的小孩系列 FPGA学习altera系列: 第十篇 按键控制LED
奋斗的小孩系列 FPGA学习altera系列: 第十篇 按键控制LED 作者:奋斗的小孩 郝旭帅(转载请注明出处) 大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江 ...
- FPGA之按键控制LED
一.按键开关 1.按键开关(轻触开关):主要是指轻触式按键开关,属于电子元器件类,使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实 ...
- led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验
1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...
- ZYNQ学习笔记(五)---按键控制LED灯亮灭实验
这个实验其实很早就做了,但是由于这段时间自己一直在忙一些其他的事所以没有及时更新.今天抽出个空来更新一下.本次实验是关于按键控制LED亮灭.其中涉及到的内容有计数器.按键消抖以及一些简单的逻辑. 1. ...
- ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED
ZYNQ学习笔记_GPIO实例:通过EMIO实现按键控制LED 总体思路 Block Design界面配置IP核并导出硬件配置 在SDK中编写C代码 下载PS和PL的联合工程到开发板 总体思路 首先需 ...
- FPGA 双按键控制LED呼吸灯实现
FPGA &&双按键控制&&LED呼吸灯实现 文章目录 FPGA &&双按键控制&&LED呼吸灯实现 1.按键脉冲设计 1.1按键脉冲信 ...
最新文章
- 中科院 工程硕士专业课 复试考试前的辅导安排
- [UE4蓝图教程]蓝图入门之蓝图通信机制入门
- 1.14 梯度检验应用的注意事项-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 2015 Google code jam Qualification Round A 水
- VB计算圆周率(二)
- python 美化ppt_python操作PPT------PPT内容样式调整
- Linux CentOS 7安装Oracle11g超完美教程
- 正弦余弦怎么用计算机计算公式,关于正弦函数和余弦函数的计算公式
- EXCEL VBA 之录制宏
- CANopen协议解读
- vue把几张图片logo。二维码。背景合成一个海报并下载,使用canvas
- 宝塔绑定域名访问不了_千字长文教你使用 宝塔面板 快速搭建网站
- 光学心率传感器工作原理
- Java募捐_GitHub - javayhu/XingShan: 使徒行善,让行善成为一种习惯
- SPFA+寻路(行路难,洛谷2832)
- sangoma 蓝色逍遥盒
- VMware安装Ubuntu虚拟机如何连接网络
- 四论设立永中软件的非法性
- [ExtJS5学习笔记]第九节 Extjs5的mvc与mvvm框架结构简介
- 100行matlab,中国大学MOOC: Matlab中可以产生100行100列元素全是1的正确的命令是() 答案:ones(100)...