按键采用查询方式控制LED 点亮。点亮规则为:系统上电后, LED 全亮,之后每按键一次,LED按顺序(从上到下)依次熄灭一只,直到LED 全灭。之后,再次按键又全亮,周而复始。试编程实现此功能(C语言)。
时间: 2024-10-14 20:05:56 浏览: 61
8个led灯循环点亮程序c语言
5星 · 资源好评率100%
在C语言中,我们可以利用循环结构和数组来实现这个LED控制的功能。首先,假设我们有一个数组`leds[]`表示LED的状态,初始化时全部设置为1(代表亮)。然后定义一个计数器`currentLed`来跟踪当前应该熄灭的LED编号。
下面是一个简化的示例程序:
```c
#include <stdio.h>
#define NUM_LEDS 8 // LED的数量
int leds[NUM_LEDS]; // LED状态数组
int currentLed = NUM_LEDS - 1; // 初始化最后一个LED亮
void toggle_LED() {
if (currentLed != 0) { // 如果不是第一个LED
leds[currentLed] = 0; // 熄灭当前LED
currentLed--; // 移动到下一个LED
} else { // 当前已经是最后一个LED
currentLed = NUM_LEDS - 1; // 重新开始从第一个LED亮起
}
}
void main() {
int button Pressed;
// 系统上电LED全亮
for(int i = 0; i < NUM_LEDS; i++) {
leds[i] = 1;
}
while(1) {
printf("Enter a key press: ");
scanf("%d", &Pressed);
// 检查按键事件并相应地改变LED状态
if (Pressed == 'q') break; // 如果按下Q键退出
toggle_LED();
// 显示当前LED状态
for (int i = 0; i < NUM_LEDS; i++) {
printf("LED %d: ", i);
if (leds[i]) printf("*"); // 亮的LED显示*
else printf("-"); // 熄灭的LED显示-
}
printf("\n");
}
}
```
在这个程序中,用户通过输入字符'q'来停止操作。每当有按键输入,`toggle_LED()`函数会改变相应的LED状态,并在结束后显示所有LED的状态。注意这只是一个基础版本,实际应用中可能需要添加更多的错误处理和用户交互提示。
阅读全文