以下是一个使用51单片机独立按键控制流水灯花样显示的代码:
1.定义LED灯:首先,我们需要定义LED灯的位置,以便在后续的程序中进行操作
2.定义独立按键:然后,我们需要定义独立按键的位置,用于表示哪个按键被按下
3.编写控制程序:接下来,我们需要编写控制程序。程序的核心部分是根据按键的状态来控制LED灯的亮灭。当某个按键被按下时,对应的LED灯就会亮起;当按键松开时,对应的LED灯就会熄灭
4.花样显示:最后,我们可以通过改变LED灯的亮灭顺序,实现花样显示
#include <REGX52.H>
#include <INTRINS.H>
//导入头文件
unsigned char LEDNum;
unsigned int count;
void Delay1ms(unsigned int xms) //@11.0592MHz //延时函数
{
unsigned char i, j;
while (xms--)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
while(1)
{
if(P3_1==0)
{
Delay1ms(20);
while(P3_1==0);
Delay1ms(20);
LEDNum = 0xFE;
while(1)
{
while(count == 0) //当count为0时进入此循环
{
LEDNum = _crol_(LEDNum,1);
P2 = LEDNum;
Delay1ms(500);//1
}
while(count == 1) //当count为1时进入此循环
{
LEDNum = _cror_(LEDNum,1);
P2 = LEDNum;
Delay1ms(500);
if(P3_1==0)
{
Delay1ms(20);
while(P3_1==0);
Delay1ms(20);
count = 0;
}
}
}
}
while(count == 0);
count = 1;
}
}
这段代码首先定义了一个LEDNum变量,用来存储当前的LED灯颜色。然后,主函数中有一个无限循环,当检测到P3_1按键被按下时,开始执行流水灯的控制逻辑。
在控制逻辑中,LEDNum变量会被不断地左移或右移,从而产生不同的颜色变化。同时,通过控制LEDNum的移动,可以实现流水灯的花样显示。
这只是一个基本的示例,实际上,你还可以根据需要添加更多的控制逻辑,比如增加按键的数量,或者改变流水灯的花样等等。