📄 1键多功能按键识别技术.c
字号:
//一键多功能按键识别技术
//P3.0接按键,P1.0-P1.3接LED灯。
#include <reg52.h>
unsigned char ID=0; //定义键值ID
sbit SP1=P3^0; //定义P3.0为按键
sbit L1=P1^0; //定义P1.0为灯L1
sbit L2=P1^1; //定义P1.1为灯L2
sbit L3=P1^2; //定义P1.2为灯L3
sbit L4=P1^3; //定义P1.3为灯L4
//10ms延时子程序
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
//0.2s延时子程序
void delay02s(void)
{
unsigned char i;
for(i=20;i>0;i--)
{
delay10ms();
}
}
//主程序
void main(void)
{
while(1)
{
if(SP1==0) //按键是否按下,SP1=0时,是
{
delay10ms(); //延时消抖
if(SP1==0) //按键是否真的按下,SP1=0时,是
{
ID++; //ID加1
if(ID==4) //ID=4时,重新初始化ID
{
ID=0;
L2=1;
L3=1;
L4=1;
}
//按键是否释放,SP1=0时,没释放,进入死循环;SP1=1时,释放,退出死循环。
while(SP1==0);
}
}
switch(ID)
{
case 0:L1=~L1;delay02s();break;
case 1:L2=L1=~L1;delay02s();break;
case 2:L3=L2=L1=~L1;delay02s();break;
case 3:L4=L3=L2=L1=~L1;delay02s();break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -