当前位置: 首页 > 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.lryc.cn/news/609811.html

相关文章:

  • 如何在 Ubuntu 24.04 LTS 上安装 Docker
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现路口车辆速度的追踪识别(C#代码UI界面版)
  • Apache Spark 的结构化流
  • bypass
  • 基于PSO-NSGAIII混合优化的生产调度算法matlab仿真,输出甘特图,对比PSO和NSGAIII
  • 开源的现代数据探索和可视化平台:Apache Superset 从 PyPI 安装 Superset
  • 基于深度学习的医学图像分析:使用PatchGAN实现医学图像分割
  • 优选算法 力扣 11. 盛最多水的容器 双指针降低时间复杂度 贪心策略 C++题解 每日一题
  • AI开灯的几种方法,与物理世界的交互过渡
  • AUTOSAR CP:深度揭秘APPL层(Application Layer)!SWC分配策略与端口交互的终极指南
  • 交叉验证:原理、作用与在机器学习流程中的位置
  • LeetCode 135:分糖果
  • lodash的替代品es-toolkit详解
  • 认识爬虫 —— xpath提取
  • Go语言高并发价格监控系统设计
  • Scrapy 工作流程深度解析:引擎驱动的完美协作
  • 从医学视角深度解析微软医学 Agent 服务 MAI-DxO
  • STM32入门之SPI协议
  • Hexo - 免费搭建个人博客07 - 添加右上角的“目录”
  • (2023ICML)BLIP-2:使用冻结图像编码器和大语言模型引导语言-图像预训练
  • 数据分页异步后台导出excel
  • VBA-Excel图片下载到本地文件夹
  • 基于知识图谱增强的RAG系统阅读笔记(一)提升大语言模型的准确性
  • 从exec到Shell:深度解析Linux进程等待,程序替换与自主Shell实现
  • Assistant API——构建基于大语言模型的智能体应用
  • 在 C++ 中实现类似 Vue 3 的 Pinia 状态管理库
  • 反转字符串中的元音字母:Swift 双指针一步到位
  • 数据在内存中的存储深度解析
  • 【基础完全搜索】USACO Bronze 2019 January - 猜动物Guess the Animal
  • [找出字符串中第一个匹配项的下标]