哪位兄弟帮看一下如何让程序变得更简便,实现一个流水呼吸灯 在此基础上怎么改呢
#include<reg52.h>
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;
void Delay(unsigned int t);
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0;
P1=0xFF;
while (1)
{
LED0=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次
LED0=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED0=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //与逐渐变亮相反的过程
LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);
}
//主循环中添加其他需要一直工作的程序
break;}
while (1)
{
LED0=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次
LED1=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED1=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
}
LED1=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //与逐渐变亮相反的过程
LED1=0;
Delay(PWM_LOW);
LED1=1;
Delay(CYCLE-PWM_LOW);
}
//主循环中添加其他需要一直工作的程序
break;}
while (1)
{
LED2=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++){ //PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次
LED2=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED2=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
}
LED2=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //与逐渐变亮相反的过程
LED2=0;
Delay(PWM_LOW);
LED2=1;
Delay(CYCLE-PWM_LOW);
}
//主循环中添加其他需要一直工作的程序
break;}
void Delay(unsigned int t)
{
while(--t);
}