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

从F到0 - From F to 0

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

Quartus Verilog HDL/FPGA PWM LED呼吸灯程序源码

[复制链接]
发表于 2021-12-16 09:24:01 | 显示全部楼层 |阅读模式
main.png
晶振频率:50Mhz LED:低电平点亮 上电后LED逐渐点亮,然后逐渐熄灭,以此类推。
  1. module main(
  2.         input clk,                        //50Mhz时钟输入 pin17
  3.         output reg led                //呼吸灯LED pin3 (低电平点亮)
  4. );

  5. reg [15:0] i;
  6. reg [7:0] j;
  7. reg [31:0] k;
  8. reg [7:0] pwm=0;                        //LED亮度 0熄灭 255最亮
  9. reg l = 1;                                        //0:亮度减小 1:亮度增加
  10. always @(posedge clk) begin                //CLK上升沿触发
  11.                 //PWM发生器
  12.                 i = i + 1;
  13.                 if(i == 1000) begin                        //1000分频 50Khz/255=196Hz 此值越小 PWM频率越高
  14.                         i = 0;
  15.                         led = (j < pwm) ? 0 : 1;
  16.                         j = j + 1;
  17.                         if(j == 255) begin
  18.                                 j = 0;
  19.                         end
  20.                 end
  21.                 //呼吸灯亮度控制
  22.                 k = k + 1;
  23.                 if(k == 500000) begin                //10mS调一次亮度 此值越小 呼吸速度越快
  24.                         k = 0;
  25.                         if(l) begin
  26.                                 pwm = pwm + 1;
  27.                         end else begin
  28.                                 pwm = pwm - 1;
  29.                         end
  30.                                 if(pwm == 0 || pwm == 255) begin
  31.                                         l = !l;
  32.                                 end
  33.                         end
  34.                 end
  35. endmodule
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-3-29 07:17 , Processed in 0.582033 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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