c语言,流水灯从左到右亮然后从右到左
时间: 2024-12-18 22:14:59 浏览: 8
在C语言中,实现一个简单的流水灯从左到右亮再从右到左的效果,通常会利用数组和定时器或者循环结构。你可以创建一个数组来表示灯的状态,并用循环或者递归的方式让灯依次点亮并切换方向。以下是一个基本的示例代码:
```c
#include <stdio.h>
#include <delay.h> // 假设这是模拟延时的库
#define NUM_LEDS 8 // LED的数量
int led_array[NUM_LEDS] = {0}; // 初始化所有灯为关闭状态
void light_up(int direction) {
for (int i = 0; i < NUM_LEDS; ++i) {
if (direction == 1) { // 从左往右
led_array[i] = 1;
} else { // 从右往左
led_array[(NUM_LEDS - i] = 1;
}
printf("LED %d: %d\n", i, led_array[i]); // 显示当前灯的状态
delay_ms(500); // 每盏灯点亮一段时间,这里假设delay_ms函数延迟指定毫秒
}
}
int main() {
light_up(1); // 首先从左到右亮灯
printf("\nSwitching to right-to-left...\n");
light_up(0); // 然后从右到左亮灯
return 0;
}
```
这个代码只是一个简化的版本,实际应用中可能需要更复杂的硬件交互和错误处理。注意,`delay_ms`函数是假设有的,你需要根据实际情况替换为适合的延时操作。
阅读全文