按下按键K1,P1口的发光二极管1357点亮;按下K2,P1口的发光二极管2468点亮;按下K3,P1口的发光二极管全部点亮
时间: 2024-06-13 21:08:25 浏览: 120
以下是单片机AT89C51实现按键控制发光二极管点亮的代码:
```c
#include <reg51.h>
#define LED P1
void delay(unsigned int xms) // 延时函数
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 110; j > 0; j--);
}
void main()
{
unsigned char key;
while (1)
{
key = P2 & 0x07; // 读取P2口的低3位,即PB1、PB2、PB3的状态
switch (key)
{
case 0x01: // PB1按下,点亮1357
LED = 0xAA;
break;
case 0x02: // PB2按下,点亮2468
LED = 0x55;
break;
case 0x04: // PB3按下,全部点亮
LED = 0xFF;
break;
default: // 其他情况,全部熄灭
LED = 0x00;
break;
}
delay(100); // 延时0.1秒
}
}
```
该代码中,我们使用了一个无限循环,不断读取P2口的低3位,即PB1、PB2、PB3的状态。根据不同的按键状态,点亮不同的发光二极管。同时,我们使用了一个延时函数,每次循环结束后延时0.1秒,以达到闪烁的效果。
阅读全文