void get_key(void)
{
KEY=0xfe;
if(!P14)
{
delay(200);
if(!P14)
{
while(!P14);
key[cnt_key]=tab[8];
kk=1;
}
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[9];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[10];
cnt_mi++;
kk=1;
}
}
KEY=0xfd;
if(!P14)
{
delay(200);
if(!P14)
{
while(!P14);
key[cnt_key]=tab[5];
cnt_mi++;
kk=1;
}
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[6];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[7];
cnt_mi++;
kk=1;
}
}
KEY=0xfb;
if(!P14)
{
delay(200);
if(!P14)
{
while(!P14);
key[cnt_key]=tab[2];
cnt_mi++;
kk=1;
}
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[3];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[4];
cnt_mi++;
kk=1;
}
}
if(!P17)
{
delay(200);
if(!P17)
{
while(!P17);
init_main();
}
}
}
//***********************************
//void int0_main(void) interrupt 1
//{
// TH0=0xec;
// TL0=0x78;
// f_5ms=1;
//}
void get_key(void) //扫描键盘函数开始
{
KEY=0xfe;//先扫描第一行或列
if(!P14) //P14被按下?
{
delay(200);//是刚延时去消抖
if(!P14) //再次判断是否被按下?
{
while(!P14); //是,则判断是否被放开,否,刚等待.
key[cnt_key]=tab[8]; //是,则把TAB[8]赋给KEY[cnt_key]
kk=1; //kk=1
}//以下所有的分析上面分板相雷同,重复而已.
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[9];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[10];
cnt_mi++;
kk=1;
}
}
KEY=0xfd;
if(!P14)
{
delay(200);
if(!P14)
{
while(!P14);
key[cnt_key]=tab[5];
cnt_mi++;
kk=1;
}
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[6];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[7];
cnt_mi++;
kk=1;
}
}
KEY=0xfb;
if(!P14)
{
delay(200);
if(!P14)
{
while(!P14);
key[cnt_key]=tab[2];
cnt_mi++;
kk=1;
}
}
if(!P15)
{
delay(200);
if(!P15)
{
while(!P15);
key[cnt_key]=tab[3];
cnt_mi++;
kk=1;
}
}
if(!P16)
{
delay(200);
if(!P16)
{
while(!P16);
key[cnt_key]=tab[4];
cnt_mi++;
kk=1;
}
}
if(!P17)
{
delay(200);
if(!P17)
{
while(!P17);
init_main();
}
}
}
//***********************************
//void int0_main(void) interrupt 1
//{
// TH0=0xec;
// TL0=0x78;
// f_5ms=1;
//}
中断程序是一个5ms延时