MCU:STC12C56 晶振:12MHZ *************************************/ #include#include #define uchar unsigned char #define uint unsigned int #define RGB_count 20 #define RGB_speed 30 sbit DIN=P1^2; /*************0码*******************/ void DIN_bit_0() { uchar i; DIN=1; for(i=1;i>0;i--); //低速模式 1+3+4*3+1 _nop_(); DIN=0; //1+3+4*7 for(i=3;i>0;i--); } /*************1码*******************/ void DIN_bit_1() { uchar i; DIN=1; //1+3+4*7+1 for(i=3;i>0;i--); _nop_(); DIN=0; for(i=1;i>0;i--); //1+3+4*3 } /*************reset码*******************/ void reset() { uint i; DIN=0; for(i=250;i>0;i--); } /*************数据传输******************/ 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 delay(uchar t) { unsigned long j; while(t--) for(j=0;j<1000;j++); } /*************主程序******************/ void main() { uchar i,n,num,t; while(1) { /*************R渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(0); send_dat(0); } reset(); delay(1); } /*************R渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(0); send_dat(0); } reset(); delay(1); } /*************G渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(i); send_dat(0); } reset(); delay(1); } /*************G渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(i); send_dat(0); } reset(); delay(1); } /*************B渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(0); send_dat(i); } reset(); delay(1); } /*************B渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(0); send_dat(i); } reset(); delay(1); } /*************RG渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(i); send_dat(0); } reset(); delay(1); } /*************RG渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(i); send_dat(0); } reset(); delay(1); } /*************GB渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(i); send_dat(i); } reset(); delay(1); } /*************GB渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(0); send_dat(i); send_dat(i); } reset(); delay(1); } /*************RB渐亮*******************/ for(i=0;i<255;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(0); send_dat(i); } reset(); delay(1); } /*************RB渐灭*******************/ for(i=255;i>0;i++) { for(n=RGB_count;n>0;n--) { send_dat(i); send_dat(0); send_dat(i); } reset(); delay(1); } /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); /*************B跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************B跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************G跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************G跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************R跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************R跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************RG跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************RG跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************GB跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************GB跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************RB跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************RB跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } /*************RGB跑马灯增加*******************/ for(i=0;i 0;t--) delay(1); } /*************RGB跑马灯减少*******************/ for(i=RGB_count;i>0;i--) { for(num=0;num0;t--) delay(1); /*************RGB全灭*******************/ for(num=RGB_count;num>0;num--) { send_dat(0); send_dat(0); send_dat(0); } reset(); } } }
上一篇:最牛的LED遥控控制器---调整无闪烁
下一篇:写给要接触单片机和刚接触单片机的人
推荐阅读最新更新时间:2024-03-16 14:25