標(biāo)題:
WS2811燈光單片機(jī)程序 實(shí)現(xiàn)2片TM1812幻彩變化 修改變量IC可修改TM1812數(shù)量
[打印本頁(yè)]
作者:
wanli
時(shí)間:
2017-3-14 10:38
標(biāo)題:
WS2811燈光單片機(jī)程序 實(shí)現(xiàn)2片TM1812幻彩變化 修改變量IC可修改TM1812數(shù)量
WS2811芯片燈光控制程序分享給大家
源程序:
/******************************************************************************
//*版權(quán)信息:深圳市天微電子
//*文 件 名:TM1812-V1.0
//*當(dāng)前版本:V1.0
//*MCU 型號(hào):STC15W104
//*開(kāi)發(fā)環(huán)境:Keil uVision4
//*晶震頻率:33MHZ(內(nèi)部時(shí)鐘)
//*完成日期:2015-07-10
//*程序功能:1.該程序可實(shí)現(xiàn)2片TM1812幻彩變化。
// 2.修改變量IC可修改TM1812數(shù)量。
//*免責(zé)聲明:1.此程序?yàn)門(mén)M1812驅(qū)動(dòng)LED點(diǎn)亮演示程序,僅作參考之用。
// 2.如有直接使用本例程程序造成經(jīng)濟(jì)損失的,本公司不承擔(dān)任何責(zé)任。
/*******************************************************************************/
#include <reg52.h> //MCU頭文件
#include "intrins.h" //包含nop指令頭文件
#define nop _nop_();
//宏定義
/********************************定義控制端口***********************************/
sbit DO=P3^3; //定義信號(hào)輸出DO
/**********************************定義變量*************************************/
unsigned int IC=2; //控制TM1812個(gè)數(shù)
unsigned int LED_PX; //像素點(diǎn)數(shù)
unsigned char PWM=255; //TM1812灰度數(shù)據(jù)
unsigned char Rda,Gda,Bda; //R、G、B灰度數(shù)據(jù)
unsigned char bdata LED_data; //可位操作的數(shù)據(jù)發(fā)送暫存變量聲明
sbit bit0=LED_data^0; //被發(fā)送的數(shù)據(jù)各位定義
sbit bit1=LED_data^1;
sbit bit2=LED_data^2;
sbit bit3=LED_data^3;
sbit bit4=LED_data^4;
sbit bit5=LED_data^5;
sbit bit6=LED_data^6;
sbit bit7=LED_data^7;
bit flag=0; //定義一個(gè)標(biāo)志位
/**********************************延時(shí)函數(shù)*************************************/
void delay(unsigned int n) //n=1,延時(shí)500us
{
unsigned int i;
while(n--)
for(i=0;i<860;i++);
}
/********************發(fā)送0碼函數(shù),高電平400ns,周期1.25us************************/
void send_data_0()
{
DO=1;
nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;
DO=0;
nop;nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;nop;nop;
}
/*******************發(fā)送1碼函數(shù),高電平800ns,周期1.25us*************************/
void send_data_1()
{
DO=1;
nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;nop;
nop;nop;nop;nop;nop;
DO=0;
}
/***********************發(fā)送1個(gè)字節(jié)數(shù)據(jù),高位先發(fā)*******************************/
void send_data(unsigned char DATA)
{
LED_data=DATA;
if(bit7) send_data_1(); else send_data_0();
if(bit6) send_data_1(); else send_data_0();
if(bit5) send_data_1(); else send_data_0();
if(bit4) send_data_1(); else send_data_0();
if(bit3) send_data_1(); else send_data_0();
if(bit2) send_data_1(); else send_data_0();
if(bit1) send_data_1(); else send_data_0();
if(bit0) send_data_1(); else send_data_0();
}
/******************************發(fā)送1幀數(shù)據(jù)*************************************/
void send_px()
{
unsigned int i;
for(i=0;i<LED_PX;i++)
{
send_data(Rda); //發(fā)送R灰度數(shù)據(jù)
send_data(Gda); //發(fā)送G灰度數(shù)據(jù)
send_data(Bda); //發(fā)送B灰度數(shù)據(jù)
}
}
/*===============================主函數(shù)=======================================*/
void main()
{
unsigned char i;
LED_PX=3*IC; //1個(gè)TM1812等于4個(gè)像素
Rda=Gda=Bda=0; //R、G、B灰度數(shù)據(jù)復(fù)位清零
while(1)
{
for(i=0;i<PWM;i++) //紅色漸亮
{
Rda=i; //灰度計(jì)算
send_px(); //發(fā)送灰度數(shù)據(jù)
delay(50); //復(fù)位延時(shí)
}
flag=1; //標(biāo)志位置位
while(flag) //標(biāo)志位置位后循環(huán)函數(shù)
{
for(i=0;i<PWM;i++) //紅色漸滅,綠色漸亮
{
Gda=i;
Rda=PWM-i; //灰度計(jì)算
send_px(); //發(fā)送灰度數(shù)據(jù)
delay(50); //復(fù)位延時(shí)
}
for(i=0;i<PWM;i++) //綠色漸滅,藍(lán)色漸亮
{
Bda=i;
Gda=PWM-i; //灰度計(jì)算
send_px(); //發(fā)送灰度數(shù)據(jù)
delay(50); //復(fù)位延時(shí)
}
for(i=0;i<PWM;i++) //藍(lán)色漸滅,紅色漸亮
{
Rda=i;
Bda=PWM-i; //灰度計(jì)算
send_px(); //發(fā)送灰度數(shù)據(jù)
delay(50); //復(fù)位延時(shí)
}
}
}
}
/*================================結(jié)束==========================================*/
復(fù)制代碼
51單片機(jī)22路全彩控制器:
http://www.torrancerestoration.com/bbs/dpj-53297-1.html
作者:
流浪乞丐
時(shí)間:
2017-10-15 02:45
謝謝樓主,下載來(lái)參考下。
作者:
ivanwm
時(shí)間:
2017-10-26 16:06
好經(jīng)典的程序
作者:
veryhoo123
時(shí)間:
2017-11-13 19:42
這個(gè)非常給力,代碼寫(xiě)得很清晰
作者:
veryhoo123
時(shí)間:
2017-11-13 19:44
對(duì)于做燈的人來(lái)說(shuō),這個(gè)東西真的很有幫助,感謝分享
作者:
289466080
時(shí)間:
2018-2-6 14:43
我以為有22種狀態(tài),把剩下的發(fā)給大家參考
Rda=i;
Bda=PWM-i; //灰度計(jì)算
send_px(); //發(fā)送灰度數(shù)據(jù)
delay(50); //復(fù)位延時(shí)
}
}
}
}
作者:
xiaosong0080
時(shí)間:
2018-4-25 22:38
要用什么軟件打開(kāi),keil 打不開(kāi)的
作者:
cobon
時(shí)間:
2018-11-23 22:39
謝謝樓主,下載來(lái)參考下。
作者:
xiexugang
時(shí)間:
2019-4-7 03:14
51單片機(jī)能驅(qū)動(dòng)WS2811,很好很實(shí)用.
作者:
JOJO177
時(shí)間:
2019-6-28 02:09
很好,很有幫助
作者:
xiexugang
時(shí)間:
2019-11-11 11:00
這個(gè)程序不錯(cuò),好玩
作者:
雪玉寐影
時(shí)間:
2022-1-7 15:27
這個(gè)不錯(cuò),直接驅(qū)動(dòng)就行了!
作者:
正在緩沖
時(shí)間:
2022-3-10 09:22
唉,編程考運(yùn)氣的我只能東抄抄西改改
作者:
auxccc
時(shí)間:
2022-3-10 09:57
什么說(shuō)明也沒(méi)有,我們能明白什么呢?,22路是指什么?.WS2811芯片是個(gè)什么芯片?
作者:
liu2454004961
時(shí)間:
2022-4-7 15:46
這是TM1812芯片,WS2811的時(shí)序不同
作者:
川蜀浪子
時(shí)間:
2022-4-23 11:06
大神怎么只是發(fā)個(gè)原廠的樣品程序呀,22種狀態(tài)呢,怎么沒(méi)有,讓我又減了5黑幣,本來(lái)就不多。可以發(fā)一下那22種狀態(tài)的嗎?想要流水效果的,從左向右、從右向左、中間向兩邊的。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1