FPGA笔记5——应用之触摸按键(边沿检测)

8 篇文章 0 订阅

触摸按键主要分为四大类:电阻式、电容式、红外感应式、表面声波式。

电容式:手指接触到触摸按键时,总容值增加

 硬件设计:

实验任务

使用触摸按键控制LED灯亮灭,上电后为点亮状态,手指触摸后LED熄灭;再次触摸,LED点亮

系统框图

代码

module touch_led(
    input        clk,
    input        rst_n,
    
    input        touch_key,
    
    output reg   led
);

//实现上升沿判断功能
reg touch_key_d0;
reg touch_key_d1;

wire touch_key_flag;

assign touch_key_flag = (~touch_key_d1) & touch_key_d0;
/*下降沿检测为
assign touch_key_flag = touch_key_d1 & (~touch_key_d0);  */

always @ (posedge clk or negedge rst_n)begin
    if(!rst_n) begin
        touch_key_d0 <= 1'd0;
        touch_key_d1 <= 1'd0;
    end
    else begin 
        touch_key_d0 <= touch_key;
        touch_key_d1 <= touch_key_d0;
    end
end

always @ (posedge clk or negedge rst_n)begin
    if(!rst_n)
        led <= 1'b1;
    else 
        if(touch_key_flag)
            led <= ~led;
        else
            led <= led;
end

endmodule

分析

 下降沿:

 理解:

https://blog.csdn.net/qq_26652069/article/details/100555881

https://blog.csdn.net/blue0432/article/details/8856445?ops_request_misc=&request_id=&biz_id=102&utm_term=verilog%E8%BE%B9%E6%B2%BF%E6%A3%80%E6%B5%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-.nonecase&spm=1018.2226.3001.4187

关于同步/异步实现边沿检测:

https://blog.csdn.net/weixin_43561491/article/details/103684789?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162710934516780261936042%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162710934516780261936042&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-103684789.first_rank_v2_pc_rank_v29&utm_term=verilog%E8%BE%B9%E6%B2%BF%E6%A3%80%E6%B5%8B&spm=1018.2226.3001.4187

打拍:

https://blog.csdn.net/kebu12345678/article/details/80669549

还是没有完全理解,先码住。

疑惑:

①reg和wire的使用没有完全理解

https://blog.csdn.net/fxqcn/article/details/6640798?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162711746416780271597818%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162711746416780271597818&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-6640798.first_rank_v2_pc_rank_v29&utm_term=reg%E5%92%8Cwire&spm=1018.2226.3001.4187

②并行执行没有完全理解

③一般标志位信号都为wire类型?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值