C51流水灯控制:按键选择不同花样 - 代码示例与详解
#include <reg52.h>
sbit LED1 = P1^0; // 连接第一个LED的引脚 sbit LED2 = P1^1; // 连接第二个LED的引脚 sbit LED3 = P1^2; // 连接第三个LED的引脚 sbit LED4 = P1^3; // 连接第四个LED的引脚
void delay(unsigned int ms) { while (ms--) { unsigned char i, j; for (i = 0; i < 10; i++) for (j = 0; j < 200; j++); } }
void main() { unsigned char pattern = 0; // 当前的花样 unsigned char key; // 按键值
while (1) {
key = P3; // 读取P3口的按键值
if (key == 0x01) { // 如果按下的是按键1
pattern = 1; // 设置花样为1
} else if (key == 0x02) { // 如果按下的是按键2
pattern = 2; // 设置花样为2
} else if (key == 0x04) { // 如果按下的是按键3
pattern = 3; // 设置花样为3
} else if (key == 0x08) { // 如果按下的是按键4
pattern = 4; // 设置花样为4
}
switch (pattern) {
case 1:
LED1 = 1; // 点亮第一个LED
delay(100); // 延时
LED1 = 0; // 熄灭第一个LED
LED2 = 1; // 点亮第二个LED
delay(100); // 延时
LED2 = 0; // 熄灭第二个LED
LED3 = 1; // 点亮第三个LED
delay(100); // 延时
LED3 = 0; // 熄灭第三个LED
LED4 = 1; // 点亮第四个LED
delay(100); // 延时
LED4 = 0; // 熄灭第四个LED
break;
case 2:
// 其他花样的控制逻辑
break;
case 3:
// 其他花样的控制逻辑
break;
case 4:
// 其他花样的控制逻辑
break;
default:
break;
}
}
}
本代码示例使用P1口的四个引脚连接四个LED灯,使用P3口的四个引脚连接四个按键。在main函数中,通过读取P3口的按键值来确定当前选择的花样,并根据当前花样控制四个LED灯的点亮和熄灭。每个花样的控制逻辑都可以在switch语句中的对应case中实现。在每个case中,可以根据需要点亮或熄灭不同的LED灯,并使用delay函数进行延时控制。
原文地址: https://www.cveoy.top/t/topic/pulV 著作权归作者所有。请勿转载和采集!