当前位置: 首页 > news >正文

ZYNQ-按键消抖

文章目录

  • 基础知识
  • 管脚约束
  • 代码

基础知识

  • 数值表示:位宽进制值,如 2d0 表示 2 位宽十进制 0,这里的位宽是 bit, 1 bit = 8 byte
  • input 和 output 默认是 wire 类型
  • 关于 管脚约束中 I/O std 的选择:在这里插入图片描述

管脚约束

在这里插入图片描述

代码

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: LWX 
// 
// Create Date: 2025/08/03 17:38:28
// Design Name: 
// Module Name: key
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////module key_module(input clk,   output reg LED,input key );reg [1:0] mode = 2'd0;       // 2bit 十进制 0reg [19:0] cnt = 20'd0;reg [1:0] key_r = 2'b11;       // 接收按键状态的 2 位 regreg key_value = 0;      // 按键值always@(posedge clk) begin      // 按键信号同步时钟key_r[1] <= key_r[0];key_r[0] <= key;endwire key_negedge = key_r[1] & ~key_r[0];    // 按下为 1,弹起为 0,标志按键状态的检测,只有前一刻为 1,这一刻为 0 才是 按下always@(posedge clk) begincase (mode)2'd0 : begin            // 初始状态cnt <= 20'd0;if (key_negedge)   mode <= 2'd1;end 2'd1: beginif (cnt < 20'd1000000) begin        // 计数中cnt <= cnt + 1'b1;endelse beginif (key == 0) begin             // 如果按键按下且 20s 之内还是按下key_value <= ~key_value;mode <= 2'd2;endelsemode <= 2'd0;                            // 如果按键松开,回到初始状态endend2'd2: begin                             // 等待按键松开if (key == 1)mode <= 2'd0;enddefault: mode <= 2'd0;endcaseendalways@(posedge clk) beginLED <= key_value;endendmodule
http://www.xdnf.cn/news/1242541.html

相关文章:

  • JavaScript 中的流程控制语句详解
  • 3.JVM,JRE和JDK的关系是什么
  • 第二十四天(数据结构:栈和队列)队列实践请看下一篇
  • SQL注入SQLi-LABS 靶场less39-50详细通关攻略
  • 基于实时音视频技术的远程控制传输SDK的功能设计
  • 【ECCV2024】AdaCLIP:基于混合可学习提示适配 CLIP 的零样本异常检测
  • [GESP202306 四级] 2023年6月GESP C++四级上机题超详细题解,附带讲解视频!
  • 刷题记录0804
  • ref和reactive的区别
  • 8位以及32位的MCU如何进行选择?
  • ArrayDeque双端队列--底层原理可视化
  • Redis 常用数据结构以及单线程模型
  • LeetCode 140:单词拆分 II
  • Array容器学习
  • app-1
  • 优选算法 力扣 11. 盛最多水的容器 双指针降低时间复杂度 贪心策略 C++题解 每日一题
  • Javascript面试题及详细答案150道之(031-045)
  • python包管理器uv踩坑
  • 力扣面试150题--加一
  • PCL统计点云Volume
  • ArcGIS的字段计算器生成随机数
  • 配置Mybatis环境
  • 【多智能体cooragent】CoorAgent 系统中 5 个核心系统组件分析
  • 一起学springAI系列一:流式返回
  • 【实战】Dify从0到100进阶--中药科普助手(1)
  • 嵌入式硬件中三极管原理分析与控制详解
  • 零售消费行业研究系列报告
  • 微帧GPU视频硬编优化引擎:面向人工智能大时代的AI算法与硬编协同优化方案
  • [特殊字符]️ 整个键盘控制无人机系统框架
  • 【AI 加持下的 Python 编程实战 2_13】第九章:繁琐任务的自动化(中)——自动批量合并 PDF 文档