找回密码
 立即注册
查看: 241|回复: 2

STC8H8K64U 驱动WS2812彩灯

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 115 天

    [LV.6]常住居民II

    8

    主题

    67

    回帖

    680

    积分

    高级会员

    积分
    680
    发表于 2024-1-28 21:06:39 | 显示全部楼层 |阅读模式
    本帖最后由 小坤 于 2024-1-28 21:10 编辑

    跟个风,也用STC8H8K64U  驱动WS2812彩灯。底层驱动借用的是论坛前辈的。应用主要实现流水拖尾效果。

    //LED灯流水灯拖尾程序
    void Mode_2_Color()
    {
            u16 n;
            u32 const LED_TAB[6]={0XFFFF00, 0X232300, 0X151500, 0X070700, 0X000000,0X000000};

            memset(&Mode0, 0, sizeof(Mode0));
            memset(&Mode1, 0, sizeof(Mode2));
            if( Mode2.flag == 0)
            {                                               
                    for(n=0; n<WS_NUM-4; n++)                                                                                                                                                               
                            WsDat[n] = WsDat[n+1];                                //整体移位
                   
                    if(Mode2.count>WS_NUM-3)
                            Mode2.count = 0;
                   
                    WsDat[n] = LED_TAB[Mode2.count%6];                //更新最新数据       
                    Mode2.count ++;
                   
                    for(n=0;n<WS_NUM;n++)                                        //数据更新
                    {       
                            if(n>=30)
                            {
                                    DisP_Color(0x008000);                        //最后3个灯颜色不变
                            }
                            else
                                    DisP_Color(WsDat[n]);                        //显示
                    }
                    Mode2.flag = 2;               
    /*               
                            UART1_TxByte(WsDat[29]>>24);
                            UART1_TxByte(WsDat[29]>>16);
                            UART1_TxByte(WsDat[29]>>8);
                            UART1_TxByte(WsDat[29]>>0);                       
                    for(n=0;n<FIFO.Write;n++)                                //测试
                    {
                            UART1_TxByte(FIFO.buff[n]);
                    }
    */                               
            }       
            else if( Mode2.flag == 2)
            {
                    Mode2.Time++;
                    if(Mode2.Time>=5000)
                    {
                            reset();
                            Mode2.Time = 0;
                            Mode2.flag = 0;
                    }               
            }       
    }

    11.mp4

    4.87 MB, 下载次数: 10

    显示效果

    WS2812 彩灯.zip

    438.06 KB, 下载次数: 16

    程序

    1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:34
  • 签到天数: 141 天

    [LV.7]常住居民III

    0

    主题

    393

    回帖

    398

    积分

    中级会员

    积分
    398
    发表于 2024-1-28 21:30:50 | 显示全部楼层
    漂亮
    靡不有初,鲜克有终
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 158 天

    [LV.7]常住居民III

    67

    主题

    837

    回帖

    2782

    积分

    金牌会员

    积分
    2782
    发表于 2024-1-29 08:55:32 | 显示全部楼层
    拖尾程序令2812彩灯更好看
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 23:53 , Processed in 0.055712 second(s), 39 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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