实验选用单片机:arduino
引脚图:
连线方式:
代码如下:
//经过修改后的code int LED1=6;//arduino8个led灯 int LED2=7; int LED3=8; int LED4=9; int LED5=10; int LED6=11; int LED7=12; int LED8=13; int n,i,j,t,cnt=0;//t代表时间 void setup()//设置各个引脚的初始状态 { for(n=6;n<=13;n++) { pinMode(n,OUTPUT);//初始化引脚为输出状态 } } void loop() //就是c语言的main中的while(1)函数的入口 { if(cnt%2==0) t=1000; else t=2000; style1();//按LED1-8顺序点亮,按8-1顺序熄灭 clean(); //灭掉所有灯 style2();//按LED1-8顺序点亮,按1-8顺序熄灭 clean();//灭掉所有灯 style3();//骚气的花色 clean();//灭掉所有灯 cnt++; } void style1() //花色1:按LED8~1顺序点亮,按1~8顺序熄灭 { for(n=LED8;n>=LED1;n--) { digitalWrite(n,HIGH); delay(t); } for(n=LED1;n<=LED8;n++) { digitalWrite(n,LOW); delay(t); } } //花色 2:4,5号灯先亮,然后3,6号再亮,接着2,7号亮,最后1,8号亮。 // 1,8号灯先灭,然后2,7号熄灭,接着3,6号灭,最后4,5号灭。 void style2() { int j,k; k=1;//设置k的初值为1 for(j=LED4;j>=LED1;j--)// { digitalWrite(j,HIGH);//点亮灯 digitalWrite(j+k,HIGH);//点亮灯 delay(t);//延时tms k +=2;//k值加2 } k=7;//设置k值为7 for(j=LED1;j<=LED4;j++) { digitalWrite(j,LOW);//熄灭灯 digitalWrite(j+k,LOW);//熄灭灯 delay(t);//延时tms k -=2;//k值减2 } } void style3()//花色三 { digitalWrite(LED1,HIGH);//初始状态:LED1和LED8依次点亮 digitalWrite(LED8,HIGH); delay(t); i=LED7,j=LED2;//i从右到左,j从左到右 while(i>=LED5&&j<=LED4)//从两侧依次点亮led { digitalWrite(j,HIGH); //delay(t); digitalWrite(i,HIGH); delay(t); i--;j++; }i=LED5;j=LED4; while(i<=LED8&&j>=LED1)//从中间向两侧依次熄灭led { digitalWrite(i,LOW); //delay(t); digitalWrite(j,LOW); delay(t); i++;j--; } } void clean() { for(n=6;n<=13;n++) { digitalWrite(n,LOW); } //delay(10); }