51单片机按键空置流水灯代码keil
时间: 2024-06-11 08:02:11 浏览: 100
51单片机按键控制流水灯的代码实现如下:
```c
#include <reg52.h> //头文件,需要根据具体型号修改
sbit LED1 = P1^0; //定义LED1的控制引脚
sbit LED2 = P1^1; //定义LED2的控制引脚
sbit LED3 = P1^2; //定义LED3的控制引脚
sbit LED4 = P1^3; //定义LED4的控制引脚
sbit KEY1 = P3^0; //定义KEY1的输入引脚
sbit KEY2 = P3^1; //定义KEY2的输入引脚
void delay(int time) //延时函数,需要根据具体时钟频率修改
{
int i, j;
for(i = time; i > 0; i--)
for(j = 110; j > 0; j--);
}
void main()
{
int i = 0;
while(1)
{
if(KEY1 == 0) //判断KEY1是否按下
{
delay(10); //消除抖动
if(KEY1 == 0) //再次确认KEY1是否按下
{
i++; //变量i加1
if(i > 4) i = 1; //变量i不能超过4
delay(10); //延时消抖动
}
}
if(KEY2 == 0) //判断KEY2是否按下
{
delay(10); //消除抖动
if(KEY2 == 0) //再次确认KEY2是否按下
{
i--; //变量i减1
if(i < 1) i = 4; //变量i不能小于1
delay(10); //延时消抖动
}
}
switch(i) //根据变量i控制LED灯亮灭
{
case 1:
LED1 = 1;
LED2 = LED3 = LED4 = 0;
break;
case 2:
LED2 = 1;
LED1 = LED3 = LED4 = 0;
break;
case 3:
LED3 = 1;
LED1 = LED2 = LED4 = 0;
break;
case 4:
LED4 = 1;
LED1 = LED2 = LED3 = 0;
break;
}
}
}
```