LED閃爍彩虹小夜燈帶呼吸燈 作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對(duì)面交流海量資料庫(kù)查詢 收藏 /*********************************************************************************************函數(shù)名:PWM0占空比設(shè)置函數(shù)調(diào) 用:PWM0_set();參 數(shù):0x00~0xFF(亦可用0~255)返回值:無(wú)結(jié) 果:設(shè)置PWM模式占空比,為0時(shí)全部高電平,為1時(shí)全部低電平備 注:如果需要PWM1的設(shè)置函數(shù),只要把CCAP0L和CCAP0H中的0改為1即可/**********************************************************************************************/void PWM0_set (unsigned char a){CCAP0L= a; //設(shè)置值直接寫(xiě)入CCAP0LCCAP0H= a; //設(shè)置值直接寫(xiě)入CCAP0H}/**********************************************************************************************//*********************************************************************************************函數(shù)名:主函數(shù)調(diào) 用:無(wú)參 數(shù):無(wú)返回值:無(wú)結(jié) 果:程序開(kāi)始處,無(wú)限循環(huán)備 注:/**********************************************************************************************/void main (void){unsigned char g;PWM_init(); //PWM初始化KEY1 = 1;while(1){if(STATUS){ unsigned int i;unsigned int temp;while(1){temp=0x01;for(i=0;i<8;i++){ //8個(gè)流水燈逐個(gè)閃動(dòng)DY_PORT=~temp;delay(DY_SPEED); //調(diào)用延時(shí)函數(shù)temp<<=1;}temp=0x80;for(i=0;i<8;i++){ //8個(gè)流水燈反向逐個(gè)閃動(dòng)DY_PORT=~temp;delay(DY_SPEED); //調(diào)用延時(shí)函數(shù)temp>>=1;}temp=0xFE;for(i=0;i<8;i++){ //8個(gè)流水燈依次全部點(diǎn)亮DY_PORT=temp;delay(DY_SPEED); //調(diào)用延時(shí)函數(shù)temp<<=1;}temp=0x7F;for(i=0;i<8;i++){ //8個(gè)流水燈依次反向全部點(diǎn)亮DY_PORT=temp;delay(DY_SPEED); //調(diào)用延時(shí)函數(shù)temp>>=1;}}}for(g=0x00;g<0xff;g++){PWM0_set(g); //設(shè)置PWM占空比delay(6);}for(g=0xff;g>0x00;g--){PWM0_set(g); //設(shè)置PWM占空比delay(6);}if(!KEY1 && !exted){exted=0;STATUS=!STATUS;exted=1;}else if(KEY1){exted=0;} }}/**********************************************************************************************/ 上一頁(yè) 1 2 下一頁(yè)
評(píng)論