流水灯从中间向两边流c语言
时间: 2024-10-09 07:09:42 浏览: 44
在C语言中,流水灯通常指的是Blinking LED数组的一种动画效果,常常用于学习基础的定时器和循环控制。如果要让灯光从中间向两边依次点亮,可以利用for循环结合位操作来实现。以下是一个简单的例子:
```c
#include <stdio.h>
#include <delay.h> // 假设这里有定义延时函数
#define NUM_LEDS 10 // 假设有10个LED
#define CENTER 5 // 中间位置
void light_up(int led_num) {
if (led_num > 0 && led_num <= NUM_LEDS) {
printf("LED %d is on.\n", led_num);
// 真实硬件上可能会设置GPIO状态或其他操作,这里简化为打印
}
}
int main() {
for (int i = CENTER; i >= 0; i--) { // 从中心开始向左
light_up(i);
delay_ms(50); // 每点亮一个等待50毫秒
}
for (int i = CENTER + 1; i <= NUM_LEDS; i++) { // 再从中心向右
light_up(i);
delay_ms(50);
}
return 0;
}
```
在这个代码里,首先从中间LED向左遍历,然后从中间向右遍历,每个LED亮起后稍作延迟,模拟灯光流动的效果。
阅读全文