新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > LED彩色护栏管程序---1个IO口搞定!

LED彩色护栏管程序---1个IO口搞定!

作者:时间:2016-11-29来源:网络收藏
/*************************************
MCU:STC12C56      晶振:12MHZ*************************************/#include#include#define uchar unsigned char#define uint  unsigned int#define RGB_count  20#define RGB_speed  30sbit 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*7for(i=3;i>0;i--); }/*************1码*******************/void DIN_bit_1(){uchar i;DIN=1;       //1+3+4*7+1for(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;i0;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;i0;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;i0;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;i0;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;i0;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;i0;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;i0;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彩色护栏管IO

评论


技术专区

关闭