C51编写一个不同按键控制不同花样的流水灯
下面是一个使用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函数进行延时控制
原文地址: http://www.cveoy.top/t/topic/hLft 著作权归作者所有。请勿转载和采集!