51单片机四个按钮控制8个led灯,第一个按钮控制灯全亮,第二个按钮控制前四个灯亮,第三个按钮控制后四个灯亮,第四个按钮控制灯交叉亮灭
时间: 2024-05-09 19:20:55 浏览: 127
以下是51单片机的代码:
```c
#include <reg51.h>
sbit LED1 = P1^0;
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit LED4 = P1^3;
sbit LED5 = P1^4;
sbit LED6 = P1^5;
sbit LED7 = P1^6;
sbit LED8 = P1^7;
sbit BTN1 = P3^0;
sbit BTN2 = P3^1;
sbit BTN3 = P3^2;
sbit BTN4 = P3^3;
void delay(int t) { // 延时函数
int i, j;
for(i = 0; i < t; i++)
for(j = 0; j < 120; j++);
}
void allOn() { // 所有灯全亮
LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 0;
}
void firstFourOn() { // 前四个灯亮
LED1 = LED2 = LED3 = LED4 = 0;
LED5 = LED6 = LED7 = LED8 = 1;
}
void lastFourOn() { // 后四个灯亮
LED1 = LED2 = LED3 = LED4 = 1;
LED5 = LED6 = LED7 = LED8 = 0;
}
void crossOnOff() { // 灯交叉亮灭
LED1 = LED3 = LED5 = LED7 = 0;
LED2 = LED4 = LED6 = LED8 = 1;
delay(500);
LED1 = LED3 = LED5 = LED7 = 1;
LED2 = LED4 = LED6 = LED8 = 0;
delay(500);
}
void main() {
while(1) {
if(BTN1 == 0) // 第一个按钮控制灯全亮
allOn();
else if(BTN2 == 0) // 第二个按钮控制前四个灯亮
firstFourOn();
else if(BTN3 == 0) // 第三个按钮控制后四个灯亮
lastFourOn();
else if(BTN4 == 0) // 第四个按钮控制灯交叉亮灭
crossOnOff();
}
}
```
阅读全文