循环呼吸灯

//单片机为stc89c52的,P1接led发光二级管(P1引脚为低电平led亮)
#include
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 );
void main()
{
unsigned int cycle=100,pwm=1;
while(1)
{
P1=0xff,delay(5000);//全灭,为第一个灯亮准备
for(pwm=1;pwm{
led0=0,delay(pwm);
led0=1,delay(cycle-pwm);
}
P1=0xfe,delay(5000);//0灯亮
for(pwm=1;pwm{
led0=1,led1=0,delay(pwm);
led0=0,led1=1,delay(cycle-pwm);
}
P1=0xfd,delay(5000);//1灯亮
for(pwm=1;pwm{
led1=1,led2=0,delay(pwm);
led1=0,led2=1,delay(cycle-pwm);
}
P1=0xfb,delay(5000);//2灯亮
for(pwm=1;pwm{
led2=1,led3=0,delay(pwm);
led2=0,led3=1,delay(cycle-pwm);
}
P1=0xf7,delay(5000);//3灯亮
for(pwm=1;pwm{
led3=1,led4=0,delay(pwm);
led3=0,led4=1,delay(cycle-pwm);
}
P1=0xef,delay(5000);//4灯亮
for(pwm=1;pwm{
led4=1,led5=0,delay(pwm);
led4=0,led5=1,delay(cycle-pwm);
}
P1=0xdf,delay(5000);//5灯亮
for(pwm=1;pwm{
led5=1,led6=0,delay(pwm);
led5=0,led6=1,delay(cycle-pwm);
}
P1=0xbf,delay(5000);//6灯亮
for(pwm=1;pwm{
led6=1,led7=0,delay(pwm);
led6=0,led7=1,delay(cycle-pwm);
}
P1=0x7f,delay(5000);//7灯亮
for(pwm=1;pwm{
led7=1,led6=0,delay(pwm);
led7=0,led6=1,delay(cycle-pwm);
}
P1=0xbf,delay(5000);//6灯亮
for(pwm=1;pwm{
led6=1,led5=0,delay(pwm);
led6=0,led5=1,delay(cycle-pwm);
}
P1=0xdf,delay(5000);//5灯亮
for(pwm=1;pwm{
led5=1,led4=0,delay(pwm);
led5=0,led4=1,delay(cycle-pwm);
}
P1=0xef,delay(5000);//4灯亮
for(pwm=1;pwm{
led4=1,led3=0,delay(pwm);
led4=0,led3=1,delay(cycle-pwm);
}
P1=0xf7,delay(5000);//3灯亮
for(pwm=1;pwm{
led3=1,led2=0,delay(pwm);
led3=0,led2=1,delay(cycle-pwm);
}
P1=0xfb,delay(5000);//2灯亮
for(pwm=1;pwm{
led2=1,led1=0,delay(pwm);
led2=0,led1=1,delay(cycle-pwm);
}
P1=0xfd,delay(5000);//1灯亮
for(pwm=1;pwm

渐灭,0渐渐亮
{
led1=1,led0=0,delay(pwm);
led1=0,led0=1,delay(cycle-pwm);
}

}
}
void delay(unsigned int x)
{unsigned int a,b;
for(a=x;a>0;a--)
for(b=3;b>0;b--);
}

相关文档
最新文档