使用RPi.GPIO库(适用于树莓派)
```python
import RPi.GPIO as GPIO
import time
设置GPIO引脚编号模式
GPIO.setmode(GPIO.BOARD)
定义信号灯的引脚编号
lights = [11, 12, 13, 15, 16, 18, 22, 23]
设置信号灯引脚为输出模式
GPIO.setup(lights, GPIO.OUT)
try:
while True:
依次点亮信号灯
for light in lights:
GPIO.output(light, GPIO.HIGH)
time.sleep(1)
依次关闭信号灯
for light in lights:
GPIO.output(light, GPIO.LOW)
time.sleep(1)
finally:
清理GPIO资源
GPIO.cleanup()
```
使用Arduino编程语言
```cpp
include
// 定义信号灯引脚
sbit leda = P0;
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit led3 = P0^2;
sbit led4 = P0^3;
sbit led5 = P0^4;
sbit led6 = P0^5;
sbit led7 = P0^6;
sbit led8 = P0^7;
void delay(u16 i) {
while(i--);
}
void main() {
while(1) {
leda = 1; // 全部灯亮
// 从左到右依次熄灭
led1 = 0; delay(50000); // 大约延时450ms
led2 = 0; delay(50000);
led3 = 0; delay(50000);
led4 = 0; delay(50000);
led5 = 0; delay(50000);
led6 = 0; delay(50000);
led7 = 0; delay(50000);
led8 = 0; delay(100000); // 大约延时900ms
leda = 1;
}
}
```
使用STC系列单片机(使用Keil C51编译器)
```c
include
define LED P2
void delay(int time) {
int i, j;
for(i = 0; i < time; i++) {
for(j = 0; j < 1275; j++); // 大约延时半秒
}
}
void main() {
int state = 1; // 当前状态初始化为状态1
while (1) {
switch (state) {
case 1:
LED = 0x80; // 点亮前7个灯
break;
case 2:
LED = 0x87; // 点亮前6个灯
break;
case 3:
LED = 0x8F; // 点亮前5个灯
break;
case 4:
LED = 0x97; // 点亮前4个灯
break;
case 5:
LED = 0xAF; // 点亮前3个灯
break;
case 6:
LED = 0xBF; // 点亮前2个灯
break;
case 7:
LED = 0xF7; // 点亮第1个灯
break;
case 8:
LED = 0xFF; // 全部灯灭
break;
}
delay(500); // 延时0.5秒
state++;
}
}
```
使用51单片机