单片机一个按键同时控制两个led灯的亮灭的程序代码
时间: 2024-10-24 16:09:07 浏览: 98
单片机上实现一个按键同时控制两个LED灯的亮灭通常需要以下几个步骤。这里我们以经典的51系列单片机(如8051)为例,假设使用P0口作为IO口来驱动LED灯,PB0作为按键输入:
```c
#include <reg52.h>
sbit LED1 = P0^0; // 设定LED1在P0口的第0位
sbit LED2 = P0^1; // 设定LED2在P0口的第1位
sbit Key = PB0; // 设定按键在PB口
void delay(unsigned int time) {
while(time--) {
__nop(); // 暂停一段时间,这里的延时函数非常简单
}
}
int main() {
TR0 = 1; // 开启定时器0用于生成延时脉冲
TMOD = 0x01; // 设置定时器0工作于模式1(16位自动重装载)
TH0 = 0xFD; // 计数值设置为15*256+213,大约等于延时所需时间
TL0 = 0xFD;
while(1) { // 无限循环
if(Key == 0) { // 如果按下按键
LED1 = !LED1; // LED1取反状态,即亮或灭
LED2 = !LED2; // LED2也取反状态
}
// 每次按键操作后,稍微延迟一下防止频繁触发
delay(10); // 延迟10ms
}
return 0;
}
阅读全文