单片机89c51编程键控灯亮灭程序
时间: 2023-07-24 08:11:11 浏览: 51
好的,以下是一个简单的单片机89c51键控灯亮灭程序的示例:
```c
#include <reg52.h> // 导入头文件
sbit LED = P1^0; // 定义LED引脚
void delay(unsigned int time) // 延时函数
{
unsigned int i, j;
for(i = time; i > 0; i--)
for(j = 0; j < 125; j++);
}
void main()
{
unsigned char key; // 定义键值变量
while(1) // 循环执行
{
key = P2; // 读取P2口的键值
if(key == 0xfe) // 判断是否按下K1
{
LED = 1; // 点亮LED
}
else if(key == 0xfd) // 判断是否按下K2
{
LED = 0; // 熄灭LED
}
else // 没有按键,延时
{
delay(500); // 延时500ms
}
}
}
```
程序的实现思路很简单,就是通过读取P2口的键值来控制LED的亮灭。当P2口的键值为0xfe时,代表按下K1键,此时点亮LED;当P2口的键值为0xfd时,代表按下K2键,此时熄灭LED;如果没有按键,则延时500ms。需要注意的是,由于P2口的键值默认为高电平,因此按下键时对应的位会变成低电平,需要通过0xfe和0xfd来判断。