三个IO口控制一个按键以及两个LED灯;
按键按下一次后其中一个灯常亮,再次按下后另一个灯做闪烁提示
以下是一个使用C语言编写的程序,用于控制一个按键和两个LED灯。当按键被按下一次时,其中一个LED灯会常亮;当按键再次被按下时,另一个LED灯会闪烁。
#include <stdio.h>
#include <stdlib.h>
// 定义IO口
#define IO_KEY 0
#define IO_LED1 1
#define IO_LED2 2
// 延时函数
void delay(int ms) {
for (int i = 0; i < ms; i++) {
for (int j = 0; j < 120; j++) {
// 这里空循环用于延时
}
}
}
int main() {
int key_state = 0; // 按键状态,0表示未按下,1表示按下
int led1_state = 0, led2_state = 0; // LED状态,0表示熄灭,1表示亮起
while (1) {
// 检查按键状态
if (getchar() == IO_KEY) {
key_state = 1; // 按键按下
} else {
key_state = 0; // 按键未按下
}
// 根据按键状态控制LED灯
if (key_state == 1 && led1_state == 0) {
printf("\033[1;1HLED1 ON"); // 打开LED1
led1_state = 1;
} else if (key_state == 1 && led1_state == 1) {
printf("\033[1;1HLED2 BLINK"); // LED2闪烁
led2_state = 0;
} else if (key_state == 0 && led2_state == 0) {
printf("\033[1;1HLED1 OFF"); // LED1熄灭
led1_state = 0;
} else if (key_state == 0 && led2_state == 1) {
printf("\033[1;1HLED2 OFF"); // LED2熄灭
led2_state = 0;
}
}
return 0;
}
【以下回答由 GPT 生成】
首先,你需要确定具体的硬件平台,例如使用的单片机或开发板型号,以及具体的IO口引脚编号。这样才能进行相应的编程和连接。
以下是一个基于常见单片机的示例代码,可以实现该功能。
#include <stdio.h>
#include <stdbool.h>
#include <wiringPi.h>
// 定义按键和LED引脚编号
#define BUTTON_PIN 17
#define LED_PIN1 18
#define LED_PIN2 19
int main(void) {
// 初始化WiringPi库
if (wiringPiSetupGpio() == -1) {
perror("wiringPiSetupGpio失败");
return 1;
}
// 设置引脚模式和初始状态
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
// 初始化标志变量
bool led1On = false;
bool led2Blinking = false;
while (true) {
// 检测按键状态
int buttonState = digitalRead(BUTTON_PIN);
// 当检测到按下按键时
if (buttonState == HIGH) {
delay(200); // 延迟一段时间做去抖动处理
// 判断是否是第一次按下按键
if (led1On == false && led2Blinking == false) {
digitalWrite(LED_PIN1, HIGH); // 点亮LED1
led1On = true; // 更新标志变量
}
// 判断是否是再次按下按键
else if (led1On == true && led2Blinking == false) {
led2Blinking = true; // 更新标志变量
}
}
// 根据标志变量控制LED2的闪烁
if (led2Blinking) {
digitalWrite(LED_PIN2, HIGH); // 点亮LED2
delay(500);
digitalWrite(LED_PIN2, LOW); // 熄灭LED2
delay(500);
}
}
return 0;
}
请注意,以上代码是一个示例,具体的引脚编号和平台相关设置需要根据你所使用的硬件进行调整。确保按键和LED引脚的连接正确,且能被程序正常读取和控制。
另外,如果你使用的是其他开发板或单片机,请参考相应的文档和示例代码,进行相关的IO口控制。
【相关推荐】