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