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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5753|回復: 4
收起左側

stc單片機控制4引腳Ws2812b RGB燈(VSS VDD DIN DOUT)完整純凈驅動程序

  [復制鏈接]
ID:447546 發表于 2021-11-12 13:37 | 顯示全部樓層 |閱讀模式
800ns 400ns  可通過示波器進行自主調節,簡單易用易學
單片機源程序如下:
  1. #include <STC8.H>
  2. #include "intrins.h"

  3. sbit ws2812b_IO=P3^3;  //控制WS2812數據輸出口
  4. u8 Loop_Speed=120; //流水燈延時變量
  5. unsigned char bdata LED_DAT; //可位操作的數據發送緩存變量

  6. sbit bit0=LED_DAT^0; //被發送數據的各位定義
  7. sbit bit1=LED_DAT^1;
  8. sbit bit2=LED_DAT^2;
  9. sbit bit3=LED_DAT^3;
  10. sbit bit4=LED_DAT^4;
  11. sbit bit5=LED_DAT^5;
  12. sbit bit6=LED_DAT^6;
  13. sbit bit7=LED_DAT^7;

  14. //*******************發送1碼**********************// 1, 18n ,0,6n              //STC燒錄器設置24M,,,不同單片機 選擇不同個數的NOP。
  15. //一個)_NOP_()為40ns 高碼850ns低碼400ns
  16. #define CODE_1 {ws2812b_IO=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();ws2812b_IO=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}            

  17.         //*******************發送0碼**********************//1 ,9n,0,15n
  18. //一個)_NOP_()為40ns 高碼400ns低碼850ns
  19. #define CODE_0 {ws2812b_IO=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();ws2812b_IO=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}     

  20. void SendData(u8 dat)
  21. {
  22.         LED_DAT = dat;
  23.         if(bit7==1){CODE_1} else{CODE_0}
  24.         if(bit6==1){CODE_1} else{CODE_0}
  25.         if(bit5==1){CODE_1} else{CODE_0}
  26.         if(bit4==1){CODE_1} else{CODE_0}
  27.         if(bit3==1){CODE_1} else{CODE_0}
  28.         if(bit3==1){CODE_1} else{CODE_0}
  29.         if(bit1==1){CODE_1} else{CODE_0}
  30.         if(bit0==1){CODE_1} else{CODE_0}

  31. }

  32. void ON_LED(u8 GG,u8 RR,u8 BB)// 先綠色 后紅  后藍  
  33. {        
  34.                         SendData(GG);   
  35.                         SendData(RR);
  36.                         SendData(BB);        
  37. }

  38. void Delay1ms(u16 k)                //@24.000MHz       Delay1ms(50);//實測50ms
  39. {
  40.         unsigned char i, j, m;
  41.         for(m=0;m<k;m++)
  42.         {
  43.                 _nop_();
  44.                 i = 32;
  45.                 j = 40;
  46.                 do
  47.                 {
  48.                         while (--j);
  49.                 } while (--i);
  50.         }
  51. }

  52. void Delay1us(u16 v)                //@24.000MHz      Delay1us(50);//重置最小時間,實測60us
  53. {
  54.         unsigned char i ,m;
  55.         for(m=0;m<v;m++)
  56.         {
  57.                 i = 6;
  58.                 while (--i);
  59.         }
  60. }

  61. void init ()
  62. {
  63.           P3M0=0;
  64.                 P3M1=0;
  65.                 P5M0=0;
  66.                 P5M1=0;
  67. }

  68. void main()
  69. {
  70.         init();
  71.         while(1)
  72.         {
  73.                 ON_LED(0X00,0XFF,0X00);//一行代碼對應一個燈, 三個255數字對應3燈亮度,可以組合任意顏色 ,重置發送數據時間間隔  Delay1us(50);就重新從第一個地址為發送。
  74.                 ON_LED(0X00,0XFF,0X00);
  75.                 ON_LED(0X00,0XFF,0X00);
  76.                 ON_LED(0X00,0XFF,0X00);
  77.                 ON_LED(0X00,0XFF,0X00);
  78.                
  79.                 ON_LED(0X00,0X00,0XFF);
  80.                 ON_LED(0X00,0X00,0XFF);
  81.                 ON_LED(0X00,0X00,0XFF);
  82.                 ON_LED(0X00,0X00,0XFF);
  83.                 ON_LED(0X00,0X00,0XFF);
  84.                
  85.                 ON_LED(0XFF,0X00,0X00);
  86.                 ON_LED(0XFF,0X00,0X00);
  87.                 ON_LED(0XFF,0X00,0X00);
  88.                 ON_LED(0XFF,0X00,0X00);
  89.                 ON_LED(0XFF,0X00,0X00);
  90.                
  91.                 ON_LED(0X00,0XFF,0XFF);
  92.                 ON_LED(0X00,0XFF,0XFF);
  93.                 ON_LED(0X00,0XFF,0XFF);
  94.                 ON_LED(0X00,0XFF,0XFF);
  95.                 ON_LED(0X00,0XFF,0XFF);
  96.                 while(1);
  97.         }


  98. }

復制代碼


企業51hei截圖_16366951833416.png
企業51hei截圖_16366951983577.png

評分

參與人數 3黑幣 +77 收起 理由
catlu + 12
lkc8210 + 15 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:418515 發表于 2022-8-9 22:44 | 顯示全部樓層
這個比較精確
回復

使用道具 舉報

ID:64089 發表于 2022-9-19 15:32 | 顯示全部樓層
經測試非常好用,學習到了,不過設置成1T的時候需要在>6M時再自己測試一下時間間隔,謝謝分享!
回復

使用道具 舉報

ID:1038987 發表于 2023-4-16 20:37 | 顯示全部樓層
這個代碼應該好研究。謝謝
回復

使用道具 舉報

ID:807361 發表于 2024-4-28 22:32 | 顯示全部樓層
這個代碼應該好研究。謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久热久 | 精品成人免费视频 | 久久国产传媒 | 盗摄精品av一区二区三区 | 亚洲欧美日韩中文字幕一区二区三区 | 99视频在线免费观看 | 日本一区二区三区精品视频 | 成人精品国产免费网站 | 日韩在线国产精品 | 羞羞色在线观看 | wwww.8888久久爱站网 | 久久精品成人 | 国产精品久久久久久久久久三级 | 91欧美激情一区二区三区成人 | 国产精品成人一区二区 | 欧美激情欧美激情在线五月 | 成人免费网站 | 久久久黑人 | 国产精品无码久久久久 | 国产婷婷精品av在线 | 中文字幕亚洲精品 | 麻豆久久久久久久久久 | 国产色| 成人一级视频在线观看 | 亚洲综合一区二区三区 | 日韩综合在线 | 精品中文字幕一区二区三区 | 精品久久久久久亚洲精品 | av毛片 | 久草久 | 91偷拍精品一区二区三区 | 欧美99久久精品乱码影视 | 精品久久久久香蕉网 | 精品永久| 欧美福利一区 | 国产精品久久久久久一区二区三区 | 97精品一区二区 | 国产成人一区二区三区 | 成人av电影免费在线观看 | 亚洲精品一区二区三区蜜桃久 | 日韩午夜精品 |