求助應該怎么寫才能讓按鍵按一下就能執(zhí)行對應的程序
按其它按鍵后都需要按住不放手幾秒后才能切換過來,哪位大神幫幫忙指點一下可以快速切換按鍵執(zhí)行程序的。
#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);//函數(shù)聲明
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;//釋放則執(zhí)行需要的程序
break;}
}
}
if(!k2) //K2按鍵指令
DelayMs(10);
if(!k2)
{
while(!k2)
{
k2=0;
k1=1;
k3=1;
k4=1;
{led0=1;//釋放則執(zhí)行需要的程序
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;//釋放則執(zhí)行需要的程序
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;//釋放則執(zhí)行需要的程序
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);
}
} |