36顆2812B燈珠做的流水循環轉圈效果源代碼
0.png (5.59 KB, 下載次數: 37)
下載附件
2017-11-29 02:39 上傳
所有資料51hei提供下載:
36顆WS2812B燈珠.rar
(1018 Bytes, 下載次數: 47)
2017-11-28 16:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
單片機源程序如下:
- /*************************************
- MCU:STC15W204S 晶振:22.1184MHZ
- *************************************/
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define RGB_count 36 //IC數量
- #define RGB_speed 7 //燈珠亮滅速度,數值越小,速度越快
- uchar x;
- sbit DIN=P3^2;
- uchar buff[]={10,11,9,12,8,13,7,14,6,15,5,16,4,17,3,18,2,19,1,20,0};
- void time0()interrupt 1
- {
-
- TH0 = (65536-50000)/256;
- TL0 = (65536-50000)%256;
- x++;
- if(x==110)
- x=0;
- // P10=~P10;
- // P11=~P11;
- // P12=~P12;
- }
- /*************0碼*******************/
- void DIN_bit_0() {
- uchar i;
- DIN=1;
- for(i=1;i>0;i--);
- DIN=0; //1+3+4*7
- for(i=4;i>0;i--);
- }
- /*************1碼*******************/
- void DIN_bit_1() {
- uchar i;
- DIN=1; //1+3+4*7+1
- for(i=4;i>0;i--);
- DIN=0;
- for(i=1;i>0;i--);
- }
- /*************reset碼*******************/
- void reset() {
- uchar a,b;
- DIN=0;
- for(b=78;b>0;b--)
- for(a=2;a>0;a--);
- _nop_(); //if Keil,require use intrins.h
- }
- /*************數據傳輸******************/
- void send_dat(uchar dat) { //高位先傳
- uchar i;
- for(i=8;i>0;i--) {
- if(dat & 0x80)
- DIN_bit_1();
- else
- DIN_bit_0();
- dat <<=1;
- }
- }
- void send_rgb(uchar g,uchar r,uchar b)
- {
- send_dat(g);
- send_dat(r);
- send_dat(b);
- }
- /***************延時******************/
- void delay(uchar t) {
- unsigned long j;
- while(t--)
- for(j=0;j<1000;j++);
- }
- void main() {
- uchar i,n,num,t;
- //AUXR = AUXR|0x80; // T0, 1T Mode
- // InitTimer0();
-
- while(1)
- {
-
- //*************紅R跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(0);
- send_dat(255);
- send_dat(0);
- }
- reset();
- for(t=RGB_speed;t>0;t--)
- delay(1);
- }
-
-
- //*************綠G跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(255);
- send_dat(0);
- send_dat(0);
- }
- reset();
- for(t=RGB_speed;t>0;t--)
- delay(1);
- }
-
-
- //*************藍B跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(0);
- send_dat(0);
- send_dat(255);
- }
- reset();
- for(t=RGB_speed;t>0;t--)
- delay(1);
- }
-
- //*************白RGB跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(120);
- send_dat(120);
- send_dat(120);
- }
- reset();
- for(t=RGB_speed;t>0;t--)
- delay(1);
- }
- //*************黃RG跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(155);
- send_dat(155);
- send_dat(0);
- }
- reset();
- for(t=RGB_speed;t>0;t--)
- delay(1);
- }
- //*************紫RB跑馬燈增加*******************
- for(i=0;i<=RGB_count;i++) {
- for(num=0;num<i;num++) {
- send_dat(0);
- send_dat(155);
- send_dat(155);
- }
- reset();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
|