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

最专业网站建设农产品线上推广方案

最专业网站建设,农产品线上推广方案,中国做出口的网站平台,无锡网站建设专家无锡网站制作实现按键消抖功能: 1.滤除按键按下时的噪声和松开时的噪声信号。 2.获取已消抖的按键按下的标志信号。 3.实现已消抖的按键的连续功能。 Verilog实现 模块端口 key_filter(input wire clk ,input wire rst_n ,input wire key_in , //按下按键时为0output …

实现按键消抖功能:

1.滤除按键按下时的噪声和松开时的噪声信号。

2.获取已消抖的按键按下的标志信号。

3.实现已消抖的按键的连续功能。

Verilog实现

模块端口

key_filter(input	wire 	clk		,input	wire 	rst_n	,input	wire 	key_in	,	//按下按键时为0output 	reg 	key_flag,	//第一次按下的标志信号(已消抖)output 	reg 	key_out	,	//输出按键信号(已消抖)output 	reg 	key_cont	//输出连续按键信号(已消抖)-计时一段时间拉高1次
);

20ms计数

always@(posedge clk or negedge rst_n)if(!rst_n) cnt_20ms <= 20'd0;else if(key_in)	//松下按键cnt_20ms <= 20'd0;else if(cnt_20ms == CNT_20MS_MAX)	//达到消抖时间cnt_20ms <= CNT_20MS_MAX;elsecnt_20ms <= cnt_20ms+20'd1;

按键第一次按下的标志信号

always@(posedge clk or negedge rst_n)if(!rst_n) key_flag<=1'b0;else if(cnt_20ms == CNT_20MS_MAX-20'd1)	//已消抖,拉高key_flag一个周期key_flag<= 1'b1;else key_flag<=1'b0;

已消抖的按键信号

always@(posedge clk or negedge rst_n)if(!rst_n) key_out<=1'b0;else if(key_in)	//松下按键key_out<= 1'b0;else if(key_flag)	//已消抖key_out<= 1'b1;else ;

连续信号所需计数器

always@(posedge clk or negedge rst_n)if(!rst_n) cnt_cont <= 20'd0;else if(key_out) begin	//已消抖if(cnt_cont == CNT_CONT_MAX)cnt_cont <= 20'd0;else cnt_cont <= cnt_cont+20'd1;endelsecnt_cont <= 20'd0;

连续按键信号(已消抖)-计时一段时间拉高1次

always@(posedge clk or negedge rst_n)if(!rst_n) key_cont<=1'b0;else if(key_flag)key_cont <= 1'b1;else if(key_out) begin	//已消抖if(cnt_cont == CNT_CONT_MAX)	//连续按下一定时间,拉高key_cont一个周期key_cont <= 1'b1;else key_cont <= 1'b0;endelsekey_cont <= 1'b0;

testbench:

`timescale 1ns/1ns
module tb_key_filter();reg clk ;
reg rst_n ;
reg key_in ;
reg [7:0] tb_cnt ;wire key_flag;
wire key_out ;
wire key_cont;defparam u_key_filter.CNT_20MS_MAX = 20'd9;
defparam u_key_filter.CNT_CONT_MAX = 24'd49;initial begin clk = 1'b1 ;rst_n = 1'b0;#20rst_n = 1'b1;#(20*199+100)$stop;
endalways #10 clk=~clk;always@(posedge clk or negedge rst_n)if(!rst_n) tb_cnt <=8'b0;else if(tb_cnt ==8'd199)tb_cnt <=8'b0;elsetb_cnt <= tb_cnt +8'b1;always@(posedge clk or negedge rst_n)if(!rst_n) key_in <= 1'b1 ; else if(((tb_cnt>=8'd9) && (tb_cnt<=8'd39))||((tb_cnt>=8'd159) && (tb_cnt<=8'd179)))key_in<={$random}%2;else if((tb_cnt<8'd9)||(tb_cnt>8'd179))key_in<=1'b1;elsekey_in<=1'b0;key_filter u_key_filter(.clk		(clk		),.rst_n		(rst_n		),.key_in		(key_in		), .key_flag	(key_flag	),	//第一次按下的标志信号(已消抖).key_out	(key_out	),	//输出按键信号(已消抖).key_cont	(key_cont	)	//输出连续按键信号(已消抖)-计时一段时间拉高1次
);endmodule

仿真波形:

http://www.yayakq.cn/news/856520/

相关文章:

  • 桃城网站建设英雄联盟做的广告视频网站
  • 上海平台网站建设费用学校二级网站建设自查情况
  • 网站开发语言的选择浙江省财务开发公司官网
  • 东莞网站平面设计公司移动论坛网站模板
  • 盘龙城做网站江苏建设人才网电子证书查询官网
  • 下载浙江平安建设信息系统网站黄埔网站建设哪家好
  • 自己的做网站id 怎么转wordpress
  • 大什么的网站建设公司好做网站电脑需要配置很好吗
  • 上海装修网站大全百度指数下载手机版
  • 网站建设怎么分好坏关键词百度云
  • 如何建立网站平台的步骤东道设计学院
  • 网站建设的实训报告的实训感受悬停提示 wordpress
  • 建筑网官网软件常州百度搜索优化
  • 个人网站名字大全邢台学校网站建设
  • 成都网站建设 小兵cms如何推广微信视频号
  • 通信的毕设网站建设网站建设的费用包括哪些内容
  • 怀远网站建设哪家好十大房产中介软件
  • 门户网站建设需注意的问题专业的网站建设设计
  • 是在百度中建设网站wordpress回复插件
  • 专门做老年旅游的网站如何选择校园文化设计公司
  • 太原专业设计网页公司seo提权软件
  • 网站空间服务器排名义乌网站建设成都网站设计
  • 中国建设银行网站公告四川建设厅官方网站九大员通知
  • 网站规划的步骤简单的个人网站下载
  • 域名网站备案社交网站第一步怎么做
  • 台州网站建设费用视频网站自己怎么做的
  • 青岛做网站建设的公司wordpress数据库信息文件
  • 开平网站建设地质公园网站建设
  • 如何做一个虚拟网站烟台开发区人才网官网
  • 彩票网站开发需求文档廊坊专业做网站