1. 按下第一次按键,LED1 灯每隔一秒闪烁不停,LED2 灯熄灭 2. 按下第二次按键,LED2灯常亮,LED1灯熄灭 3. 技下第三次按键,回到第一次按键现象,以此往复循环
时间: 2024-05-07 08:21:12 浏览: 93
按键控制LED灯的亮灭.C
5星 · 资源好评率100%
这是一个简单的按键控制 LED 灯的程序,可以使用下面的代码实现:
```c
#include <reg52.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit KEY = P3^2;
void main() {
unsigned char cnt = 0;
LED1 = 1;
LED2 = 0;
while(1) {
if(KEY == 0) { // 按键被按下
cnt++;
while(!KEY); // 等待按键松开
if(cnt == 1) {
LED1 = ~LED1; // LED1 灯闪烁
LED2 = 0;
delay(1000);
} else if(cnt == 2) {
LED1 = 0;
LED2 = 1; // LED2 灯常亮
} else if(cnt == 3) {
cnt = 0;
}
}
}
}
```
在此代码中,我们使用了 `cnt` 计数器来记录按键被按下的次数。当按键被按下时,我们先将计数器 `cnt` 加 1,然后等待按键松开。接着,根据 `cnt` 的值来控制 LED 灯的状态。当 `cnt` 为 1 时,LED1 灯闪烁;当 `cnt` 为 2 时,LED2 灯常亮;当 `cnt` 为 3 时,将计数器 `cnt` 清零,回到第一次按键现象。最后,程序进入一个无限循环,等待下一次按键事件。
阅读全文