专栏中心

EEPW首页 > 专栏 > FPGA开发板DIY过程(七)

FPGA开发板DIY过程(七)

发布人:mmqm 时间:2012-10-05 来源:工程师 发布文章

测试按键功能,主要是去抖动问题。
软件一般按键抖动通过延时10~20ms判断,硬件一般用RS触发器电路。
实际应用中,按键功能比较复杂,比如长按、短按、多键等。

这里简化处理,测试去抖时间为100ms,因此如果在100ms内按下又弹起,就认为按键无效;按下超过100ms,就有效。最终应用可以修改成20ms。
同时按下多键也能识别。


视频:
http://v.qq.com/boke/page/i/2/c/i0105jszk2c.html



代码:

//KEY模块
module m_key(clk, rst, key, led);
 
input clk; //系统时钟输入,50MHz,0.02us
input rst; //系统复位输入
 
input[7:0] key;

 

output[7:0] led; //led输出
reg[7:0] led;
 
reg key_down;
reg[7:0] key_reg;
reg[22:0] key_cnt;

always @(posedge clk or negedge rst)
begin
    if(!rst)
    begin
       key_down <= 1'b1;
       key_reg <= 8'hff;
       key_cnt <= 23'd0;
    end
    else if(key != key_reg)
    begin
        key_reg <= key;
        key_cnt <= 23'd0;
    end
    else
    begin
        if(key_cnt == 23'd5000000) //5000000*0.02us=100ms
            key_down <= key_reg == 8'hff;
        else
            key_cnt <= key_cnt + 1'b1;
    end
end

always @(negedge key_down)
begin
    if(led == key_reg)
        led <= 8'hff;
    else
        led <= key_reg;
end

endmodule

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

思特威推出 3MP 车规级传感器 SC326AT

未来在你手中-ARM,数字世界架构提供商(东南大学)

视频 2011-04-25

同样是AC/DC,为什么线性电源的块头大?

DynaDoc 3.50中文版,查看_.wdl ,_.wdf电子书的工具

DS12887实时时钟芯片中文资料

ITECH IT-N6700系列高压可编程直流电源重磅上市

走进MIPS(华中科技大学)

视频 2011-04-26

线性电源(1)概述

歌尔联合SGS发布《智能穿戴产品佩戴舒适度评估白皮书》

Imec 2026年的优先事项与策略

EDA/PCB 2026-01-09

2026年半导体行业趋势观察(Part 4)-从生态重构到技术聚变,AI助推OEM战略转向

IT9330电池充放电测试软件:创新测试体验,专业与易用完美融合

DP8390网卡芯片(ne2000兼容)

走进MIPS(东南大学)

视频 2011-04-26

力科示波器及其在嵌入式系统中的应用(东南大学)

视频 2011-04-26

反馈拓扑与架构解释

线性电源(4)LDO ≠ 线性电源

DVD相关资料

SIMPLE SWITCHER易电源均流特性的演示

视频 2011-04-15
更多 培训课堂
更多 焦点
更多 视频

技术专区