搜索
bottom↓
回复: 21

也发一个呼吸灯 可以直接拷贝下来用 有不明白的可以跟帖问

[复制链接]

出0入0汤圆

发表于 2014-9-25 20:46:33 | 显示全部楼层 |阅读模式
呼吸灯 有点意思 我也发一个啊,为了值得大家学习,并能有所收获,我写成模块方式。PWM_LED这个模块是可以直接用,实际是我一个产品里面一部分。
module pwm_led(
        input clk,
        input [7:0] pwm_val ,
        output reg led=0
    );
    reg [6:0] delay_cntr  = 0; //这是一个预分频的计数器
    reg [7:0] 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_led  u1(    .clk(clk) , .pwm_va(cntr['HI_BIT:'HI_BIT-7]),     .led(led)  );
endmodule

视觉暂留,不能封边20MS以内的变化,所以不连续的亮灭间隔就让我们看到所谓的呼吸灯的效果。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出700入102汤圆

发表于 2014-9-25 20:47:08 | 显示全部楼层
抢个沙发

出0入0汤圆

发表于 2014-9-25 21:01:54 | 显示全部楼层
这个东西还不错

出0入0汤圆

发表于 2014-9-25 22:33:40 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2014-10-10 09:07:30 | 显示全部楼层
没有说明输入频率是多少

出0入0汤圆

发表于 2014-10-10 09:27:00 | 显示全部楼层
顶一个。

出0入0汤圆

发表于 2014-10-10 09:33:14 | 显示全部楼层
看着怎么这么晕啊。

出0入0汤圆

发表于 2014-10-10 09:35:15 | 显示全部楼层
看不太懂..........C51 能用吗?  给个完整的例程我变一下烧了看看  我很菜 这样子看不懂

出0入8汤圆

发表于 2014-10-10 09:39:28 | 显示全部楼层
试一下先~

出0入0汤圆

发表于 2014-10-10 14:52:04 来自手机 | 显示全部楼层
c51。。。。。这是hdl语言    单片机去找单片机的程序

出0入0汤圆

发表于 2014-10-22 13:03:35 | 显示全部楼层
下来实验下

出0入0汤圆

发表于 2014-10-23 20:00:22 | 显示全部楼层
学习了,谢谢楼主,辛苦啦,但是没有说明一下clk的频率。

出0入0汤圆

发表于 2014-10-23 20:13:34 来自手机 | 显示全部楼层
留名。

出0入0汤圆

发表于 2014-10-23 20:26:46 | 显示全部楼层
原来是语言不同啊

出5入4汤圆

发表于 2014-10-23 20:39:41 | 显示全部楼层
LZ,请问呼吸灯是不是跑马灯的效果?

出0入0汤圆

 楼主| 发表于 2014-10-24 18:28:53 | 显示全部楼层
linyibinleo 发表于 2014-10-23 20:39
LZ,请问呼吸灯是不是跑马灯的效果?

不是的 简单说 就是一个小灯  从暗渐渐渐渐变成最亮  到最亮后再渐渐变暗。 体现逐渐变化的过程。
如果0X00代表灭,0XFF代表最亮,那么就是  0x00 0x01 0x02 ....0xfd 0xfe 0xff 0xfe 0xfd...  0x02 0x01 0x00 0x01 0x02  ...... 这样的循环往复的过程。

出0入0汤圆

发表于 2014-10-24 19:12:40 | 显示全部楼层
不太懂,没弄明白

出5入4汤圆

发表于 2014-10-24 21:22:09 | 显示全部楼层
mcupro 发表于 2014-10-24 18:28
不是的 简单说 就是一个小灯  从暗渐渐渐渐变成最亮  到最亮后再渐渐变暗。 体现逐渐变化的过程。
如果0X ...

哦,我没怎么接触到这样子的,LZ解释的很清楚,一看就能明白了 请问这种灯是一直这样在   while(1)   里面吗?这种灯什么场合会用到,还是自己爱好而已啊!

出0入0汤圆

发表于 2014-10-24 21:33:49 | 显示全部楼层
linyibinleo 发表于 2014-10-23 20:39
LZ,请问呼吸灯是不是跑马灯的效果?

不是,跑马灯类似警车上的灯。呼吸灯是由明渐暗,由暗渐明的效果。

出0入0汤圆

发表于 2014-10-25 06:37:31 | 显示全部楼层
有没有硬件呼吸灯呀!

出0入0汤圆

发表于 2015-7-15 18:29:49 | 显示全部楼层
确实蛮有意思的,这么精简的代码

出0入0汤圆

发表于 2015-7-16 16:40:44 | 显示全部楼层
代码有点意思,在自己板子上试试看。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-7 18:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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