设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 1078|回复: 0
收起左侧

Quartus Verilog HDL/FPGA 点动按钮开关 1个按键消抖25毫秒实现控制1个LED的亮灭

[复制链接]
发表于 2022-1-3 16:58:40 | 显示全部楼层 |阅读模式
main.png
晶振频率:50Mhz 按键:低电平按下 LED:低电平点亮
上电初始熄灭LED,按键按下25毫秒后,LED点亮,松开熄灭。
  1. module main(
  2.         input clk,                        //50Mhz时钟输入 Pin17
  3.         input skey,                        //按键 Pin144 按下清0 松开置1 (未消抖)
  4.         output reg sled                //LED Pin3 (低电平点亮)
  5. );

  6. reg [15:0] i = 0;                        //1ms分频寄存器
  7. reg [7:0] KEYms = 0;        //按键按下计数时间(毫秒 最大255) 松开清0
  8. reg key;                                                //按键按下清0 松开置1 (已消抖)
  9. reg led = 1;                                        //上电初始灭灯
  10. always @(posedge clk) begin                //CLK上升沿触发
  11.         sled = led;
  12.         i = i + 1;
  13.         if(i == 50000) begin                        //50000个时钟即为1mS
  14.                 i = 0;
  15.                 if(skey) begin
  16.                         KEYms = 0;
  17.                         end else begin
  18.                                 if(KEYms != 255) begin
  19.                                         KEYms = KEYms + 1;
  20.                                 end
  21.                         end
  22.                 key = (KEYms >= 25) ? 0 : 1;                        //消抖25mS
  23.                 led = key;
  24.                 end
  25.         end
  26. endmodule
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-28 09:53 , Processed in 1.669096 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表