一、按键开关

1、按键开关(轻触开关):主要是指轻触式按键开关,属于电子元器件类,使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。

2、自锁按键:在开关按钮第一次按时,开关接通并保持,即自锁,在开关按钮第二次按时,开关断开,同时开关按钮弹出来。 自锁开关一般是指开关自带机械锁定功能,按下去,松手后按钮是不会完全跳起来的,处于锁定状态,需要再按一次,才解锁完全跳起来。

二、硬件设计

1、 按键模块原理图如下:

对于管脚分配,可查看对应的FPGA原理图。

2、实验目的

使用开发板上的四个按键控制四个LED灯,没有按键按下时,四个灯全灭当按下KWEY0时,实现自右向左的流水灯当按下KWEY1时,实现自左向右的流水灯当按下KWEY2时,实现四个灯同时闪烁当按下KWEY3时,实现四个灯全亮

3、系统框图如下:

50Hhz时钟:由开发板上的晶振提供;

rst复位信号:由开发板上的复位按键提供;

三、程序代码

module key_led(input clk,input rst_n,  //(_n表示复位信号低电平有效)input [3:0] key,  //key的位宽为4output reg [3:0] led   //led的位宽为4);//定义计数器reg [23:0] cnt;//定义状态计数器,4个状态,所以计数器位宽是2reg [1:0] led_ctrl;//always模块定义一个0.2s的计数器
always @ (posedge clk or negedge rst_n) begin //用一个上升沿或者下降沿触发always模块if(!rst_n)cnt <= 24'd0; //清零elseif(cnt < 24'd10000000)cnt <= cnt + 1'b1; //累加elsecnt <= 24'd0; //清零
end//每隔0.2s改变计数器状态
always @ (posedge clk or negedge rst_n) begin //用一个上升沿或者下降沿触发always模块if(!rst_n)  //复位led_ctrl <= 2'd0; //状态计数器清零,led_ctrl位宽为2,所以是2'd0;elseif(cnt == 24'd1000_0000) //0.2s时,计数器加1led_ctrl <= led_ctrl + 1'b1;  //累加elseled_ctrl <= led_ctrl;
end //根据按键改变led状态
always @ (posedge clk or negedge rst_n) begin //用一个上升沿或者下降沿触发always模块if(!rst_n)  //复位led <= 4'b0000; //状态计数器清零,led为4种状态,所以是4'b0000; elseif(key[0] == 1'b0) case(led_ctrl)   //从右向左的流水灯2'd0:  led <= 4'b1000;2'd1:  led <= 4'b0100;2'd2:  led <= 4'b0010;2'd3:  led <= 4'b0001;   endcaseelse if(key[1] == 1'b0) case(led_ctrl)   //从左向右的流水灯2'd0:  led <= 4'b0001;2'd1:  led <= 4'b0010;2'd2:  led <= 4'b0100;2'd3:  led <= 4'b1000;   endcaseelse if(key[2] == 1'b0) case(led_ctrl)   //四个灯同时闪烁2'd0:  led <= 4'b1111;2'd1:  led <= 4'b0000;2'd2:  led <= 4'b1111;2'd3:  led <= 4'b0000;   endcaseelse if(key[3] == 1'b0)   //四个灯全亮led <= 4'b1111;else     //无按键按下时,灯全灭led <= 4'b0000;
endendmodule

四、演示视频

FPGA学习笔记之按键控制LED演示效果

FPGA之按键控制LED相关推荐

  1. FPGA 双按键控制LED呼吸灯实现

    FPGA &&双按键控制&&LED呼吸灯实现 文章目录 FPGA &&双按键控制&&LED呼吸灯实现 1.按键脉冲设计 1.1按键脉冲信 ...

  2. 二:FPGA导航按键控制LED

    FPGA按键控制LED 软件 芯片 功能 代码 代码解释 软件 软件使用的是ISE14.6(因为穷没买7系列,劝大家买个7系列的板子,这个软件装着还挺费事,不如Vivado好用,且6和7软件不通用) ...

  3. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  4. 基于FPGA的两位按键控制LED数码管加减计数实验

    两位按键控制LED数码管加减计数实验 这是一篇拖了一个多月的文章,主要是基于FPGA利用按键消抖原理与动态数码管驱动原理相结合,来实现一个利用两位按键来控制数码管实现0-99的加法计数或者减法计数功能 ...

  5. 奋斗的小孩系列 FPGA学习altera系列: 第十篇 按键控制LED

    奋斗的小孩系列 FPGA学习altera系列: 第十篇 按键控制LED 作者:奋斗的小孩 郝旭帅(转载请注明出处) 大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江 ...

  6. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  7. FPGA学习之按键控制led

    按键控制led 设计要求:通过8个按键分别控制一个led的亮灭. 该实验有两个模块:按键缓存模块和由按键值控制led模块 按键缓存模块:通过二级缓存,将按键值存入key_r1,防止按键时产生的尖峰脉冲 ...

  8. FPGA:基础入门按键控制LED灯

    题目概述: 使用按键控制LED灯亮灭. 无按键按下--LED全灭 按下KEYO--从右向左的流水灯效果 按下KEY1--从左向右的流水灯效果 按下KEY2--LED闪烁 按下KEY3--LED全亮 编 ...

  9. petalinux zynq spi_ZYNQ 系列 01 | PL 实现按键控制 LED(1)

    注:本篇文章由[开源骚客:OpenSoc]公众号首发,现转载至头条号. 新的开始,这一篇文章,就算是使用 Vitis 开发 ZYNQ 的第一篇文章吧. 计划把 ZYNQ 开发写成一个系列,所使用的的软 ...

最新文章

  1. android studio 库项目管理,在Android Studio中将现有项目转换为库项目
  2. iOS开发 BLE 蓝牙4.0
  3. mysql 替代 in_mysql用什么代替in
  4. 腾讯的一笔画游戏--巧妙解法
  5. LeetCode 1887. 使数组元素相等的减少操作次数(map)
  6. OpenSUSE下支持托盘的邮件客户端Sylpheed
  7. 一根绳子从一头烧需30时分钟_小学生一分钟跳绳满分训练指南
  8. android左右滑动fragment,Android基于ViewPager+Fragment实现左右滑屏效果的方法
  9. Linux配置本地/外网访问Apache服务器,手把手教你搭建Ngrok——以小米球Ngrok为例
  10. 利用图像来测量的技术——数字图像相关法(DIC)
  11. QT-700多种实用好看的图标,直接拿来用
  12. ubuntu查看磁盘分区使用
  13. 密西根州立大学计算机qs分数,密歇根州立大学有哪些专业_专业排名(QS世界排名)...
  14. Linux下用五笔输入法
  15. 什么是股票交易接口?
  16. Java学习lesson 15
  17. 身在北京,都有故事:九位北漂的心酸故事,只有经历过才有体会!
  18. 开奶茶店,哪里学奶茶的制作配方?
  19. 2017cad光标大小怎么调_AutoCAD 2010如何调整光标的大小?调整光标大小的方法
  20. 导师的SCI很少一作和通讯是怎么回事?

热门文章

  1. IOS6旋转屏、锁定横屏的实现(兼容IOS5)
  2. vue-router 路由超详细教程
  3. Emit基本概念介绍
  4. Bugku—come_game
  5. OpenGL矩阵学习
  6. 可调电阻封装图_17种元器件PCB封装图鉴,美翻了(附PCB元件库)
  7. 2022年江西省安全保护服务人员(中级保安员)考试练习题及答案
  8. 基于NRF51822实现触摸按键方案
  9. Java接口的声明和实现
  10. zabbix监控linux网卡流量,zabbix监控网卡进出流量与磁盘空间变化情况