亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11210|回復: 10
打印 上一主題 下一主題
收起左側

單片機+WS2812燈帶驅動程序源碼

  [復制鏈接]
跳轉到指定樓層
#
ID:293743 發表于 2019-4-17 17:13 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
注意:采用1T 51單片機 晶振采用24M
內部有注釋,WS2812燈帶采用單IO口驅動 此處不附帶原理圖

單片機源程序如下:
  1. /********************************************************/
  2. /*作 者:Dyingstraw
  3. /*版    本:V1.0
  4. /*程序功能:用51單片機控制ws2812 RGB輸出,顯示全色彩
  5. /*備        注:51單片機晶振24M
  6. /********************************************************/

  7. #include<STC12C5A60S2.h>
  8. #include<intrins.h>             //寫入頭文件
  9. #define uchar unsigned char
  10. sbit Send_Dat=P3^7;               //數據輸出,接IN腳
  11. sbit key3=P2^1;
  12. sbit key2=P2^4;
  13. sbit key1=P2^7;
  14. uchar show[720]; // 8*3*30
  15. uchar  color[30][3]={
  16.         0xff,0x01,0x00,    //0
  17.         0xff,0x01,0x00,
  18.         0xff,0x01,0x00,
  19.         0xff,0x01,0x00,
  20.         0xff,0x01,0x00,
  21.         0xff,0x01,0x00,
  22.         0xff,0x01,0x00,
  23.         0xff,0x01,0x00,
  24.         0xff,0x01,0x00,
  25.         0xff,0x01,0x00,
  26.         0xff,0x01,0x00,   //10
  27.         0xff,0x01,0x00,
  28.         0xff,0x01,0x00,
  29.         0xff,0x01,0x00,
  30.         0xff,0x01,0x00,
  31.         0xff,0x01,0x00,
  32.         0xff,0x01,0x00,
  33.         0xff,0x01,0x00,
  34.         0xff,0x01,0x00,
  35.         0xff,0x01,0x00,
  36.         0xff,0x01,0x00,  //20
  37.         0xff,0x01,0x00,
  38.         0xff,0x01,0x00,
  39.         0xff,0x01,0x00,
  40.         0xff,0x01,0x00,
  41.         0xff,0x01,0x00,
  42.         0xff,0x01,0x00,
  43.         0xff,0x01,0x00,
  44.         0xff,0x01,0x00,
  45.         0xff,0x01,0x00,  //29
  46.        
  47. };  //G   R   B
  48. uchar code GRB[7][3]={
  49.         0XFF,0X00,0X00,//綠
  50.         0XFF,0XFF,0X00,//黃
  51.         0X00,0XFF,0X00,//紅
  52.         0X00,0XFF,0XFF,//品紅
  53.         0X00,0X00,0XFF,//藍
  54.         0XFF,0X00,0XFF,//青  
  55.         0XFF,0XFF,0XFF,//白
  56. };
  57. void delay();
  58. void delays();      

  59. /*寫入數據時序*/
  60. void Send_A_bit(uchar VAL)
  61. {
  62.        if (VAL==1)
  63.        {
  64.       
  65.               Send_Dat=1;
  66.               _nop_();_nop_();_nop_();_nop_();_nop_();
  67.                                                         _nop_();_nop_();_nop_();_nop_();_nop_();
  68.                                                         _nop_();_nop_();_nop_();_nop_();_nop_();
  69.                                                         _nop_();_nop_();
  70.          
  71.               Send_Dat=0;         
  72.                                                         _nop_();_nop_();
  73.        }
  74.        else
  75.        {  
  76.               Send_Dat=1;
  77.                                                         _nop_();_nop_();_nop_();_nop_();
  78.          
  79.               Send_Dat=0;           
  80.               _nop_();_nop_();_nop_();_nop_();_nop_();
  81.                                                         _nop_();_nop_();_nop_();_nop_();
  82.        }           
  83.       
  84. }
  85. void SendAllData()
  86. {
  87.         unsigned int i;
  88.         for(i=0;i<720;i++)
  89.                 Send_A_bit(show[i]);
  90.        
  91. }
  92. void WriteData()
  93. {
  94.         unsigned char i,j;
  95.         for(i=0;i<30;i++)
  96.         {
  97.                 for(j=0;j<3;j++)
  98.                 {
  99.                 show[24*i+8*j+0]=color[i][j]/128%2;
  100.                 show[24*i+8*j+1]=color[i][j]/64%2;
  101.                 show[24*i+8*j+2]=color[i][j]/32%2;
  102.                 show[24*i+8*j+3]=color[i][j]/16%2;
  103.                 show[24*i+8*j+4]=color[i][j]/8%2;
  104.                 show[24*i+8*j+5]=color[i][j]/4%2;
  105.                 show[24*i+8*j+6]=color[i][j]/2%2;
  106.                 show[24*i+8*j+7]=color[i][j]%2;
  107.                 }       
  108.         }
  109. }

  110. void change1(unsigned char k)
  111. {
  112.                 unsigned char i,j;
  113.                 for(i=0;i<30;i++)
  114.         {
  115.                 for(j=0;j<3;j++)
  116.                 color[i][j]=GRB[k][j];
  117.                
  118.         }
  119.                
  120. }
  121.        
  122. void change2()
  123. {
  124.         unsigned char i;
  125.                 for(i=0;i<30;i++)
  126.         {
  127.                 if(color[i][0]>0&&color[i][2]==0)
  128.                 {
  129.                                 color[i][0]--;color[i][1]++;
  130.                 }
  131.                 if(color[i][1]>0&&color[i][0]==0)
  132.                 {
  133.                                 color[i][1]--;color[i][2]++;
  134.                 }
  135.                 if(color[i][2]>0&&color[i][1]==0)
  136.                 {
  137.                                 color[i][2]--;color[i][0]++;
  138.                 }
  139.         }
  140. }

  141. /*主函數*/
  142. unsigned char main()
  143. {

  144.        uchar k=0;
  145.              P2=0XFF;
  146.                          change1(0);
  147.        while(1)
  148.        {
  149.                                         change1(k);
  150.                                         Send_Dat=0;
  151.                                         WriteData();SendAllData();
  152.                                         Send_Dat=0;   
  153.                                         delays();
  154.                                         k++;if(k>=7)k=0;
  155.                                         if(key1==0) return 0;
  156.                                         if(key2==0)
  157.                                         {
  158.                                                 change1(0);
  159.                                                 while(key3==1)
  160.                                                 {
  161.                                                         change2();
  162.                                                        
  163.                                                        
  164.                                                         Send_Dat=0;
  165.                                                         WriteData();SendAllData();
  166.                                                         Send_Dat=0; //發送數據
  167.                                        

  168.                                                        
  169.                                                 }
  170.                                         }
  171.        }
  172. }






  173. /*小延時函數*/
  174. /*大概1S吧,隨便寫的*/
  175. void delay()  //100ms
  176. {


  177.         unsigned char i, j, k;

  178.         i = 10;
  179.         j = 31;
  180. //        k = 147;
  181.         k=14;
  182.         do
  183.         {
  184.                 do
  185.                 {
  186.                         while (--k);
  187.                 } while (--j);
  188.         } while (--i);
  189. }


  190. /*大延時函數*/
  191. /*十幾秒*/
  192. void delays()
  193. {
  194.   delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay();
  195.         delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay();
  196.         delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay(); delay();
  197. }
復制代碼

所有資料51hei提供下載:
跑馬燈.zip (42.81 KB, 下載次數: 253)


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

使用道具 舉報

10#
ID:998804 發表于 2022-1-2 17:17 | 只看該作者
程序中用數組來定義顏色真是個好辦法
回復

使用道具 舉報

9#
ID:399179 發表于 2021-12-21 18:30 來自觸屏版 | 只看該作者
按鍵沒用上嗎?
回復

使用道具 舉報

8#
ID:991413 發表于 2021-12-12 21:31 | 只看該作者
3個KEY按鍵控制什么呢
回復

使用道具 舉報

7#
ID:242298 發表于 2021-11-23 00:46 | 只看該作者
3個KEY按鍵控制什么呢
回復

使用道具 舉報

6#
ID:735961 發表于 2020-9-27 20:58 | 只看該作者
請問,這個程序文件,我編譯了,怎么不能用
回復

使用道具 舉報

5#
ID:56960 發表于 2020-7-17 08:42 | 只看該作者
多謝樓主分享,要是上一張實物圖就更完美了
回復

使用道具 舉報

地板
ID:64089 發表于 2020-7-16 23:34 | 只看該作者
親測可用,謝謝分享
回復

使用道具 舉報

板凳
ID:299054 發表于 2020-5-9 10:37 | 只看該作者
謝謝分享!
回復

使用道具 舉報

沙發
ID:717943 發表于 2020-3-29 09:15 | 只看該作者
感謝分享
回復

使用道具 舉報

樓主
ID:562991 發表于 2019-6-15 11:32 | 只看該作者
支持謝謝啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表