搜索
bottom↓
回复: 6

共享一个“红芯电子”实现呼吸灯的源码

[复制链接]

出0入0汤圆

发表于 2012-9-7 11:17:48 | 显示全部楼层 |阅读模式
共享一个“红芯电子”实现呼吸灯的工程


源码:
//==============================================================================
// File Name   : LED_BREATHING.v
// Module Name : LED_BREATHING
// Description : This is a breathing led module
// Author      : xsyan1225(红芯电子_飞哥)
// HomePage    : http://shop57125352.taobao.com/
// Date        : 2012/09/06
// Rev.        : 0.1
//==============================================================================
// 呼吸灯

`define UD //#1

module LED_BREATHING
        (
        SYSCLK_50M,
        RST_B,

        LED
        //TP
        );

//==============================================================================
//        Input and output declaration
//==============================================================================
input                SYSCLK_50M;
input                RST_B;

output        [5:0]        LED;
//output                TP;//用于测试

//==============================================================================
//        Wire and reg declaration
//==============================================================================
wire                SYSCLK_50M;
wire                RST_B;

reg        [5:0]        LED;
//wire                TP = LED[0];
//==============================================================================
//        Wire and reg in the module
//==============================================================================

reg        [26:0]        TIME_CNT;
wire        [26:0]        TIME_CNT_N;

reg     [6:0]   PWM_WIDTH;
wire    [6:0]   PWM_WIDTH_N;

reg     [5:0]   PWM_ADJ;
wire    [5:0]   PWM_ADJ_N;

wire        [5:0]        LED_N;

//==============================================================================
//        Logic
//==============================================================================
always @(posedge SYSCLK_50M or negedge RST_B)
begin
if(!RST_B)
  TIME_CNT <= `UD 27'h0;
else
  TIME_CNT <= `UD TIME_CNT_N;
end

// 自由计数器
assign TIME_CNT_N = TIME_CNT + 27'h1;

//------------------------------------------------------------------------------
always @(posedge SYSCLK_50M or negedge RST_B)
begin
if(!RST_B)
  PWM_ADJ <= `UD 6'h0;
else
  PWM_ADJ <= `UD PWM_ADJ_N;
end

// 第26位用于标识呼和吸的切换点,2^26 = 1.34秒(约等于),完成一次呼吸总时长约2.7秒
assign PWM_ADJ_N = TIME_CNT[26] ? TIME_CNT[25:20] : ~TIME_CNT[25:20] ;

//------------------------------------------------------------------------------
always @(posedge SYSCLK_50M or negedge RST_B)
begin
if(!RST_B)
  PWM_WIDTH <= `UD 7'h3f;
else
  PWM_WIDTH <= `UD PWM_WIDTH_N;
end

//利用寄存器溢出位产生的占空比不同来驱动 LED 实现呼吸效果
//PWM_ADJ 用于控制脉宽
assign PWM_WIDTH_N = PWM_WIDTH[5:0] + PWM_ADJ;

//------------------------------------------------------------------------------
always @(posedge SYSCLK_50M or negedge RST_B)
begin
if(!RST_B)
  LED <= `UD 6'h3f;
else
  LED <= `UD LED_N;
end

//6个灯一起呼吸
assign LED_N = {{3{PWM_WIDTH[6]}},{3{~PWM_WIDTH[6]}}};

endmodule

//==============================================================================
//        End of file
//==============================================================================

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-9-7 11:39:00 | 显示全部楼层
有没有红芯电子FPGA的光盘源程序啊,传上来吧,我看了笔记还是不错的

出0入0汤圆

发表于 2012-9-7 13:17:29 | 显示全部楼层
刚才试了一下,效果很一般,没有诺基亚手机的呼吸灯做得逼真。

出0入0汤圆

发表于 2012-9-16 14:58:40 | 显示全部楼层
小气。。。

出0入0汤圆

发表于 2013-5-22 20:09:50 | 显示全部楼层
求光盘资料,谢谢!

出0入0汤圆

发表于 2013-10-21 19:27:16 | 显示全部楼层
原来是用FPGA实现的,mark

出0入0汤圆

发表于 2013-10-25 15:41:01 | 显示全部楼层
可以用的。不错,效果确实不是很好,自己改进一下,效果会好的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 05:19

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

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