求助应该怎么写才能让按键按一下就能执行对应的程序
按其它按键后都需要按住不放手几秒后才能切换过来,哪位大神帮帮忙指点一下可以快速切换按键执行程序的。
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define uint unsigned int
uint i,j;
sbit led0=P1^0;
sbit k1=P2^4;
sbit k2=P2^5;
sbit k3=P2^6;
sbit k4=P2^7;
void DelayUs2x(unsigned char t);//函数声明
void DelayMs(unsigned char t);
void main()
{
while(1)
{
if(!k1) //K1按键指令
DelayMs(10);
if(!k1)
{
while(!k1)
{
k1=0;
k2=1;
k3=1;
k4=1;
{led0=0;//释放则执行需要的程序
break;}
}
}
if(!k2) //K2按键指令
DelayMs(10);
if(!k2)
{
while(!k2)
{
k2=0;
k1=1;
k3=1;
k4=1;
{led0=1;//释放则执行需要的程序
for(i=4000;i>0;i--)
for(j=110;j>0;j--);
led0=0;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
break;}
}
}
if(!k3) //K3按键指令
DelayMs(10);
if(!k3)
{
while(!k3)
{
k3=0;
k1=1;
k2=1;
k4=1;
{led0=1;//释放则执行需要的程序
for(i=8000;i>0;i--)
for(j=110;j>0;j--);
led0=0;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
break;}
}
}
if(!k4) //K4按键指令
DelayMs(1);
if(!k4)
{
while(!k4)
{
k4=0;
k1=1;
k2=1;
k3=1;
led0=0;//释放则执行需要的程序
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
led0=1;
for(i=16000;i>0;i--)
for(j=110;j>0;j--);
break;
}
}
}
}
void DelayUs2x(unsigned char t)
{
while(--t);
}
void DelayMs(unsigned char t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
} |