久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 24277|回復(fù): 22
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的WS2812B全彩燈程序,親測可用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:499397 發(fā)表于 2020-2-28 22:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
芯片用的是15W系列的1T單片機,WS2812B通信協(xié)議要求的高低電平持續(xù)低于1us。一般12T單片機可以提升晶振頻率來實現(xiàn)。1T單片機于傳統(tǒng)12T沒有好大區(qū)別的。只是換個型號而已。

制作出來的實物圖如下:


單片機源程序如下:
  1. #include<15W.h>                 //STC15W系列單片機。晶振12MHZ
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned  int




  5. sbit sda   =   P2^7;         // 定義數(shù)據(jù)引腳      
  6.       


  7. uint US100;
  8. uint MS1;
  9. uint ID;

  10. bit FLAG1;
  11. bit FLAG2;
  12. bit FLAG3;

  13. bit GF;



  14. uchar i;
  15. uchar j;

  16. uchar d;
  17.                                                                                

  18. uchar RR;    //  顏色變量0-255 就是FF以內(nèi)
  19. uchar GG;
  20. uchar BB;


  21. //=============================================

  22. void delayus(uint us)  //     延時n個1us    @12M晶振  STC15F104W芯片
  23. {        
  24.         uint us2;            
  25.         for(us2=us;us2>0;us2--)    {  _nop_();  _nop_();   }  
  26.         
  27. }  

  28. //==================================================延時代碼 12mHZ
  29. void delayms(uint z)      //X  MS延時==@ 12MHZ
  30. {
  31. uint x,y;  
  32. for(x=z; x>0; x--)
  33.   for(y=920; y>0; y--);
  34. }


  35. //=========================================================================


  36. void bit1()    //H=0.7us.L=0.6us  數(shù)據(jù)1的表示   芯片STC15F104W  @ 12MHZ

  37.                //1US= 4個 _nop_();  進程序要用掉2個_nop_(); 出程序用掉2個_nop_();
  38. {
  39. sda=1;
  40.   
  41.     _nop_();
  42.     _nop_();
  43.     _nop_();
  44. sda=0;
  45.     _nop_();

  46. }


  47. void bit0()//H=0.35us.L=0.8us  ==數(shù)據(jù)0的表示
  48. {
  49. sda=1;


  50.     _nop_();
  51.     _nop_();
  52. sda=0;
  53.     _nop_();
  54.     _nop_();
  55.    
  56. }



  57. //發(fā)送8位,=1顆燈的一種顏色,WS2812燈數(shù)據(jù)為24一串24位二進制數(shù)–每種顏色8位二進制數(shù)。先是綠色,然后是紅色,最后是藍色
  58. void send_sda(uchar dat)        

  59. {
  60.     uchar count1;               //位計數(shù)器,單字節(jié)為8位
  61.     for (count1=8;count1>0;count1--)
  62.       {   
  63.         if(dat & 0x80)         //取高位先發(fā),則dat & 0x80
  64.           bit1();
  65.           else
  66.           bit0();
  67.             dat<<=1;               //數(shù)據(jù)右移,下一個位的數(shù)據(jù),若高位先發(fā)則dat<<=1
  68.       }
  69. }




  70. //=============================================
  71. void Init (void)    //中斷初始化
  72. {
  73.     TMOD = 0x01;           //12M    100us
  74.    
  75.     TL0 = (65536-100)%256;    //設(shè)置定時初值
  76.     TH0 = (65536-100)/256;    //設(shè)置定時初值
  77.     EA=1;
  78.     ET0=1;
  79.     TR0=1;
  80. }




  81. //=============================================
  82. void timer0(void) interrupt 1 using 1  //---定時器t0-----
  83. {
  84.      TL0 = (65536-100)%256;    //設(shè)置定時初值
  85.      TH0 = (65536-100)/256;    //設(shè)置定時初值

  86.     US100++;        TF0 = 0;   

  87.    
  88.        if(US100>=10 )   { MS1++;   US100=0;    }


  89.        
  90.        


  91. if( MS1>=1000)          //定時器實現(xiàn)七彩色時序
  92. {
  93.               RR=0xFF;    //
  94.              GG=0x00;    //
  95.               BB=0x00;    //

  96. }

  97.   if( MS1>=2000)
  98. {
  99.               RR=0x00;    //
  100.               GG=0xFF;    //
  101.               BB=0x00;    //

  102. }

  103.   if( MS1>=3000)
  104. {
  105.               RR=0x00;    //
  106.              GG=0x00;    //
  107.               BB=0xFF;    //

  108. }

  109.   if( MS1>=4000)
  110. {
  111.               RR=0xFF;    //
  112.         GG=0xFF;    //
  113.               BB=0x00;    //

  114. }

  115.   if( MS1>=5000)
  116. {
  117.               RR=0xFF;    //
  118.         GG=0x00;    //
  119.               BB=0xFF;    //

  120. }

  121.   if( MS1>=6000)
  122. {
  123.               RR=0x00;    //
  124.         GG=0xFF;    //
  125.               BB=0xFF;    //

  126. }

  127.   if( MS1>=7000)
  128. {
  129.               RR=0x7C;    //
  130.         GG=0xFC;    //
  131.               BB=0x00;    //

  132. }

  133.   if( MS1>=8000)
  134. {
  135.               RR=0x4B;    //
  136.         GG=0x00;    //
  137.               BB=0x82;    //
  138.      
  139.      MS1=0;

  140. }


  141.    
  142. }



  143. //=========================================================================

  144. //==========================  主程序開始  ==================================

  145. void main()
  146. {
  147.       
  148.     P0M0 = 0x00;
  149.     P0M1 = 0x00;
  150.     P1M0 = 0x00;
  151.     P1M1 = 0x00;
  152.     P2M0 = 0x00;
  153.     P2M1 = 0x00;
  154.     P3M0 = 0x00;
  155.     P3M1 = 0x00;
  156.     P4M0 = 0x00;
  157.     P4M1 = 0x00;
  158.     P5M0 = 0x00;
  159.     P5M1 = 0x00;

  160.    
  161.               RR=0x00;    //初始化
  162.               GG=0x00;    //
  163.               BB=0x00;    //
  164.    
  165.    
  166.    
  167.     Init();


  168.     while(1) //主循環(huán)。
  169.     {


  170.        
  171.      
  172. for (i=0;i<8;i++)    //發(fā)送8顆燈 ,你有幾顆燈就循環(huán)發(fā)送多少次。
  173.    {
  174.      send_sda(GG);    //綠
  175.      send_sda(RR);    //紅
  176.      send_sda(BB);    //藍
  177.          
  178.          

  179.         
  180.    }
  181.   
  182.      sda=0;
  183.     delayus(70);      // 高于50US的低電平信號=復(fù)位,
  184.      


  185.     }
  186. }
復(fù)制代碼

所有資料51hei提供下載:
彩燈程序.rar (32.44 KB, 下載次數(shù): 507)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏34 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:66872 發(fā)表于 2020-3-31 18:30 來自手機 | 只看該作者
感謝樓主分享,學(xué)習(xí)了!
回復(fù)

使用道具 舉報

板凳
ID:697723 發(fā)表于 2020-4-2 10:53 來自手機 | 只看該作者
感謝樓主分享,我也試試看
回復(fù)

使用道具 舉報

地板
ID:697723 發(fā)表于 2020-4-2 18:28 來自手機 | 只看該作者
帶碼里面缺個15w.h得去下載頭文件,延時毫秒多余可不用,親測可用,
回復(fù)

使用道具 舉報

5#
ID:243394 發(fā)表于 2020-4-5 14:38 | 只看該作者
請教樓主,為什么我 的剛開始上電時RGB燈會微亮,而且閃爍,然后等一下才會正常顯示
回復(fù)

使用道具 舉報

6#
ID:578423 發(fā)表于 2020-5-16 16:00 | 只看該作者
WS2812晶振要求在搞了,有人用WS2812來做頻普?
回復(fù)

使用道具 舉報

7#
ID:704585 發(fā)表于 2020-5-28 15:04 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報

8#
ID:652804 發(fā)表于 2020-12-19 14:41 | 只看該作者
感謝樓主分享,正在學(xué)習(xí)燈帶控制。
回復(fù)

使用道具 舉報

9#
ID:390416 發(fā)表于 2021-2-22 20:18 | 只看該作者
回復(fù)

使用道具 舉報

10#
ID:823677 發(fā)表于 2021-2-24 22:35 | 只看該作者
請問我的為什么不會顯示單色??
回復(fù)

使用道具 舉報

11#
ID:499397 發(fā)表于 2021-3-9 12:55 | 只看該作者
dpj888888 發(fā)表于 2021-2-24 22:35
請問我的為什么不會顯示單色??

沒懂你的意思哦
回復(fù)

使用道具 舉報

12#
ID:232366 發(fā)表于 2021-4-21 11:05 | 只看該作者
您好請問有這方面跑馬燈燈得參考嗎????
回復(fù)

使用道具 舉報

13#
ID:199349 發(fā)表于 2021-5-16 17:30 | 只看該作者
嘩,太友好了,謝謝
回復(fù)

使用道具 舉報

14#
ID:899094 發(fā)表于 2021-5-17 22:17 | 只看該作者
學(xué)單片機就是為了各種各樣點燈
回復(fù)

使用道具 舉報

15#
ID:507641 發(fā)表于 2021-8-1 22:11 | 只看該作者
變化的過程 藍色時閃,有時我再看看什么原因,謝謝分享
回復(fù)

使用道具 舉報

16#
ID:507641 發(fā)表于 2021-8-2 00:03 | 只看該作者
     
for (i=0;i<8;i++)    //發(fā)送8顆燈 ,你有幾顆燈就循環(huán)發(fā)送多少次。
   {
     send_sda(GG);    //綠
     send_sda(RR);    //紅
     send_sda(BB);    //藍
         
         

        
   }試過如果 57個led就會有問題。
還是謝謝分享基本工作原理!
回復(fù)

使用道具 舉報

17#
ID:399179 發(fā)表于 2021-11-19 20:56 來自手機 | 只看該作者
感謝樓主分享!已收藏!要是控制幾百個燈怎么辦?
回復(fù)

使用道具 舉報

18#
ID:998804 發(fā)表于 2022-1-2 17:16 | 只看該作者
沒明白定時器T0的作用?我刷進去好像沒有觸發(fā)
回復(fù)

使用道具 舉報

19#
ID:962202 發(fā)表于 2022-1-14 10:56 | 只看該作者
謝樓主分享了,拿下參考參考
回復(fù)

使用道具 舉報

20#
ID:499397 發(fā)表于 2022-1-15 13:55 | 只看該作者

受限于單片機速度。用更快的晶振頻率,會更多。
回復(fù)

使用道具 舉報

21#
ID:734967 發(fā)表于 2022-10-20 20:27 | 只看該作者
好歹上個沒有錯的啊
回復(fù)

使用道具 舉報

22#
ID:499397 發(fā)表于 2022-12-2 16:33 | 只看該作者
379225396 發(fā)表于 2022-10-20 20:27
好歹上個沒有錯的啊

程序都是親測可用,頭文件你可以去下載器里面復(fù)制一個過來就行。
回復(fù)

使用道具 舉報

23#
ID:1055167 發(fā)表于 2022-12-28 16:27 | 只看該作者
P0M0到P5M1 是啥
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久com| 色伊人| 国产中文一区二区三区 | 丝袜 亚洲 另类 欧美 综合 | 精品视频一区二区三区四区 | 精品国产乱码一区二区三区 | 作爱视频免费看 | 久久国产精品-国产精品 | 中文字幕一区二区三区在线观看 | 欧美久久久久 | 日韩免费视频一区二区 | 亚洲毛片网站 | 日韩免费中文字幕 | 五月婷婷婷 | 国产成人精品免费视频 | 国产精品激情在线 | 成人在线观看免费观看 | 小h片免费观看久久久久 | 精品一区国产 | 男女性毛片 | 成人在线免费观看视频 | 欧美激情在线播放 | 国产精品久久网 | 久久免费视频1 | 超碰成人免费观看 | 日韩在线精品强乱中文字幕 | 极品在线 | 人人爱干 | 午夜视频在线 | 久草网在线视频 | 国产xxxx搡xxxxx搡麻豆 | 国产一级片一区二区三区 | 天天操天天拍 | 好姑娘影视在线观看高清 | 神马影院一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 欧美日本一区 | 日本久久精 | 欧美不卡视频一区发布 | 亚洲国产成人精品久久 | 91久久久久久久久 |