|  
 
 
3个灯在同一时刻有一个灯最亮,有一个灯半亮,有一个灯不亮。现在我有控制一个灯渐亮渐灭的代码,怎么改成控制3个灯的?请老鸟指教一下 void slow() {  LED0=1;  Delay(60000);        //特意加延时,可以看到熄灭的过程  for(PWM1=1;PWM1<CYCLE;PWM1++)  { 
    LED0=0;    //点亮LED       Delay(PWM1);//延时长度,600次循环中从1加至599     LED0=1;        //熄灭LED        Delay(CYCLE-PWM1);//延时长度,600次循环中从599减至1    }        LED0=0;  for(PWM1=CYCLE-1;PWM1>0;PWM1--){ //与逐渐变亮相反的过程 
    LED0=0;     Delay(PWM1);     LED0=1;        Delay(CYCLE-PWM1);          }      } Delay 函数占据了 cpu, 此原理不行,另想别法,比如用 pwm 功能, dac 功能。。。或硬件  
reentrant void slow(uchar cs) {   switch(cs)   {     case 0:LED0=1;break;     case 1:LED1=1;break;     case 2:LED2=1;break;     default:break;    }     Delay(60000); //特意加延时,可以看到熄灭的过程   for(PWM1=1;PWM1<CYCLE;PWM1++)   {     switch(cs)   {     case 0:LED0=0;break;     case 1:LED1=0;break;     case 2:LED2=0;break;     default:break;    }     Delay(PWM1);//延时长度,600次循环中从1加至599   switch(cs)   {     case 0:LED0=1;break;     case 1:LED1=1;break;     case 2:LED2=1;break;     default:break;    }    Delay(CYCLE-PWM1);//延时长度,600次循环中从599减至1    }   switch(cs)   {     case 0:LED0=1;break;     case 1:LED1=1;break;     case 2:LED2=1;break;     default:break;    }   for(PWM1=CYCLE-1;PWM1>0;PWM1--){ //与逐渐变亮相反的过程     switch(cs)   {     case 0:LED0=0;break;     case 1:LED1=0;break;     case 2:LED2=0;break;     default:break;    }    Delay(PWM1);   switch(cs)   {     case 0:LED0=1;break;     case 1:LED1=1;break;     case 2:LED2=1;break;     default:break;    }    Delay(CYCLE-PWM1);          }         } 
 |