——來自迪文開發(fā)者論壇
本期為大家推送迪文開發(fā)者論壇獲獎開源案例——迪文屏控制WS2812氛圍燈,工程師通過COF的OS核精準(zhǔn)控制WS2812幻彩燈帶每一顆燈珠顏色,實(shí)現(xiàn)炫酷的燈帶顏色切換的動態(tài)效果。
【演示視頻】
完整開發(fā)資料含迪文屏DGUS工程資料與C51代碼,獲取方式:
1. 前往迪文開發(fā)者論壇獲?。?span style="font-family: 微軟雅黑, "Microsoft YaHei"; text-decoration: underline; line-height: 150%; color: rgb(51, 102, 153); background: rgb(255, 255, 255);">http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=9445&extra=page%3D1
2. 微信公眾號中回復(fù)“?氛圍燈?”獲取。
【UI素材展示】
【UI開發(fā)示例】
【C51工程設(shè)計(jì)】
通過IO口控制燈的顏色驅(qū)動代碼如下:
void WS2812_Write_RGB()
{
u8 i,j,a;
EA=0;
for(j=0;j<3;j++)//每個燈需要傳輸次數(shù)
{
a=RGB_One[j];
for(i=0;i<8;i++)
{
WS2812_DI=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
WS2812_DI=(a&0x80);
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
a<<=1;
WS2812_DI=0;
}
WS2812_DI=0;
}
EA=1;
}
void WS2812_RST()
{
WS2812_DI=0;
sys_delay_ms(1);
}
void WS2812_DIS_1()//效果1,顏色切換,所有LED顏色一樣,共7種基本色
{
static u8 j=1;
u16 i=0;
if(j&0X01) RGB_One[1]=10;else RGB_One[1]=0;
if(j&0X02) RGB_One[0]=10;else RGB_One[0]=0;
if(j&0X04) RGB_One[2]=10;else RGB_One[2]=0;
j%=7;
j++;
for(i=0;i<num_val;i++)
WS2812_Write_RGB();
WS2812_RST();
sys_delay_ms(1000);
}