点亮流水灯共有三种方式
https://blog.csdn.net/qq_41379312/article/details/788353941、一盏一盏的操作:即先令第一盏灯亮,延时,再令它熄灭,延时,再让下一盏灯重复操作即可;(略)2、
利用数组方法点亮:先定义一个数组,其中存入相应8
盏灯亮的数字(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盏灯,第二盏灯....亮),再利总线,按顺序点亮八盏灯;(后面对数码管的控制将用类似的方法)
3、
利用移位方法点亮(这种方法,程序看起来简单些,但实质上还是一个一个的控制)。下面是位移方法的程序共阳,P2端控制。下面的代码是两种灯得控制:#include
typedef unsigned char uchar;
typedef unsigned int uint;
void delay(uint num)
{
uint x=110;
for(num;num>0;num--)
for(x;x>0;x--);
}
void LED1()//LED共阳接法,接在P2端,流水灯
{
uint i;
uchar led;
led=0xfe;
for(i=1;i<=8;i++)
{
P2=led;
delay(10000);
led<<=1;
}
}
void LED2()//LED共阳接法,接在P2端,灯间隔亮
{
uint i;
uchar led;
led=0xff;
led=0x01;
for(i=1;i<=8;i++)
{
P2=~led;
delay(5000);
led<<=1;
}
}
void main()
{
//LED1();
LED2();
}