WS2812小燈可以多種芯片控制板內集成STC8
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
捕獲3.PNG (68.84 KB, 下載次數: 65)
下載附件
2019-11-27 09:28 上傳
捕獲2.PNG (158.54 KB, 下載次數: 68)
下載附件
2019-11-27 09:28 上傳
捕獲.PNG (147.37 KB, 下載次數: 64)
下載附件
2019-11-27 09:28 上傳
捕獲1.PNG (37.72 KB, 下載次數: 83)
下載附件
2019-11-27 09:28 上傳
單片機源程序如下:
- #include<STC15.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define num 12//燈泡個數
- sbit DO=P1^6;//數據輸出口口
- void delay1us()
- {
- unsigned char a;
- for(a=3;a>0;a--);
- }
- void delays(uint m)
- {
- uchar i,j;
- while(--m)
- {
- for(i=56;i>0;i--)
- for(j=250;j>0;j--);
- }
- }
- void WS2812WR(uchar Re,uchar Gr,uchar Bl)
- {
- uchar color=3,dat,i=8;
- DO=0;
- //依次輸出24bit GRB數據
- while(color--)
- {
- if(color==2)dat=Gr;//綠
- if(color==1)dat=Re;//紅
- if(color==0)dat=Bl;//藍
- while(i--)
- {
- if(dat & 0X80)//寫1
- {
- DO=1;delay1us();
- DO=0;_nop_();
- }
- else //寫0
- {
- DO=1;_nop_();
- DO=0;delay1us();
- }
- dat <<= 1;
- }
- i=8;
- }
- }
- void zi()
- {
- uchar i,j;
- for(j=0;j<num;j++)
- {
- for(i=0;i<num;i++)
- {
-
- WS2812WR(0,0,255);
-
- }
- delays(100);//反正每次整完一組
-
-
- }
- }
- void main()
- {
- uint i,j;
- zi();
- while(1)
- {
-
- for(j=0;j<num;j++)
- {
- for(i=0;i<num;i++)
- {
- if(i==j-2)
- WS2812WR(200,0,200); //粉紅
- if(i==j-1)
- WS2812WR(0,200,200); //青蘭
- if(i==j)
- WS2812WR(200,200,0); //橙黃
- if(i==j+1)
- WS2812WR(200,200,200);//正白
-
-
- else
- WS2812WR(255,255,0);//藍色底色
-
- }
- delays(100);//反正每次整完一組
-
-
- }
- }
- }
復制代碼
51hei.png (4.26 KB, 下載次數: 79)
下載附件
2019-11-27 12:29 上傳
所有資料51hei提供下載:
WS2812.zip
(999.24 KB, 下載次數: 156)
2019-11-27 09:30 上傳
點擊文件名下載附件
PCB文件 下載積分: 黑幣 -5
WS2812全彩.zip
(39.08 KB, 下載次數: 132)
2019-11-27 09:32 上傳
點擊文件名下載附件
程序代碼,可自己進行配色 下載積分: 黑幣 -5
|