单片机双键控四灯的程序switch语句
时间: 2023-10-19 20:14:46 浏览: 166
下面是一个单片机双键控四灯的程序,使用了switch语句:
```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(unsigned int xms) // 延时函数
{
unsigned int i, j;
for(i=xms; i>0; i--)
for(j=112; j>0; j--);
}
void main()
{
LED1 = LED2 = LED3 = LED4 = 0; // 初始状态关闭所有灯
while(1)
{
if(KEY1 == 0) // 检测 KEY1 是否按下
{
delay(10); // 延时去抖
if(KEY1 == 0) // 再次检测 KEY1 是否按下
{
switch(LED1) // 根据 LED1 的状态选择下一个亮灯
{
case 0:
LED1 = 1;
break;
case 1:
LED2 = 1;
break;
case 2:
LED3 = 1;
break;
case 3:
LED4 = 1;
break;
default:
break;
}
while(KEY1 == 0); // 等待 KEY1 释放
}
}
if(KEY2 == 0) // 检测 KEY2 是否按下
{
delay(10); // 延时去抖
if(KEY2 == 0) // 再次检测 KEY2 是否按下
{
switch(LED1) // 根据 LED1 的状态选择上一个亮灯
{
case 0:
LED4 = 1;
break;
case 1:
LED1 = 0;
break;
case 2:
LED2 = 0;
break;
case 3:
LED3 = 0;
break;
default:
break;
}
while(KEY2 == 0); // 等待 KEY2 释放
}
}
}
}
```
这个程序中使用了 P1.0~P1.3 这四个引脚控制四个LED灯,使用 P3.0 和 P3.1 作为两个控制按键。程序的基本思路是:当按下 KEY1 时,根据 LED1 的状态选择下一个亮灯;当按下 KEY2 时,根据 LED1 的状态选择上一个亮灯。其中使用了延时去抖的方法,防止按键抖动造成的误触发。
阅读全文
相关推荐


















