|
最近在研究單片機(jī)控制ws2812b燈帶 我用的是1T的單片機(jī)STC12c2052AD 晶振11.0592M
但是控制有問題 我想亮10個燈 但是只亮一個 顏色還不對 有了解的大神嗎 指導(dǎo)一下 感激之至
資料如下
0.png (125.01 KB, 下載次數(shù): 150)
下載附件
2017-3-26 15:32 上傳
1.png (72.86 KB, 下載次數(shù): 83)
下載附件
2017-3-26 15:32 上傳
2.png (67.32 KB, 下載次數(shù): 91)
下載附件
2017-3-26 15:32 上傳
|
- #include "STC12C2052AD.H"
- #include <intrins.h>
- #define uchar unsigned char
- sbit Din=P3^5; //數(shù)據(jù)端口
- uchar bdata LED_DAT;
- sbit bit0 = LED_DAT^0;
- sbit bit1 = LED_DAT^1;
- sbit bit2 = LED_DAT^2;
- sbit bit3 = LED_DAT^3;
- sbit bit4 = LED_DAT^4;
- sbit bit5 = LED_DAT^5;
- sbit bit6 = LED_DAT^6;
- sbit bit7 = LED_DAT^7;
- uchar RR,GG,BB;
- void delayus(uchar z)
- {
- uchar i;
- for (i=0;i<z;i++)
- {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
- }
- void CODE1()
- {
- Din= 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- Din= 0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- }
- void CODE0()
- {
- Din= 1;_nop_();_nop_();_nop_();_nop_();
- Din= 0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- }
- void Reset()
- {
- Din = 0;
- delayus(60);
- }
- void SendData()
- {
- LED_DAT = GG;
- if(bit7==1) {CODE1();} else {CODE0();}
- if(bit6==1) {CODE1();} else {CODE0();}
- if(bit5==1) {CODE1();} else {CODE0();}
- if(bit4==1) {CODE1();} else {CODE0();}
- if(bit3==1) {CODE1();} else {CODE0();}
- if(bit2==1) {CODE1();} else {CODE0();}
- if(bit1==1) {CODE1();} else {CODE0();}
- if(bit0==1) {CODE1();} else {CODE0();}
- LED_DAT = RR;
- if(bit7==1) {CODE1();} else {CODE0();}
- if(bit6==1) {CODE1();} else {CODE0();}
- if(bit5==1) {CODE1();} else {CODE0();}
- if(bit4==1) {CODE1();} else {CODE0();}
- if(bit3==1) {CODE1();} else {CODE0();}
- if(bit2==1) {CODE1();} else {CODE0();}
- if(bit1==1) {CODE1();} else {CODE0();}
- if(bit0==1) {CODE1();} else {CODE0();}
- LED_DAT = BB;
- if(bit7==1) {CODE1();} else {CODE0();}
- if(bit6==1) {CODE1();} else {CODE0();}
- if(bit5==1) {CODE1();} else {CODE0();}
- if(bit4==1) {CODE1();} else {CODE0();}
- if(bit3==1) {CODE1();} else {CODE0();}
- if(bit2==1) {CODE1();} else {CODE0();}
- if(bit1==1) {CODE1();} else {CODE0();}
- if(bit0==1) {CODE1();} else {CODE0();}
- }
- void send_string_data(uchar num)
- {
- uchar i;
- for (i=0;i<num;i++)
- {
- SendData();
- Reset() ;
- }
- }
- void main()
- {
- // P3M0=0x00; //強(qiáng)推挽輸出 可達(dá)20mA 配置P3^5口
- // P3M1=0x20; //強(qiáng)推挽輸出 可達(dá)20mA 配置P3^5口
復(fù)制代碼 看看什么地方出錯了 謝謝大家
|
|