zoukankan      html  css  js  c++  java
  • PWM----调节LED亮度

    -

    -

    --调节两个LED灯亮度

     1 module led_pwm (
     2     clk, 
     3     rst, 
     4 //cnt1_pwm, 
     5     out1,
     6     out2,
     7     out3,
     8     out4
     9 );
    10 
    11     input clk, rst;
    12     //input [19:0] count_pwm;
    13     output reg out1, out2;
    14     output out3, out4;
    15     
    16     reg [19:0] cnt;
    17     reg [19:0] cnt1_pwm = 21'd2, cnt2_pwm = 21'd52_4288;
    18     reg [25:0] cnt_s;
    19     
    20     always @ (posedge clk, negedge rst)
    21         if (!rst)
    22             begin 
    23                 cnt_s <= 0;
    24                 cnt1_pwm <= 21'd1;
    25                 cnt2_pwm <= 21'd52_4288;
    26             end 
    27         else if (cnt_s == 26'd1000_0000) //计0.2秒
    28             begin 
    29                 cnt_s <= 0;
    30                     cnt1_pwm <= {cnt1_pwm[18:0], cnt1_pwm[19]}; //调节脉宽
    31                     cnt2_pwm <= {cnt2_pwm[0], cnt2_pwm[19:1]};
    32                         
    33                     //cnt1_pwm <= (cnt1_pwm >> 2)|(cnt1_pwm << 19);//right
    34                     //cnt2_pwm <= (cnt2_pwm << 2)|(cnt2_pwm >> 19);//left
    35             end 
    36         else 
    37             cnt_s <= cnt_s + 1;
    38             
    39     //
    40     always @ (posedge clk, negedge rst)
    41         if (!rst)
    42             cnt <= 21'h0;
    43         else if (cnt == 21'd55_0000)  //一个周期
    44             cnt <= 21'b0;
    45         else 
    46             cnt <= cnt + 1'b1;
    47             
    48     
    49     //    pwm生成
    50     always @ (posedge clk, negedge rst)
    51         if (!rst)
    52             out1 <= 1'b0;
    53         else if (cnt <= cnt1_pwm)
    54             out1 <= 1'b0;
    55         else
    56             out1 <= 1'b1;
    57             
    58     always @ (posedge clk, negedge rst)
    59         if (!rst)
    60             out2 <= 1'b0;
    61         else if (cnt <= cnt2_pwm)
    62             out2 <= 1'b0;
    63         else
    64             out2 <= 1'b1;
    65             
    66     assign out3 = 1'b0;
    67     assign out4 = 1'b0;
    68     
    69 endmodule
  • 相关阅读:
    利用clear清除浮动的一些问题
    配置SpringBoot方便的切换jar和war
    java并发实战:连接池实现
    canvas绘制圆角头像
    对象的合并及拷贝
    JS数组去重
    浏览器端用JS实现创建和下载图片
    超过固定宽度(或行数)显示...(或省略)
    ssh实现免密登录
    Mac 日常使用问题收集
  • 原文地址:https://www.cnblogs.com/yllinux/p/7613118.html
Copyright © 2011-2022 走看看