流水灯原理为:三极管在电路中充当开关的作用,当电路导通时,最左边的LED首先点亮基极串出一电容连接下一个三极管的集电极当电容充分充电后,下一个三极管导通使得第二个LED点亮,以此类推,可以通过调节电容的容量值,来控制流水灯点亮的时间。
以下是流水灯代码示例:
#include<reg51.h> //头文件,需根据具体单片机型号修改#define LED P2 //定义LED灯的端口void delay(unsigned int xms); //函数声明void main()
{
while(1) //无限循环 {
LED =0xfe; //先点亮最右边的灯,其余灯熄灭 delay(200); //延时200ms(根据实际情况修改)
LED =0xfd; //点亮右二灯,其余灯熄灭 delay(200);
LED =0xfb; //点亮右三灯,其余灯熄灭 delay(200);
LED =0xf7; //点亮右四灯,其余灯熄灭 delay(200);
LED =0xef; //点亮右五灯,其余灯熄灭 delay(200);
LED =0xdf; //点亮右六灯,其余灯熄灭 delay(200);
LED =0xbf; //点亮右七灯,其余灯熄灭 delay(200);
LED =0x7f; //点亮最左边的灯,其余灯熄灭 delay(200);
}
}
void delay(unsigned int xms) //延时函数{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
```