8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程
/#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
void delay(z) //延时函数,有返回值型
{uint x,y;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}
void xyz() //8个LED闪烁五次 函数
{
uint i;
for(i=0;i<5;i++)
{
P1=0xff;
delay(600);
P1=0x00;
delay(600);
}
}
void main()
{
uint a,b,c,d;
while(1)
{
a=0x7f; //最高位亮
b=a;
a=_crol_(a,1); //左移,最低位到最高位
while(a!=b) //A不等于B跳出函数,也就是流水到最高位的时候跳出函数
{
P1=a;
delay(200);
a=_crol_(a,1);
P1=a;
}
c=0xfe; //最低位亮
d=c;
c=_cror_(c,1); //右移,最高位到最低位
while(c!=d) //C不等于D跳出函数,也就是流水到最低位的时候跳出函数
{
P1=c;
delay(200);
c=_cror_(c,1);
P1=c;
}
P1=0xff; //LED全部熄灭
delay(300);
xyz();
}
}
我要赚赏金
