找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8428|回复: 34
收起左侧

ws2811灯带stc11f60xe二十多种彩虹等模式变换程序

  [复制链接]
ID:219527 发表于 2019-9-30 11:44 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. #ifndef __CAIDENGSHU_H__
  2. #define __CAIDENGSHU_H__

  3. #include <STC/STC12C5A60S2.h>
  4. #include <intrins.h>

  5. void WaterLampToCol19();
  6. void WaterLampToCol20();
  7. void WaterLampToCol21();
  8. void WaterLampToCol22();
  9. void WaterLampToCol23();
  10. void WaterLampToCol24();
  11. void WaterLampToCol25();
  12. void WaterLampToCol26();

  13. void WaterLampToCol27();
  14. void WaterLampToCol28();
  15. void WaterLampToCol29();  
  16. void WaterLampToCol30();
  17. void WaterLampToCol31();

  18. void WaterLampToCol32();     //蓝光整段,,彩虹后面往前面流水,整段从左往右           七彩效果
  19. void WaterLampToCol33();    //蓝光整段,,彩虹后面往前面流水,整段从右往左         
  20. void WaterLampToCol34();    //整段不发光,中间往两边流水,加两边向中间流水,循环三次

  21. void WaterLampToCol35();    //彩虹波浪流水,分许多8个为一组的小段
  22. void WaterLampToCol36();   //8个为一组的小段,,重点是变化的彩虹波浪

  23. void WaterLampToCol37();   //每七段一节,红色流水,左右来回
  24. void WaterLampToCol41();   // 每八段一节,蓝色流水,左右来回
  25. void WaterLampToCol42();    // 每七段一节,蓝色流水,左右来回
  26. void WaterLampToCol43();    // 每七段一节,黄色流水,左右来回
  27. void WaterLampToCol44();    // 每七段一节,粉色流水,左右来回
  28.        

  29. void WaterLampToCol38();    //八灯一节,,七彩流水跑马效果

  30. void WaterLampToCol39();    //蓝光整段,,彩虹从左到右流过去      真正彩虹效果  
  31. void WaterLampToCol40();    //整段不发光,中间往两边流水,加两边向中间流水,循环三次

  32. void WaterLampToCol45();   //水滴向上升腾效果   绿光
  33. void WaterLampToCol46();    //水滴向上升腾效果   红光
  34. void WaterLampToCol47();    //水滴向上升腾效果   蓝光



  35. #endif
复制代码

  1. #include "main.h"
  2. #include <STC/STC12C5A60S2.h>
  3. #include <intrins.h>                //因为要用到左右移函数,所以加入这个头文件
  4. #include "caidengshu.h"

  5. unsigned long WsDat[nWs];

  6. //#define MAIN_Fosc                24000000L        //定义主时钟   

  7. #define Black       0x000000  // 黑色


  8. sbit LED=P0^0;        


  9.   

  10.   unsigned char q;
  11.   unsigned char  h;
  12.                                                                  
  13.                                                                  
  14. void WS_SET(unsigned long color,unsigned char num);//灯条开指定的灯
  15. void WS_SET_Water_lamp(unsigned long color,unsigned int time);//流水灯不连接
  16. void WS_SET_Water_lamp_two(unsigned long color,unsigned int time);//流水灯连接
  17. void WS_SET_Water_lamp_two1(unsigned long color,unsigned int time);
  18. void Breathing_lamp(unsigned long color,unsigned int time);//呼吸灯-仅支持三原色
  19. void Breathing_lamp_Alternate(unsigned int time);//三色渐变交替
  20. void yigedianliushui(unsigned long color,unsigned int time);   //一个IC流水到左边
  21. void WaterLampToCol2(unsigned long _uColor, unsigned int _uTime);
  22. void WS_L_SetAll();
  23. void WaterLampToCol3(unsigned long _uColor, unsigned int _uTime);
  24. void WaterLampToCol12(unsigned long  _uColor0,unsigned long  _uColor1, unsigned int  _uTime);
  25. void WaterLampToCol11( unsigned int uTime);
  26. void WaterLampToCol18( unsigned int uTime);
  27. void qingling();
  28. void WaterLampToCol11( unsigned int uTime);
  29. void yigedianliushui10(unsigned int time);


  30. void Delay1s()                //@24.000MHz
  31. {
  32.         unsigned char i, j;

  33.         _nop_();
  34.         _nop_();
  35.         i = 24;
  36.         j = 84;
  37.         do
  38.         {
  39.                 while (--j);
  40.         } while (--i);
  41. }




  42. void Delay1ms()                //@24.000MHz
  43. {
  44.         unsigned char i, j;

  45.         _nop_();
  46.         _nop_();
  47.         i = 24;
  48.         j = 84;
  49.         do
  50.         {
  51.                 while (--j);
  52.         } while (--i);
  53. }

  54. void delay_ms(unsigned int i)               
  55. {
  56.    while(i--)
  57.          {
  58.            Delay1ms();         
  59.          }
  60. }


  61. void Delay20ms()                //@24.000MHz
  62. {
  63.         unsigned char i, j, k;

  64.         i = 2;
  65.         j = 211;
  66.         k = 231;
  67.         do
  68.         {
  69.                 do
  70.                 {
  71.                         while (--k);
  72.                 } while (--j);
  73.         } while (--i);
  74. }




  75. void main ()   //主函数
  76. {  
  77.         
  78.    unsigned int x;
  79.         
  80.           qingling();
  81.                 P0M0=0X00;
  82.           P0M1=0X00;
  83.         
  84.         
  85.         // q=1;
  86.   //  ColorToColor(0X000000,0XFF0000);
  87.   //   ColorToColor(0XFF0000,0xFFFF00);
  88.   // ColorToColor(0xFFFF00,0Xffffff);
  89.   // ColorToColor(0Xffffff,0X00ffff);
  90.   //  ColorToColor(0X00ffff,0X0000ff);
  91.   //   ColorToColor(0X0000ff,0X000000);
  92.   // ColorToColor(0X000000,0X00FF00);
  93.   //  ColorToColor(0X00FF00,0x0FFFF0);
  94.   //  ColorToColor(0x0FFFF0,0Xffffff);
  95.   // ColorToColor(0Xffffff,0XFF00ff);
  96.   // ColorToColor(0XFF00ff,0XF0000f);
  97.   //  ColorToColor(0XF0000f,0X000000);

  98.     while(1)
  99.                 {
  100.                         
  101.                 Breathing_lamp_Alternate(5);//三色渐变交替
  102.                 delay_ms(1000);  
  103.                
  104.                           x=3;
  105.                         while(x--)
  106.                         {
  107.         WaterLampToCol45();    //水滴向上升腾效果    绿光
  108.                         }
  109.                         
  110.                                 x=3;
  111.                         while(x--)
  112.                         {
  113.         WaterLampToCol46();    //水滴向上升腾效果   红光
  114.                         }
  115.                         
  116.                                 x=3;
  117.                         while(x--)
  118.                         {
  119.         WaterLampToCol47();    //水滴向上升腾效果   蓝光
  120.                         }
  121.                         
  122.                         
  123.     WaterLampToCol38();    //八灯一节,,七彩流水跑马效果

  124.                 WaterLampToCol39();    //蓝光整段,,彩虹从左到右流过去      真正彩虹效果   

  125.                 WaterLampToCol40();    //整段不发光,中间往两边流水,加两边向中间流水,循环三次  

  126.           WaterLampToCol27();                   //粉光里流水三个蓝光                     
  127.     delay_ms(200);
  128.                         
  129.       x=10;
  130.             while(x--)                      //七彩模式灯
  131.                  {
  132.                  WaterLampToCol19();
  133.                  delay_ms(200);        

  134.                  WaterLampToCol20();
  135.                         delay_ms(200);

  136.                  WaterLampToCol21();
  137.                   delay_ms(200);

  138.                  WaterLampToCol22();
  139.                   delay_ms(200);  

  140.                         WaterLampToCol23();                                       
  141.                    delay_ms(200);
  142.                         
  143.                         WaterLampToCol25();                                       
  144.                   delay_ms(200);
  145.                         
  146.                         WaterLampToCol25();                                       
  147.                    delay_ms(200);
  148.                         
  149.                         WaterLampToCol26();                                       
  150.                   delay_ms(200);
  151.                 }                                            

  152.                
  153.                   WaterLampToCol34();    //整段不发光,中间往两边流水,加两边向中间流水,循环三次
  154.    
  155.                   x=3;
  156.                   while(x--)
  157.                         {
  158.                     WaterLampToCol36();   //8个为一组的小段,,重点是变化的彩虹波浪  
  159.                         }                                
  160.                         
  161.                   WaterLampToCol37();   // 每七段一节,红色流水,左右来回        
  162.             WaterLampToCol41();   // 每八段一节,蓝色流水,左右来回
  163.                         WaterLampToCol42();    // 每七段一节,蓝色流水,左右来回
  164.       WaterLampToCol43();    // 每七段一节,黄色流水,左右来回
  165.       WaterLampToCol44();    // 每七段一节,粉色流水,左右来回
  166.                


  167.                 x=3;                               //黄绿红交替变换闪烁
  168.                 while(x--)   
  169.                         
  170.                 {
  171.                         WaterLampToCol28();
  172.                 }        
  173.                
  174.                 x=3;
  175.                 while(x--)
  176.                 {
  177.                   WaterLampToCol29();  
  178.                 }
  179.                 x=3;
  180.                 while(x--)
  181.                 {
  182.                   WaterLampToCol30();  
  183.                 }  
  184.                
  185.                     WS_SET_Water_lamp_two(0x00ff00,100);        //左边往右边黄光流水
  186.         
  187.                

  188.                   WS_SET_Water_lamp_two1(0x00ff00,100);    //右边往左边黄光流水

  189.                
  190.         
  191.                         
  192.                                 
  193.                 /*        WaterLampToCol3(0x10ff50 ,100);
  194.                          delay_ms(1000);        
  195.                          WaterLampToCol2(0x10ff50,100);
  196.                          delay_ms(1000);        
  197.                         WS_SET_Water_lamp_two(0x10ff50,100);//流水灯连接
  198.                          delay_ms(1000);        
  199.                           yigedianliushui(0x10ff50,100);
  200.                          delay_ms(1000);        
  201.                    WS_SET_Water_lamp_two1(0x10ff50,100);//流水灯连接
  202.                    delay_ms(1000);               
  203.              Breathing_lamp(0x10ff50,100);
  204.                          delay_ms(1000);
  205.                    DisP_R_G_B(20);
  206.                                  delay_ms(1000);  */        
  207.                                 

  208.                 }   

  209. }

  210. void yigedianliushui10(unsigned int time)   //粉光里面黄光流水
  211. {
  212.      unsigned char j,x,m;
  213.            unsigned long led,xishu,xishu1;
  214.      led=0x01;        
  215.            xishu=1;
  216.            xishu1=0;
  217.         
  218.            for(x=0;x<LED_N;x++)
  219.            {                             
  220.                            for(j=12;j>0;j--)
  221.                      {
  222.                                          led=_crol_(led,1);
  223.                                          for(m=0;m<8;m++)
  224.                                          {
  225.                                                  xishu1=xishu*2;
  226.                                                  xishu1=led/xishu;
  227.                                                  if(xishu1==1)
  228.                                                  {
  229.                                                          DisP_Color(0x20ff50);
  230.                                                  }                        
  231.                                                 else
  232.                                                 {
  233.                                                    DisP_Color(0x20ff00);                        
  234.                                                 }        
  235.                                    }
  236.                                  }
  237.          reset();                        
  238.          delay_ms(time);                                 
  239.                  }           
  240. }



  241. void delay(unsigned int time)   //延时
  242. {  
  243.         
  244.         unsigned int i,j,k;
  245.    for(j=0;j<time;j++)
  246.            for(i=0;i<time;i++)
  247.        for(k=0;k<time;k++)
  248.           Delay();
  249. }



  250. void Delay()                //@24.000MHz
  251. {
  252.         _nop_();
  253. }


  254. void reset(void)
  255. {
  256.    int i;
  257.    LED=0;
  258. for(i=0;i<50;i++)
  259. {
  260.          Delay();
  261. }  
  262. }


  263. void T0(void)
  264. {
  265.   LED=1;
  266.   LED=0;
  267.   Delay();         
  268. }


  269. void T1(void)
  270. {
  271.   LED=1;
  272.   Delay();
  273.   LED=0;
  274. }



  275. void  qingling()
  276. {
  277.                 unsigned char i;
  278.                 for(i=0;i<nWs;i++)
  279.         {
  280.                 DisP_Color(WsDat[0x000000]);
  281.         }
  282.         reset();
  283. }
  284. void DisP_Color(unsigned long dat)                                 //控制一个灯
  285. {           unsigned int i;
  286.              for(i=0;i<24;i++)
  287.                    {  
  288.                                  if(0x800000 == (dat & 0x800000))  T1();
  289.                 else       T0();
  290.                 dat<<=1;                                                        //左移一位
  291.                    }
  292. }

  293. void DisP_ALLColor(unsigned long dat)         //控制所有灯         
  294. {
  295.          int j;         
  296.    for(j=0;j<LED_N;j++) DisP_Color(dat);
  297.    reset();
  298. }



  299. void DisP_R_G_B(unsigned int j)                    //RGB渐变
  300. {  
  301.     unsigned long i=0;
  302.     while(i<0xffffff)
  303.           {
  304.              if(i<0xff)  DisP_ALLColor(i++);         
  305.                    else if(i<0xffff)
  306.         {
  307.                                 i=i+0x100;
  308.                                 DisP_ALLColor(i);
  309.                                 }
  310.                   else if(i<0xffffff)
  311.         {i=i+0x10000;
  312.                                 DisP_ALLColor(i);
  313.                                 }
  314.               delay(j);
  315.          }                  
  316.         while(i>0)
  317.          {
  318.          if(i>0xffff00)  DisP_ALLColor(i--);         
  319.                    else if(i>0xff0000) {i=i-0x100;        DisP_ALLColor(i);}
  320.                 else if(i>0)  {i=i-0x10000;DisP_ALLColor(i);}
  321.                 delay(j);
  322.          }        
  323.         reset();
  324. }



  325. unsigned char abs0(int num)
  326. {
  327.         if(num>0) return num;
  328.         
  329.         num = -num;
  330.         return (unsigned char) num;
  331. }
  332.          
  333. unsigned long ColorToColor(unsigned long color0, unsigned long color1)
  334. {
  335.         unsigned char Red0, Green0, Blue0;  // 起始三原色
  336.         unsigned char Red1, Green1, Blue1;  // 结果三原色
  337.         int  RedMinus, GreenMinus, BlueMinus;        // 颜色差(color1 - color0)
  338.         unsigned char NStep;                                                         // 需要几步
  339.         float    RedStep, GreenStep, BlueStep;                // 各色步进值
  340.         unsigned long color;                                                        // 结果色
  341.         unsigned char i;
  342.         
  343.         // 绿 红 蓝 三原色分解
  344.         Red0   = color0>>8;
  345.         Green0 = color0>>16;
  346.         Blue0  = color0;
  347.         
  348.         Red1   = color1>>8;
  349.         Green1 = color1>>16;
  350.         Blue1  = color1;
  351.         
  352.         // 计算需要多少步(取差值的最大值)
  353.         RedMinus   = Red1 - Red0;
  354.         GreenMinus = Green1 - Green0;
  355.         BlueMinus  = Blue1 - Blue0;
  356.         
  357.         NStep = ( abs0(RedMinus) > abs0(GreenMinus) ) ? abs0(RedMinus):abs0(GreenMinus);
  358.         NStep = ( NStep > abs0(BlueMinus) ) ? NStep:abs0(BlueMinus);
  359.         
  360.         // 计算出各色步进值
  361.         RedStep   = (float)RedMinus   / NStep;
  362.         GreenStep = (float)GreenMinus / NStep;
  363.         BlueStep  = (float)BlueMinus  / NStep;
  364.         
  365.         // 渐变开始
  366.         for(i=0; i<NStep; i++)
  367.         {
  368.                 Red1   = Red0   + (char)(RedStep   * i);
  369.                 Green1 = Green0 + (char)(GreenStep * i);
  370.                 Blue1  = Blue0  + (char)(BlueStep  * i);
  371.                
  372.                 color  = (((unsigned long)Green1<<16)&0XFF0000) | ((Red1<<8)&0XFF00) | Blue1&0XFF;         // 合成  绿红蓝                        
  373.                 WsDat[i] = color;
  374.                 DisP_ALLColor(color) ;
  375.                         
  376.                           delay(15)  ;                                          // 渐变速度
  377.         }
  378.         
  379.         
  380.         return color;
  381. }




  382. void WS_SET(unsigned long color,unsigned char num)    //
  383. {
  384.      unsigned char j;
  385.            for(j=0;j<LED_N;j++)
  386.            {
  387.                      if(j<num)
  388.                                  {
  389.                                          DisP_Color(color);
  390.                                  }
  391.          else
  392.          {
  393.             DisP_Color(Black);                        
  394.                                  }                                         
  395.                  }         
  396.        reset();
  397. }
  398. void WS_SET_Water_lamp(unsigned long color,unsigned int time)
  399. {
  400.      unsigned char j,x;
  401.            for(x=0;x<LED_N;x++)
  402.            {
  403.                            for(j=0;j<LED_N;j++)
  404.                      {
  405.                                           if(j==x)
  406.                                                 {
  407.                                                    DisP_Color(color);
  408.                                                 }
  409.                                                 else
  410.                                                 {
  411.                                                    DisP_Color(0x20ff00);                        
  412.                                                 }        
  413.                                  }
  414.          reset();                                 
  415.         delay_ms(time);                                 
  416.                  }           
  417. }
  418. void WS_SET_Water_lamp_two(unsigned long color,unsigned int time)   //左边往右边流水
  419. {
  420.      unsigned char j,x;
  421.            for(x=0;x<nWs;x++)
  422.            {
  423.                            for(j=0;j<nWs;j++)
  424.                      {
  425.                                           if(j<x)
  426.                                                 {
  427.                                                    DisP_Color(color);
  428.                                                 }
  429.                                                 else
  430.                                                 {
  431.                                                   DisP_Color(0x9f9f9f);                        
  432.                                                 }        
  433.                                  }
  434.          reset();                        
  435.         delay_ms(time);                                 
  436.                  }           
  437. }
  438. void WS_SET_Water_lamp_two1(unsigned long color,unsigned int time)   //右边往左边流水
  439. {
  440.      unsigned char j,x;
  441.            for(x=0;x<nWs;x++)
  442.            {
  443.                            for(j=nWs;j>0;j--)
  444.                      {
  445.                                           if(j<x)
  446.                                                 {
  447.                                                    DisP_Color(color);
  448.                                                 }
  449.                                                 else
  450.                                                 {
  451.                                                   DisP_Color(0x9f9f9f);                        
  452.                                                 }        
  453.                                  }
  454.          reset();                        
  455.          delay_ms(time);                                 
  456.                  }           
  457. }

  458. void yigedianliushui(unsigned long color,unsigned int time)   //一个IC流水到左边
  459. {
  460.      unsigned char j,x,m;
  461.            unsigned long led,xishu,xishu1;
  462.      led=0x01;        
  463.            xishu=1;
  464.            xishu1=0;
  465.            for(x=0;x<LED_N;x++)
  466.            {                             
  467.                            for(j=12;j>0;j--)
  468.                      {
  469.                                          led=_crol_(led,1);
  470.                                          for(m=0;m<8;m++)
  471.                                          {
  472.                                                  xishu1=xishu*2;
  473.                                                  xishu1=led/xishu;
  474.                                                  if(xishu1==1)
  475.                                                  {
  476.                                                          DisP_Color(color);
  477.                                                  }                        
  478.                                                 else
  479.                                                 {
  480.                                                   DisP_Color(0x9f9f9f);                        
  481.                                                 }        
  482.                                    }
  483.                                  }
  484.          reset();                        
  485.          delay_ms(time);                                 
  486.                  }           
  487. }


  488. void Breathing_lamp(unsigned long color,unsigned int time)
  489. {
  490.      unsigned char j,x,r,g,b,move;
  491.           unsigned long color0,color1;
  492.            r=color>>8;
  493.            g=color;
  494.            b=color>>16;
  495.            if(r!=0)
  496.                  {
  497.                          color0=r;move=8;
  498.      }
  499.                  if(g!=0)
  500.                  {
  501.                          color0=g;move=0;
  502.                  }         
  503.                  if(b!=0)        
  504.      {
  505.                          color0=b;move=16;                 
  506.      }
  507.                  for(x=0;x<127;x++)
  508.            {
  509.                            color1=color0<<move;
  510.                            for(j=0;j<LED_N;j++)
  511.                      {
  512.                                           DisP_Color(color1);
  513.                                             
  514.                                  }
  515.                                  color0=color0-2;
  516.          reset();                        
  517.         delay_ms(time);                                 
  518.                  }
  519.                  for(x=0;x<127;x++)
  520.            {
  521.                            color1=color0<<move;
  522.                            for(j=0;j<LED_N;j++)
  523.                      {
  524.                                            DisP_Color(color1);
  525.                                             
  526.                                  }
  527.                                  color0=color0+2;
  528.          reset();                        
  529.         delay_ms(time);                                 
  530.                  }
  531. }
  532. void Breathing_lamp_Alternate(unsigned int time)
  533. {
  534.             unsigned char j,x,num,move;
  535.             unsigned long color0,color1;
  536.             for(num=0;num<3;num++)
  537.             {
  538.                                   color0=0;
  539.           move=8*num;                                                
  540.                                         for(x=0;x<127;x++)
  541.                                         {
  542.                                                   color1=color0<<move;
  543.                                                         for(j=0;j<LED_N;j++)
  544.                                                         {
  545.                                                                  DisP_Color(color1);
  546.                                                         }
  547.                                                         color0=color0+2;
  548.                                                           reset();                 
  549.                                                         delay_ms(time);                                 
  550.                                         }
  551.                                          for(x=0;x<127;x++)
  552.                                          {
  553.                                                    color1=color0<<move;
  554.                                                          for(j=0;j<LED_N;j++)
  555.                                                          {
  556.                                                                          DisP_Color(color1);
  557.                                                                                 
  558.                                                          }
  559.                                                          color0=color0-2;
  560.                                                           reset();                        
  561.                                                         delay_ms(time);                                 
  562.                                          }
  563.                   }                                         
  564. }

  565. /*
  566. *********************************************************************************************************
  567. *        函 数 名: WaterLampToCol2
  568. *        功能说明: 单组灯移位显示
  569. *        形    参:_uColor         点亮颜色
  570. *                          _uTime        移位速度
  571. *        返 回 值: 无
  572. *********************************************************************************************************
  573. */
  574. void WaterLampToCol2(unsigned long _uColor, unsigned int _uTime)
  575. {
  576.         unsigned char i, j;
  577.         unsigned long Red2,Green2, Blue2;  // 三原色
  578.         
  579.         Red2  = _uColor>>8;
  580.         Green2 = _uColor>>16;
  581.         Blue2  = _uColor;
  582.         
  583.         for (i = 0; i < nWs; i++)
  584.         {
  585.                 for (j = 0; j < i; j++)
  586.                 {
  587.                 //        Red2 = Red2 + 0x22;
  588.                         //Green2 = Green2 + 0x22;
  589.                         Blue2 = Blue2 + 0x22;
  590.                         _uColor = Green2<<16 | Red2<<8 | Blue2;
  591.                         
  592.                    //        _uColor = _uColor + 0xfffff*i;
  593.                         WsDat[j] = _uColor;
  594.                 }
  595.                 WS_L_SetAll();
  596.                 delay_ms(_uTime);
  597.         //        memset(WsDat, 0, sizeof(WsDat));
  598.         }
  599. }
  600. /*
  601. *********************************************************************************************************
  602. *        函 数 名: WaterLampToCol3
  603. *        功能说明: 从中点向两端移动
  604. *        形    参:_uColor         点亮颜色
  605. *                          _uTime        移位速度
  606. *        返 回 值: 无
  607. *********************************************************************************************************
  608. */
  609. void WaterLampToCol3(unsigned long _uColor, unsigned int _uTime)
  610. {
  611.         unsigned char i;
  612.         
  613.         for (i = nWs/2; i < nWs; i++)
  614.         {
  615.                 _uColor = _uColor + 0xfffff*i;
  616.                 WsDat[i] = _uColor;
  617.                 WsDat[nWs/2 -(i - nWs/2)] = _uColor;
  618.                 WS_L_SetAll();
  619.                 delay_ms(_uTime);
  620.         }

  621. }


  622. void WS_L_SetAll()
  623. {
  624.         unsigned char j;
  625.         
  626.         for (j=0; j<nWs; j++)
  627.         {
  628.                 DisP_Color(WsDat[j]);  // j 级联个数/ 0
  629.         }
  630.         reset();
  631. }
  632. /*
  633. *********************************************************************************************************
  634. *        函 数 名: WaterLampToCol12(可用)
  635. *        功能说明: 从后向前移动(跳一个)
  636. *        形    参:_uColor         点亮颜色
  637. *                          _uTime        移位速度
  638. *        返 回 值: 无
  639. *********************************************************************************************************
  640. */
  641. void WaterLampToCol12(unsigned long  _uColor0,unsigned long  _uColor1, unsigned int  _uTime)
  642. ……………………

  643. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有程序51hei提供下载:
caideng - 七彩灯带 各种 104IC.zip (142.88 KB, 下载次数: 565)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:219527 发表于 2019-9-30 11:46 | 显示全部楼层
效果绝对好看,只要时序改一下,和IC芯片改一下,可以应用到各种类型IC上
回复

使用道具 举报

ID:396274 发表于 2020-6-8 00:46 | 显示全部楼层
谢谢楼主的共享,太有用了!
回复

使用道具 举报

ID:107984 发表于 2020-6-23 17:15 | 显示全部楼层
期待,谢谢楼主
回复

使用道具 举报

ID:837776 发表于 2020-11-3 16:01 | 显示全部楼层
好东西,果断下载
回复

使用道具 举报

ID:652804 发表于 2020-12-19 14:44 | 显示全部楼层
谢谢楼主的共享,太有用了!
回复

使用道具 举报

ID:161093 发表于 2021-1-9 11:25 | 显示全部楼层
谢谢楼主的分享,好东西,果断下载
回复

使用道具 举报

ID:143767 发表于 2021-1-9 21:20 | 显示全部楼层
问下楼主,多少个彩灯是一组,总共可带多少彩灯,谢谢
回复

使用道具 举报

ID:230742 发表于 2021-1-10 22:24 | 显示全部楼层
51黑有你更精彩!感谢分享!
回复

使用道具 举报

ID:918068 发表于 2021-5-9 15:08 | 显示全部楼层
问下楼主,彩虹混色的的算法里面有没?
回复

使用道具 举报

ID:156220 发表于 2021-5-11 09:05 | 显示全部楼层
谢谢楼主的共享,太有用了!
回复

使用道具 举报

ID:620326 发表于 2021-5-13 12:43 | 显示全部楼层
这个很牛啊,好长的一个程序
回复

使用道具 举报

ID:927015 发表于 2021-6-3 11:10 | 显示全部楼层
谢谢开源,看看
回复

使用道具 举报

ID:849826 发表于 2021-12-29 17:44 来自手机 | 显示全部楼层
谁做出来了 发个效果图看看
回复

使用道具 举报

ID:88256 发表于 2021-12-29 19:21 | 显示全部楼层
如果有视频参考就好了
回复

使用道具 举报

ID:423238 发表于 2022-1-2 15:23 来自手机 | 显示全部楼层
楼主提供个单片机引脚图,网上搜不到
回复

使用道具 举报

ID:826754 发表于 2022-4-22 11:33 | 显示全部楼层
很有用,正在用TM1804的来做,参考一下
回复

使用道具 举报

ID:465596 发表于 2022-11-3 17:25 | 显示全部楼层
谢谢分享,准备做一个酒柜灯
回复

使用道具 举报

ID:433219 发表于 2022-11-7 20:41 | 显示全部楼层
流水灯 加强版
回复

使用道具 举报

ID:685503 发表于 2022-11-16 03:39 来自手机 | 显示全部楼层
看下效果
回复

使用道具 举报

ID:433219 发表于 2022-11-17 16:46 | 显示全部楼层
加强版的mcu流水灯?   要有视频就更好了
回复

使用道具 举报

ID:701896 发表于 2022-12-27 13:14 | 显示全部楼层
很实用,用空试下效果
回复

使用道具 举报

ID:399179 发表于 2023-4-11 21:05 来自手机 | 显示全部楼层
有没有试过最多能带多少个灯?
回复

使用道具 举报

ID:46750 发表于 2023-5-17 22:33 | 显示全部楼层
谢谢楼主的共享,太有用了!
回复

使用道具 举报

ID:224580 发表于 2023-8-17 10:40 | 显示全部楼层
谢谢楼主,已下载,回来慢慢研究。
回复

使用道具 举报

ID:224580 发表于 2023-8-23 12:16 | 显示全部楼层
下载研究了几天,还是很多看不懂,还是要多多向大神学习。
回复

使用道具 举报

ID:169559 发表于 2023-8-26 16:11 | 显示全部楼层
还是很多看不懂
回复

使用道具 举报

ID:27499 发表于 2023-10-16 23:37 | 显示全部楼层
好东西要好好研究下
回复

使用道具 举报

ID:433219 发表于 2023-10-17 08:08 | 显示全部楼层
ws2811  灯珠都好大,有没有类似0805大小的封装???
回复

使用道具 举报

ID:432633 发表于 2023-10-20 09:19 | 显示全部楼层
WS2812的灯珠 能用吗
回复

使用道具 举报

ID:1096871 发表于 2023-10-23 16:33 | 显示全部楼层
想下载测试一下,感谢楼主
回复

使用道具 举报

ID:1096871 发表于 2023-10-23 16:34 | 显示全部楼层
wkman 发表于 2023-10-17 08:08
ws2811  灯珠都好大,有没有类似0805大小的封装???

2020封装应该是最小的了吧,我用的WS2812B-2020
回复

使用道具 举报

ID:399179 发表于 2023-12-21 10:31 来自手机 | 显示全部楼层
有做成功的吗?
回复

使用道具 举报

ID:433219 发表于 2023-12-21 16:18 | 显示全部楼层
发表于 2023-10-23 16:34
2020封装应该是最小的了吧,我用的WS2812B-2020

找到个1.3mm尺寸的    WS2812E-1313  应该最小了吧 ??? 立创/6342412.html
回复

使用道具 举报

ID:433219 发表于 2023-12-22 08:14 | 显示全部楼层
珠与泪的结合 发表于 2023-10-23 16:34
2020封装应该是最小的了吧,我用的WS2812B-2020

被你这一说还去搜索了下,1615更小,,,又找到个1313更小,,,还有个1010,才是最小!!!

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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