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

从F到0 - From F to 0

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

Quartus Verilog HDL/FPGA EP2C5T/EP2C8T 最小系统范例程序 (1个轻触开关+3个共阳LED)

[复制链接]
发表于 2022-12-8 06:23:40 | 显示全部楼层 |阅读模式
本帖最后由 HDL 于 2022-12-8 06:25 编辑

main.png
2.png
  1. module main(
  2.         input clk,                //50Mhz有源晶振 Pin17
  3.         input key,                //轻触开关 按键(低电平按下) Pin144 (按Ctrl+Shift+A将该口配置为上拉电阻模式)
  4.         //3个共阳LED
  5.         output led1,        //LED1(低电平点亮) Pin3
  6.         output led2,        //LED2 Pin7
  7.         output led3                //LED3 Pin9
  8. );
  9. reg [2:0] i;
  10. assign {led3,led2,led1} = ~i;
  11. integer j,k;
  12. wire skey = (k >= 1250000) ? 1'b1 : 1'b0;                //消抖1250000个时钟(25ms)

  13. always @(posedge clk) begin                //50Mhz时钟上升沿
  14.         if(key) begin                //按键松开
  15.                 k <= 0;                        //计数清0
  16.         end else begin                //按键按下
  17.                 if(!(&k)) begin        //计数未加满
  18.                         k <= k + 1;                //计数+1
  19.                 end
  20.         end
  21. end

  22. always @(posedge clk) begin               
  23.         if(skey) begin                //按键按下 (已消抖)
  24.                 i <= 3'd0;                //LED熄灭
  25.                 j <= 0;                        //计数清0
  26.         end else begin
  27.                 j = j + 1;                //计数+1
  28.                 if(j >= 12500000) begin                //此值越小,LED闪烁速度越快
  29.                         j = 0;
  30.                         i <= i + 3'd1;                //LED二进制累加
  31.                 end        
  32.         end
  33. end
  34. endmodule
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-3-29 01:23 , Processed in 0.471027 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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