0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的按键检测设计

CHANBAEK 来源:HardwareStudy 作者:kknote 2023-04-18 14:47 次阅读

电子产品中我们会经常用到按键,比如电脑的键盘,手机的按键等等,按键就是人机交互的一种工具。 本文使用 FPGA 程序来检测与按键对应的 I/O口的电平高低来判断按键是否按下或松开,通过点亮/点灭开发板上相应的 LED 灯来指示按键的动作。

wKgaomQ-PKCAB6ZpAABKkE9F6c0340.jpg

按键原理图

从原理图可知:当按键按下时,FPGA 的 I/O 口检测到低电平; 当按键弹起时,FPGA 的 I/O口检测到高电平。

注意点:每 20ms 程序会检查一下按键的状,如果这次检测为低电平而且上次检测为高电平的话,说明有按键按下,相对应的 LED 灯反转。 一般按键按下时的按键抖动为低于 20ms 的脉冲信号,这些高频脉冲信号会被滤除。 提高了按键的可靠性。

verilog实现:

wKgZomQ-PKCAF--0AADxLNjWzAw517.jpg

wKgZomQ-PKCAOJhZAADcYNBo8i4066.jpg

用VHDL实现

wKgZomQ-PKCABQZVAAAd6dSRjJk207.jpg

wKgaomQ-PKCAc1aPAAAfKm0mjck404.jpg

wKgaomQ-PKCACuNaAAATEkQCcq8612.jpg

特别地:Verilog中的条件操作符号“?”,比如 assign c=d?a:b; 它的意思就是,当d=1时,把a的值赋给c,否则,把b的值赋给c。 实际在VHDL中,可以用一个if-else语句来实现同样的说法。

wKgZomQ-PKCAS1MsAAAEexSFibU763.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21325

    浏览量

    593216
  • 电子产品
    +关注

    关注

    6

    文章

    1077

    浏览量

    57302
  • led灯
    +关注

    关注

    22

    文章

    1554

    浏览量

    107032
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109302
  • 按键检测
    +关注

    关注

    0

    文章

    21

    浏览量

    4797
收藏 人收藏

    评论

    相关推荐

    深入而全面:FPGA学习之独立按键检测

    几乎没有哪一个系统没有输入输出设备,大到显示器,小到led灯,轻触按键。作为一个系统,要想稳定的工作,输入输出设备的性能占了很重要的角色。本实验,小梅哥就通过一个独立按键检测实验,来正式步入
    发表于 12-11 11:18 1w次阅读

    基于FPGA按键模式的分类和如何实现应用设计

    FPGA系统设计中,按键是最常见的人机交互接口部件。在没有微控制器参与的情况下,FPGA系统中按键的功能相对较弱,通常可以将按键抖动和
    发表于 07-20 17:13 2042次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>按键</b>模式的分类和如何实现应用设计

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第九章Vivado下按键实验

    按键FPGA设计当中最常用也是最简单的外设,本章通过按键检测实验,检测开发板的按键功能是否正常
    的头像 发表于 01-22 09:46 2168次阅读
    【ZYNQ Ultrascale+ MPSOC <b class='flag-5'>FPGA</b>教程】第九章Vivado下<b class='flag-5'>按键</b>实验

    【紫光同创国产FPGA教程】【第三章】按键检测实验

    通过按键检测实验,检测开发板的按键功能是否正常,了解硬件描述语言和FPGA的具体关系,学习PDS View RTL Schematic的使用
    的头像 发表于 02-02 13:22 4123次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第三章】<b class='flag-5'>按键</b><b class='flag-5'>检测</b>实验

    【紫光同创国产FPGA教程】【第六章】PDS下按键消抖实验

    按键做为基本的人机输入接口,在很多电子设计中都能见到,由于机械特性,在按键按下或松开的时候,按键输入值是有抖动的,无论按下去是多平稳,都难以消除抖动,按键消抖方式有很多,本实验主要是通
    的头像 发表于 02-04 13:24 5088次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第六章】PDS下<b class='flag-5'>按键</b>消抖实验

    fpga教程之——按键消抖

    ...............................................111. 回顾  这次我们继续给玩转LED加入些新元素,使用按键控制LED。点亮LED是利用了FPGA输出
    发表于 02-27 11:49

    小梅哥和你一起深入学习FPGA之独立按键检测

    设备,其与FPGA连接的IO口被接上了10K的上拉电阻,在按键没有按下时,FPGA检测到高电平;当按键按下后,
    发表于 11-10 12:59

    勇敢的芯伴你玩转Altera FPGA连载71:矩阵按键扫描检测

    `勇敢的芯伴你玩转Altera FPGA连载71:矩阵按键扫描检测特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1i5LMUUD 键盘分编码键盘和非编码
    发表于 05-14 15:34

    基于FPGA按键消抖电路设计

    采用了VHDL语言编程的设计方法,通过FPGA来实现按键消抖的硬件电路。论述了基于计数器、RS触发器和状态机3种方法来实现按键消抖电路,并给出仿真结果。通过下载到CycloneEP1C6T144芯片
    发表于 12-05 14:13 224次下载

    简谈单片机检测按键原理和中断按键检测的办法

    首先说一下独立键盘检测,在单片机外围电路中 ,通常用到的按键都是机械弹性开关,当开关闭合时,线路导通,开关断开时,线路断开。单片机检测按键的原理:
    发表于 06-27 10:44 1.9w次阅读
    简谈单片机<b class='flag-5'>检测</b><b class='flag-5'>按键</b>原理和中断<b class='flag-5'>按键</b><b class='flag-5'>检测</b>的办法

    梅哥和你一起深入学习FPGA之独立按键检测(下)

    关键词:FPGA , 按键检测 八、 仿真分析 由上图仿真结果可知,当有按键按下时,需要较长一段时间后,Key_Flag会有一个高电平脉冲,同时Key_Value更新为输入
    发表于 09-26 07:31 294次阅读

    小梅哥和你一起深入学习FPGA之独立按键检测(上)

    关键词:FPGA , 按键检测 几乎没有哪一个系统没有输入输出设备,大到显示器,小到led灯,轻触按键。作为一个系统,要想稳定的工作,输入输出设备的性能占了很重要的角色。本实验,小梅哥
    发表于 09-26 07:40 470次阅读

    【ZYNQ Ultrascale+ MPSOC FPGA教程】第九章Vivado下按键实验

    按键FPGA设计当中最常用也是最简单的外设,本章通过按键检测实验,检测开发板的按键功能是否正常
    发表于 01-25 08:27 5次下载
    【ZYNQ Ultrascale+ MPSOC <b class='flag-5'>FPGA</b>教程】第九章Vivado下<b class='flag-5'>按键</b>实验

    51汇编(七):按键检测

    按键检测原理按键相当于一个开关,一端连接单片机IO,一端接地;将单片机IO置高,当按键按下的时候相当于开关闭合,单片机IO接地,IO电平为低;因此,当单片机
    发表于 11-22 20:51 4次下载
    51汇编(七):<b class='flag-5'>按键</b><b class='flag-5'>检测</b>

    STM32速成笔记(3)—按键检测

    按键检测原理比较简单,按键按下和不按下,其连接引脚的电平是不一样的,按键检测正是通过检测
    的头像 发表于 10-23 17:31 1228次阅读
    STM32速成笔记(3)—<b class='flag-5'>按键</b><b class='flag-5'>检测</b>