led control for rgb use stc12c56
新型L ED 彩燈分為2 部分, 即彩燈控制器(主控模塊) 和管內(nèi)L ED 板模塊(受控模塊)。彩燈控制器可直接與220 V 交流市電相連接, 經(jīng)過開關(guān)電源變換, 輸出直流工作電壓, 一方面為管內(nèi)L ED 模塊提供12 V 工作電源,另一方面為主控模塊單片機(jī)系統(tǒng)(彩燈控制器) 提供5 V工作電源。整個系統(tǒng)工作由軟件程序控制運(yùn)行, 根據(jù)需要, 用戶可以在L ED 彩燈工作通過主控模塊上的按鍵來設(shè)定亮燈時間和燈光閃動頻率。 上電后系統(tǒng)經(jīng)過初始化, 查詢是否有功能切換鍵按下: 有, 則進(jìn)入用戶設(shè)定模式狀態(tài); 無, 則進(jìn)入默認(rèn)缺省工作狀態(tài)。在用戶設(shè)定模式狀態(tài)下, 用戶可以根據(jù)個人愛好及不同場合的需要來指定調(diào)用哪些模式, 并且可以改變每種模式的時間T i、頻率F i 參數(shù), 如果用戶想進(jìn)入缺省狀態(tài)模式, 只需按一下功能切換鍵即可跳入缺省模式,程序會自動順序調(diào)用亮燈模式;在缺省工作狀態(tài)下, L ED彩燈控制器按照程序設(shè)定好的若干亮燈花樣模式程序Model_ i 順序調(diào)用往下走, 從第Model_ 1 模式開始工作,自Model_ 1 到Model_ 2⋯⋯到Model_ n 為一個亮燈周期, 然后再回到Model_ 1 循環(huán)繼續(xù)工作, 同樣如果想進(jìn)入用戶設(shè)定模式狀態(tài), 只需按下功能切換鍵即可。整個n 種亮燈模式時間可以看作一個大周期T , 其中的每一種花樣工作模式Model_ i ( i=1, 2, ⋯, n) 時間為小周期T i, 對于每一個模式編寫一個獨(dú)立工作子程序Model_ i, 其中設(shè)定了L ED 三色燈(紅、綠、藍(lán)) 的點(diǎn)亮?xí)r刻(RED_ on,GREEN _ on, BLU E_ on) 和熄滅時刻(RED_ off, GREEN _ off, BLU E_ off) , 以及模式工作時間T i 和該模式L ED 閃爍頻率F i。 5 位七段碼顯示器的前2 位(L 1, L 2) 顯示當(dāng)前工作模式的序號Model_ i; 后3 位(L 3, L 4, L 5) 七段碼顯示三色L ED 的工作狀態(tài), 若該顏色燈點(diǎn)亮則對應(yīng)七段碼顯示位為“1”, 反之熄滅時則顯示位為“滅”即不顯示, 對系統(tǒng)工作狀態(tài)起到了很好的實(shí)時監(jiān)控作用。 下面是rgb彩燈的電路圖:
0.png (86.55 KB, 下載次數(shù): 131)
下載附件
2016-5-15 19:33 上傳
0.png (150.93 KB, 下載次數(shù): 113)
下載附件
2016-5-15 19:34 上傳
0.png (76.23 KB, 下載次數(shù): 194)
下載附件
2016-5-15 19:35 上傳
全部資料下載:
RGB-CONTROL.zip
(130.04 KB, 下載次數(shù): 80)
2016-5-14 10:05 上傳
點(diǎn)擊文件名下載附件
stc12c56 下載積分: 黑幣 -5
單片機(jī)程序如下:
- //STC 12C5608 DIP28*mcu//
- //DESIGN:scybytf@163.com//
- #include<REG52.H>
- #include<INTRINS.H>
- #define uchar unsigned char
- //ISP/AP EEPROM FUNCTION //
- sfr isp_data =0xe2;
- sfr isp_addh =0xe3;
- sfr isp_addl =0xe4;
- sfr isp_cmd =0xe5;
- sfr isp_trig =0xe6;
- sfr isp_contr=0xe7;
- sfr wdt_contr=0xe1;
- sfr cmod= 0xd9;
- sfr ccon= 0xd8;
- sfr ccapm0= 0xda;
- sfr ccapm1= 0xdb;
- sfr ccapm2= 0xdc;
- sfr ccapm3= 0xdd;
- sbit ccon_cr= 0xd8^6; // PCA計(jì)數(shù)器陣列運(yùn)行控制位
- sfr ccap0h= 0xfa;
- sfr ccap1h= 0xfb;
- sfr ccap2h= 0xfc;
- sfr ccap3h= 0xfd;
- #define isp_iap_byte_read 1
- #define isp_iap_byte_program 2
- #define isp_iap_sector_erase 3
- #define wait_time 4
- //*****infrared data*****/
- sbit dec_key=P3^0;
- sbit add_key=P3^1;
- sbit re_flag=P3^2;
- sbit keypressed=P3^3;
- sbit flag_b=P3^4; //指示燈
- sbit flag_g=P2^4; //
- sbit flag_r=P2^5; //
- sbit IE_EX0=IE^0;
- sbit IE_EX1=IE^2;
- sbit IP_PX0=IP^0;
- sbit IE_EA=IE^7;
- uchar keychang;
- uchar onoff=1,re_on=0;
- uchar set_1,set_0,key,key1=0,key2=0,je=0,ke=0;
- uchar new_key=0xff;
- uchar count1,count2;
- uchar DE;
- uchar key_model=2,key_model_temp=2,white_turn=0;//
- uchar pwm_w=0x70,pwm_r=0x70,pwm_g=0x70,pwm_b=0x70;
- uchar i_data;
- uchar i_addh,i_addl;
- void delay(uchar i);
- void pwm_white_add(void);
- void pwm_white_dec(void);
- void pwm_red(void);
- void pwm_green(void);
- void pwm_blue(void);
- void delay2(uchar i);
- //read&write&erase eeprom//////
- void read_eeprom(void)
- {
- isp_addh=i_addh;
- isp_addl=i_addl;
- isp_contr=wait_time;
- isp_contr|=0x80;
- isp_cmd=isp_iap_byte_read;
- isp_trig=0x46;
- isp_trig=0xb9;
- _nop_();
- i_data=isp_data;
- /////////////
- isp_contr=0x00;
- isp_cmd=0x00;
- isp_trig=0x00;
- isp_addh=0xff;
- isp_addl=0xff;
- }
- void write_eeprom(void)
- {
- isp_data=i_data;
- isp_addh=i_addh;
- isp_addl=i_addl;
- isp_contr=wait_time;
- isp_contr|=0x80;
- isp_cmd=isp_iap_byte_program;
- isp_trig=0x46;
- isp_trig=0xb9;
- _nop_();
- /////////////////
- isp_contr=0x00;
- isp_cmd=0x00;
- isp_trig=0x00;
- isp_addh=0xff;
- isp_addl=0x00;
- }
- void erase_eeprom(void)
- {
- isp_addh=i_addh;
- isp_addl=i_addl;
- isp_contr=wait_time;
- isp_contr|=0x80;
- isp_cmd=isp_iap_sector_erase;
- isp_trig=0x46;
- isp_trig=0xb9;
- _nop_();
- ////////////////
- isp_contr=0x00;
- isp_cmd=0x00;
- isp_trig=0x00;
- isp_addh=0xff;
- isp_addl=0xff;
- }
- //******************************************//
- //*******,infrared delay******//
- void delay1(uchar DELAY)
- { uchar delay,i;
- for(delay=0;delay<DELAY;delay++)
- {for(i=0;i<5;i++) // 4MHZ I=5;
- _nop_();}
- }
- /******int0 interrput*****/
- void EXINT0(void) interrupt 0 //中斷處理程序0
- {
- IE_EA=0; //關(guān)閉中斷
- IE_EX0=0; //允許外部中斷0
- IE_EX1=0;
- re_flag=1;
- count1=0;
- count2=0;
-
- for(je=0;re_flag==0;je++)
- { delay1(5);count1++;} //用于delay 9m,判斷接收開始(9M的低電平)
- if(count1>=100&&count1<=175) //150-175
- {
- for(je=0;re_flag==1;je++)
- {delay1(5);count2++;}
- if(count2>=35&&count2<=100) //75-100
- {
- for(je=0;je<4;je++) //共包括四個數(shù)據(jù),只取后兩個數(shù)據(jù)
- {set_1=0x01;
- set_0=0xfe;
- ke=0;
- do
- {while(re_flag==0)
- {_nop_();}
- delay1(60);//100//delay(6~11)ok晶振=4MHZ//準(zhǔn)確要求delay1.2ms(長1.2+)/2ms
- if(re_flag==1)
- {key|=set_1;} //判斷該位為"1"
- else
- {key&=set_0;} //判斷該位為"0"
- set_1<<=1; //接收控制標(biāo)志"1"左移
- set_0=~set_1; //接收控制標(biāo)志"0"左移?
- while(re_flag==1) //等待1位數(shù)據(jù)之結(jié)束
- {_nop_();}
- }
- while(++ke<8); //接收0~7共8個BIT的數(shù)據(jù)
- if(je==2) //取出第3個數(shù)據(jù)
- key1=key;
- if(je==3)
- key2=key; //取出第4個數(shù)據(jù)
- }
- if(key1==~key2) //if error do nothing then return
- {
- keychang=1;
- new_key=key2;
- //P1=new_key;
- if(new_key==0xf9)onoff=0;
- if(new_key==0xf8){onoff=1;keychang=0;}
- if((new_key==0xfa)&&(key_model!=0))keychang=0;
- if((new_key==0xfb)&&(key_model!=0))keychang=0;
- if((new_key==0xf6)&&(key_model!=0))keychang=0;
- if((new_key==0xf7)&&(key_model!=0))keychang=0;
- if((new_key==0xf5)&&(key_model!=0))keychang=0;
- if((new_key==0xf2)&&(key_model!=0))keychang=0;
- if((new_key==0xf3)&&(key_model!=0))keychang=0;
- if((new_key==0xf1)&&(key_model!=0))keychang=0;
- if((new_key==0xea)&&(key_model!=0))keychang=0;
- if((new_key==0xeb)&&(key_model!=0))keychang=0;
- if((new_key==0xe9)&&(key_model!=0))keychang=0;
- if((new_key==0xe5)&&(key_model!=0))keychang=0;
- if((new_key==0xe6)&&(key_model!=0))keychang=0;
- if((new_key==0xe7)&&(key_model!=0))keychang=0;
- if((new_key==0xee)&&(key_model!=0))keychang=0;
- if((new_key==0xef)&&(key_model!=0))keychang=0;
- if((new_key==0xed)&&(key_model!=0))keychang=0;
- if((new_key==0xf0)&&(key_model==1))keychang=0;
- if((new_key==0xe8)&&(key_model==2))keychang=0;
- if((new_key==0xe4)&&(key_model==3))keychang=0;
- if((new_key==0xec)&&(key_model==4))keychang=0;
- }
- }
- }
- IE_EX0=1; //允許外部中斷0
- IE_EX1=1;
- IE_EA=1;
- }
- /******int0 interrput*****/
- void EXINT1(void) interrupt 2 //中斷處理程序1
- {
- IE_EA=0;
- IE_EX0=0; //允許外部中斷0
- IE_EX1=0;
- if(key_model>4)key_model=0;
- keypressed=1;
- delay2(10);
- if(keypressed==0)
- {delay2(10);
- if(keypressed==0)
- {while(keypressed==0)wdt_contr=0x37;
- if((key_model==0)&&(white_turn<3))
- white_turn++;
- else
- {
- keychang=1;
- white_turn=0;
- key_model++;
- if(key_model==5)key_model=0;
- }
- }
- }
- IE_EX0=1; //允許外部中斷0
- IE_EX1=1;
- IE_EA=1;
- }
- void delay2(uchar dex)
- {
- uchar de1,de2,de4;
- wdt_contr=0x37;
- for(de1=0;de1<dex;de1++)
- {
- for(de2=0;de2<100;de2++)
- { for(de4=0;de4<10;de4++);}
- }
- }
- void delay(uchar dex)
- {
- uchar dee1,dee2,dee4;
- if(keychang==0) /////////////////////////////////////
- {wdt_contr=0x37;
- for(dee1=0;dee1<dex;dee1++)
- {
- for(dee2=0;dee2<100;dee2++)
- { for(dee4=0;dee4<10;dee4++); }
- }
- }
- }
- void write_data(uchar DA,uchar AD)
- {
- IE_EA=0;
- i_addh=AD;
- i_addl=0x00;
- erase_eeprom();
- i_data=DA;
- write_eeprom();
- IE_EA=1;
- }
- uchar min(void)
- {
- uchar temp;
- if(ccap0h<ccap1h)
- temp=ccap0h;
- else
- temp=ccap1h;
- if(temp<ccap2h)
- return(temp);
- else
- return(ccap2h);
- }
- uchar max(void)
- {
- uchar temp;
- if(ccap0h>ccap1h)
- temp=ccap0h;
- else
- temp=ccap1h;
- if(temp>ccap2h)
- return(temp);
- else
- return(ccap2h);
- }
- void pwm_white(void)
- {
- if(white_turn==0)
- {flag_r=flag_g=flag_b=1;}
- add_key=1;dec_key=1;//input
- if(add_key==0) //add key
- {
- delay2(10);
- if(add_key==0)
- {
- delay2(10);
- if(add_key==0)
- {while(add_key==0)wdt_contr=0x37;
- if(white_turn==0)
- pwm_white_add();
- if(white_turn==1) //r
- {
- if(pwm_r>=0x10)
- {
- pwm_r-=0x0f;
- ccap1h=pwm_r;
- //do
- // {
- // ccap1h--;
- // delay(10);
- // }
- //while(pwm_r<ccap1h);
- }
- }
- if(white_turn==2)//g
- {
- if(pwm_g>=0x10)
- {
- pwm_g-=0x0f;
- ccap0h=pwm_g;
- //do
- // {
- // ccap0h--;
- // delay(10);
- // }
- //while(pwm_g<ccap0h);
- }
- }
- if(white_turn==3)//b
- {
- if(pwm_b>=0x10)
- {
- pwm_b-=0x0f;
- ccap2h=pwm_b;
- //do
- // {
- // ccap2h--;
- // delay(10);
- // }
- //while(pwm_b<ccap2h);
- }
- }
- }
- }
- }
- add_key=1;dec_key=1;//input
- if(dec_key==0)//dec key
- {
- delay2(10);
- if(dec_key==0)
- {
- delay2(10);
- if(dec_key==0)
- {while(dec_key==0)wdt_contr=0x37;
- if(white_turn==0)
- pwm_white_dec();
- if(white_turn==1) //r
- {
- if(pwm_r<=0xf0)
- {
- pwm_r+=0x0f;
- ccap1h=pwm_r;
- //do
- // {
- // ccap1h++;
- // delay(10);
- // }
- //while(pwm_r<ccap1h);
- }
- }
- if(white_turn==2)//g
- {
- if(pwm_g<=0xf0)
- {
- pwm_g+=0x0f;
- ccap0h=pwm_g;
- //do
- // {
- // ccap0h++;
- // delay(10);
- // }
- //while(pwm_g<ccap0h);
- }
- }
- if(white_turn==3)//b
- {
- if(pwm_b<=0xf0)
- {
- pwm_b+=0x0f;
- ccap2h=pwm_b;
- //do
- // {
- // ccap2h++;
- //delay(10);
- // }
- // while(pwm_b<ccap2h);
- }
- }
- }
- }
- }
- ccap1h=pwm_r;
- ccap0h=pwm_g;
- ccap2h=pwm_b;
- //flag_r,flag_g,flag_b flash//
- if(white_turn==0)
- {flag_r=flag_g=flag_b=0;}
- if(white_turn==1)
- {flag_r=0;flag_g=flag_b=1;}
- if(white_turn==2)
- {flag_r=1;flag_g=0;flag_b=1;}
- if(white_turn==3)
- {flag_r=flag_g=1;flag_b=0;}
-
- //////////////////////////////
- }
- void pwm_white_dec(void)
- {
- pwm_w=min();
- ccap0h=ccap1h=ccap2h=pwm_w;
- if(pwm_w<=0xf0)
- {
- pwm_w+=0x0f;
- do
- {
- ccap0h++;ccap1h++;ccap2h++;
- delay(5);
- }
- while(ccap0h<pwm_w);
- pwm_r=pwm_g=pwm_b=pwm_w;
- write_data(pwm_w,0x02);
- write_data(pwm_w,0x04);
- write_data(pwm_w,0x06);
- }
- }
- void pwm_white_add(void)
- {
- pwm_w=max();
- ccap0h=ccap1h=ccap2h=pwm_w;
- if(pwm_w>=0x10)
- {
- pwm_w-=0x0f;
- do
- {
- ccap0h--;ccap1h--;ccap2h--;
- delay(5);
- }
- while(pwm_w<ccap0h);
- pwm_r=pwm_g=pwm_b=pwm_w;
- write_data(pwm_w,0x02);
- write_data(pwm_w,0x04);
- write_data(pwm_w,0x06);
- }
- }
- //turn_red//
- void pwm_red(void)
- {
-
- if(pwm_r<ccap1h)
- {
- do
- {
- ccap1h--;
- delay(2);
- }
- while(pwm_r<ccap1h);
- }
- else
- if(pwm_r>ccap1h)
- {
- do
- {
- ccap1h++;
- delay(2);
- }
- while(pwm_r>ccap1h);
- }
- write_data(pwm_r,0x02);
- }
- //turn_green///
- void pwm_green(void)
- {
-
- if(pwm_g<ccap0h)
- {
- do
- {
- ccap0h--;
- delay(2);
- }
- while(pwm_g<ccap0h);
- }
- else
- if(pwm_g>ccap0h)
- {
- do
- {
- ccap0h++;
- delay(2);
- }
- while(pwm_g>ccap0h);
- }
- write_data(pwm_g,0x04);
- }
- //turn_blue//
- void pwm_blue(void)
- {
-
- if(pwm_b<ccap2h)
- {
- do
- {
- ccap2h--;
- delay(2);
- }
- while(pwm_b<ccap2h);
- }
- else
- if(pwm_b>ccap2h)
- {
- do
- {
- ccap2h++;
- delay(2);
- }
- while(pwm_b>ccap2h);
- }
- write_data(pwm_b,0x06);
- }
- void flash(void)
- {
- uchar temp;
- for(temp=0;temp<3;temp++)
- {
- if(keychang==0)
- {
- ccap1h=0x00;ccap0h=ccap2h=0xff;
- flag_r=0;flag_g=1;flag_b=1;
- delay(200);
- ccap1h=0xff;
- flag_r=1;
- delay(100);
- ccap0h=0x00;ccap1h=ccap2h=0xff;
- flag_r=1;flag_g=0;flag_b=1;
- delay(200);
- flag_g=1;
- ccap0h=0xff;
- delay(100);
- ccap2h=0x00;ccap1h=ccap0h=0xff;
- flag_r=1;flag_g=1;flag_b=0;
- delay(200);
- ccap2h=0xff;
- flag_b=1;
- delay(100);
- }
- }
- for(temp=0;temp<3;temp++)
- {
- if(keychang==0)
- {
- ccap1h=0x00;ccap0h=ccap2h=0xff;
- flag_r=0;flag_g=1;flag_b=1;
- delay(200);
- ccap1h=0xff;
- flag_r=1;
- delay(100);
- ccap2h=0x00;ccap1h=ccap0h=0xff;
- flag_r=1;flag_g=1;flag_b=0;
- delay(200);
- ccap2h=0xff;
- flag_b=1;
- delay(100);
- ccap0h=0x00;ccap1h=ccap2h=0xff;
- flag_r=1;flag_g=0;flag_b=1;
- delay(200);
- ccap0h=0xff;
- flag_g=1;
- delay(100);
- }
- }
- }
- void strobe(void)
- {
- uchar temp;
- if(keychang==0)
- {flag_r=1;flag_g=1;flag_b=1;
- ccap1h=ccap0h=ccap2h=0xff;
- for(temp=0;temp<5;temp++)
- {flag_r=0;
- ccap1h=0x00;
- delay(50);
- flag_r=1;
- ccap1h=0xff;
- delay(50);
- }
- }
- if(keychang==0)
- {flag_r=1;flag_g=1;flag_b=1;
- delay(250);
- for(temp=0;temp<5;temp++)
- {flag_g=0;
- ccap0h=0x00;
- delay(50);
- flag_g=1;
- ccap0h=0xff;
- delay(50);
- }
- }
- if(keychang==0)
- {flag_r=1;flag_g=1;flag_b=1;
- delay(250);
- for(temp=0;temp<5;temp++)
- {flag_b=0;
- ccap2h=0x00;
- delay(50);
- flag_b=1;
- ccap2h=0xff;
- delay(50);
- }
- }
- if(keychang==0)
- {flag_r=1;flag_g=1;flag_b=1;
- delay(250);
- for(temp=0;temp<5;temp++)
- {flag_r=0;flag_g=0;flag_b=0;
- ccap0h=ccap1h=ccap2h=0x00;
- delay(50);
- flag_r=1;flag_g=1;flag_b=1;
- ccap0h=ccap1h=ccap2h=0xff;
- delay(50);
- }
- delay(250);
- }
- }
- void fade(void)
- {
- flag_r=1;flag_g=1;flag_b=1;
- if(keychang==0)
- {flag_r=0;flag_g=0;
- ccap1h=0x00;
- ccap0h=ccap2h=0xff;
- do
- {ccap1h++;ccap0h--;delay(100);}
- while(ccap1h<255);
- }
- if(keychang==0)
- {flag_r=1;flag_b=0;
- delay(100);
- do
- {ccap0h++;ccap2h--;delay(100);}
- while(ccap0h<255);
- }
- if(keychang==0)
- {flag_g=1;flag_b=0;flag_r=0;
- delay(100);
- do
- {ccap2h++;ccap1h--;delay(100);}
- while(ccap2h<255);
- delay(100);
- }
- }
- void smooth(void)
- {
- flag_r=1;flag_g=1;flag_b=1;
- if(keychang==0)
- {flag_r=0;flag_g=0;
- ccap1h=0x00;
- ccap0h=ccap2h=0xff;
- do
- {ccap1h++;ccap0h--;delay(5);}
- while(ccap1h<255);
- }
- if(keychang==0)
- {flag_r=1;flag_b=0;
- delay(250);
- delay(250);
- do
- {ccap0h++;ccap2h--;delay(5);}
- while(ccap0h<255);
- }
- if(keychang==0)
- {flag_g=1;flag_b=0;flag_r=0;
- delay(250);
- delay(250);
- do
- {ccap2h++;ccap1h--;delay(5);}
- while(ccap2h<255);
- delay(250);
- delay(250);
- }
- }
- void main()
- {
- IE_EA=0; //關(guān)所有中斷
- IE_EX0=1; //允許外部中斷0
- IE_EX1=1;
- IP_PX0=1; //高優(yōu)先級
- /*pwm data*/
- cmod=0X00;
- ccon=0X00;
- ccapm0=0x42;
- ccapm1=0x42;
- ccapm2=0x42;
- ccon_cr=1;
-
- DE=100;
- wdt_contr=0x37;
- //*****eeprom function*****//
- //0x0000:key_model///////
- //0x0200:pwm_r///////////
- //0x0400:pwm_g///////////
- //0x0600:pwm_b///////////
- i_addh=0x0a;
- i_addl=0x00;
- read_eeprom();
- if(i_data!=0xff)
- {
- key_model=i_data;
- delay(10);
- i_addh=0x02;
- i_addl=0x00;
- read_eeprom();
- pwm_r=i_data;
- i_addh=0x04;
- i_addl=0x00;
- read_eeprom();
- pwm_g=i_data;
- i_addh=0x06;
- i_addl=0x00;
- read_eeprom();
- pwm_b=i_data;
- }
- else
- {
- write_data(key_model,0x0a);
- write_data(pwm_w,0x02);
- write_data(pwm_w,0x04);
- write_data(pwm_w,0x06);
- }
- IE_EA=1;
- while(1)
- {
- if(onoff==1)
- {
- if(re_on==1)
- {ccap1h=pwm_r;ccap0h=pwm_g;ccap2h=pwm_b;re_on=0;}
- if((new_key==0xec)&&(keychang==1)){key_model=4;}//write_data(key_model,0x0a);keychang=0;
- if((new_key==0xe4)&&(keychang==1)){key_model=3;}//write_data(key_model,0x0a);keychang=0;
- if((new_key==0xe8)&&(keychang==1)){key_model=2;}//write_data(key_model,0x0a);keychang=0;
- if((new_key==0xf0)&&(keychang==1)){key_model=1;}//write_data(key_model,0x0a);keychang=0;
- if((new_key==0xf4)&&(keychang==1)){key_model=0;}//write_data(key_model,0x0a);keychang=0;
- if((new_key==0xfa)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_white_add();
- }
- if((new_key==0xfb)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_white_dec();
- }
- if((new_key==0xf6)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_r=0x00;
- pwm_red();
- }
- if((new_key==0xf7)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_g=0x00;
- pwm_green();
- }
- if((new_key==0xf5)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_b=0x00;
- pwm_blue();
- }
- /*************/
- if((new_key==0xf2)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_r=0x3f;
- pwm_red();
- }
- if((new_key==0xf3)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_g=0x3f;
- pwm_green();
- }
- if((new_key==0xf1)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_b=0x3f;
- pwm_blue();
- }
- /**************/
- if((new_key==0xea)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_r=0x6f;
- pwm_red();
- }
- if((new_key==0xeb)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_g=0x6f;
- pwm_green();
- }
- if((new_key==0xe9)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_b=0x6f;
- pwm_blue();
- }
- /***********/
- if((new_key==0xe6)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_r=0x9f;
- pwm_red();
- }
- if((new_key==0xe7)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_g=0x9f;
- pwm_green();
- }
- if((new_key==0xe5)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_b=0x9f;
- pwm_blue();
- }
- /********************/
- if((new_key==0xee)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_r=0xdf;
- pwm_red();
- }
- if((new_key==0xef)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_g=0xdf;
- pwm_green();
- }
- if((new_key==0xed)&&(key_model==0)&&(keychang==1))
- {keychang=0;
- pwm_b=0xdf;
- pwm_blue();
- }
- if(key_model!=key_model_temp){key_model_temp=key_model;write_data(key_model,0x0a);keychang=0;}
- /*************************/
-
- switch(key_model)
- {
- case 0:pwm_white();break;
- case 1:flash();break;
- case 2:strobe();break;
- case 3:fade();break;
- case 4:smooth();break;
- default: key_model_temp=0;break;
- }
- }
- else
- if(re_on==0)
- {
- re_on=1;
- keychang=0;
- flag_r=flag_g=flag_b=1;
- ccap1h=ccap0h=ccap2h=0xff;
- }
- delay(1);
- }
- }
復(fù)制代碼
|