也发一个呼吸灯 可以直接拷贝下来用 有不明白的可以跟帖问
呼吸灯 有点意思 我也发一个啊,为了值得大家学习,并能有所收获,我写成模块方式。PWM_LED这个模块是可以直接用,实际是我一个产品里面一部分。module pwm_led(
input clk,
input pwm_val ,
output reg led=0
);
reg delay_cntr= 0; //这是一个预分频的计数器
reg runner =0 ; //这是一用来和PWM数值进行比较从而决定LED是否亮的计数器
always @ (posedge clk)delay_cntr <= delay_cntr + 1;
always @ (posedge clk) if (delay_cntr ==0) runner <= runner+1 ;
always @ (posedge clk) led <=runner <pwm_val;
endmodule
上面是一个控制小灯亮度的模块,我们调用它,之后不断的顺序的变化亮度就可以了。就设置一个变化比较慢的计数器就可以。
根据实际CLK的频率设置HI_BIT。决定闪烁快慢。
`define HI_BIT 25
module notify_led (input clk ,output led );
reg ['HI_BIT : 0 ] cntr ;always @(posedge clk) cntr<=cntr+1 ;
pwm_ledu1( .clk(clk) , .pwm_va(cntr['HI_BIT:'HI_BIT-7]), .led(led));
endmodule
视觉暂留,不能封边20MS以内的变化,所以不连续的亮灭间隔就让我们看到所谓的呼吸灯的效果。 抢个沙发 这个东西还不错 感谢分享
没有说明输入频率是多少 顶一个。 看着怎么这么晕啊。 看不太懂..........C51 能用吗?给个完整的例程我变一下烧了看看我很菜 这样子看不懂 试一下先~{:smile:} c51。。。。。这是hdl语言 单片机去找单片机的程序 下来实验下 学习了,谢谢楼主,辛苦啦,但是没有说明一下clk的频率。 留名。 原来是语言不同啊 LZ,请问呼吸灯是不是跑马灯的效果? linyibinleo 发表于 2014-10-23 20:39
LZ,请问呼吸灯是不是跑马灯的效果?
不是的 简单说 就是一个小灯从暗渐渐渐渐变成最亮到最亮后再渐渐变暗。 体现逐渐变化的过程。
如果0X00代表灭,0XFF代表最亮,那么就是0x00 0x01 0x02 ....0xfd 0xfe 0xff 0xfe 0xfd...0x02 0x01 0x00 0x01 0x02...... 这样的循环往复的过程。
不太懂,没弄明白 mcupro 发表于 2014-10-24 18:28
不是的 简单说 就是一个小灯从暗渐渐渐渐变成最亮到最亮后再渐渐变暗。 体现逐渐变化的过程。
如果0X ...
哦,我没怎么接触到这样子的,LZ解释的很清楚,一看就能明白了{:lol:} 请问这种灯是一直这样在 while(1) 里面吗?这种灯什么场合会用到,还是自己爱好而已啊! linyibinleo 发表于 2014-10-23 20:39
LZ,请问呼吸灯是不是跑马灯的效果?
不是,跑马灯类似警车上的灯。呼吸灯是由明渐暗,由暗渐明的效果。 有没有硬件呼吸灯呀! 确实蛮有意思的,这么精简的代码 代码有点意思,在自己板子上试试看。
页:
[1]