以下是用 C 语言实现上述功能的代码示例: ```c #include <stdio.h> #include <wiringPi.h> // 定义 LED 引脚数量 #define LED_NUM 16 // 定义 LED 引脚数组 int ledPins[LED_NUM] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; // 流水效果函数 void waterFlowEffect() { for (int i = 0; i < LED_NUM; i++) { digitalWrite(ledPins[i], HIGH); // 点亮当前 LED delay(100); // 延时 digitalWrite(ledPins[i], LOW); // 熄灭当前 LED } } // 逐一点亮函数 void oneByOneLight() { for (int i = 0; i < LED_NUM; i++) { digitalWrite(ledPins[i], HIGH); // 点亮当前 LED delay(500); // 延时 } } // 闪烁函数 void blinkThreeTimes() { for (int i = 0; i < 3; i++) { // 闪烁三次 for (int j = 0; j < LED_NUM; j++) { digitalWrite(ledPins[j], HIGH); // 点亮所有 LED } delay(500); // 延时 for (int j = 0; j < LED_NUM; j++) { digitalWrite(ledPins[j], LOW); // 熄灭所有 LED } delay(500); // 延时 } } int main() { // 初始化 wiringPi 库 if (wiringPiSetup() == -1) { printf("Setup wiringPi failed!\n"); return 1; } // 设置 LED 引脚为输出模式 for (int i = 0; i < LED_NUM; i++) { pinMode(ledPins[i], OUTPUT); } while (1) { // 检测 P0.0 按键是否按下 if (digitalRead(0) == HIGH) { waterFlowEffect(); } // 检测 P0.1 按键是否按下 if (digitalRead(1) == HIGH) { oneByOneLight(); } // 检测 P0.2 按键是否按下 if (digitalRead(2) == HIGH) { blinkThreeTimes(); } } return 0; } ``` 额外需要注意的逻辑点: 1. 确保所使用的开发板支持 `wiringPi` 库,并且引脚定义正确。 2. 注意延时时间的设置,以达到理想的显示效果。 3. 要考虑按键的消抖处理,避免误触发。 [2024-11-27 15:17:02 | AI写代码神器 | 694点数解答]