#include<reg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
void delay(uint x) //延时函数(控制灯亮与灭的间隔)
{
uint i,j;
for(i=500;i>0;i--)
for(j=x;j>0;j--);
}
void main() //主函数
{
uchar i; //定义局部变量
P2=0x00; //关闭所有发光二极管
while(1) //死循环
{
P2=0xfe; //第一个二极管亮
delay(100); //延时
for(i=0;i<7;i++) //左移7次
{
P2=~P2; //把P2的值取反
P2=P2<<1; //左移一位
P2=~P2;
delay(100);
}
for(i=0;i<3;i++)
{
P2=0xff; //所有的二极管都灭
delay(100);
P2=0x00; //所有的二极管都亮
delay(100);
}
P2=0x7f; //最后一个二极管亮
delay(100);
for(i=0;i<7;i++)
{
P2=~P2;
P2=P2>>1;
P2=~P2;
delay(100);
}
for(i=0;i<3;i++)
{
P2=0x00;
delay(100);
P2=0xff;
delay(100);
}
}
}
/*注:发光二极管接单片机的P2口,低电平有效,即可实现流水灯效果
*/