void key_scan1()//按键扫描1
{
P1=0xfe;
temp1=P1;
temp1=temp1&0xfe;
if(temp1!=0xfe)
{
delay(2);
temp1=P1;
if(temp1!=0xfe)
{
temp1=P1;
delay(2);
if(temp1 ==0xfc)//扫描这个按键的时候非常不灵敏,需要不停的点才能触发
{
displayone(20,table_segl[1]);
displayone(21,table_segh[1]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
/* else
if(temp1==0xfa)
turn();
dis_time(i,j,m,n);
} */
else
if(temp1==0xf6)
{
displayone(20,table_segl[3]);
displayone(21,table_segh[3]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xee)
{
displayone(20,table_segl[4]);
displayone(21,table_segh[4]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xde)
{
displayone(20,table_segl[5]);
displayone(21,table_segh[5]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
}
}
}
void key_scan2()//按键扫描2
{
P1=0xfd;
temp1=P1;
temp1=temp1&0xfd;
if(temp1!=0xfd)
{
delay(2);
temp1=P1;
if(temp1!=0xfd)
{
temp1=P1;
delay(2);
if(temp1==0xfc)//这个问题和上面的一样,扫描这个按键的时候非常不灵敏,需要不停的点才能触发
{
displayone(20,table_segl[6]);
displayone(21,table_segh[6]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xf9)
{
displayone(20,table_segl[7]);
displayone(21,table_segh[7]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xf5)
{
displayone(20,table_segl[8]);
displayone(21,table_segh[8]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xed)
{
displayone(20,table_segl[9]);
displayone(21,table_segh[9]);
displayone(22,0x08);
displayone(23,0x00);
temp1=P1;
}
else
if(temp1==0xdd)
{
displayone(20,table_segl[0]);
displayone(21,table_segh[0]);
displayone(22,table_segl[1]);
displayone(23,table_segh[1]);
temp1=P1;
}
}
}
}
void main ()
{
while(1)
{
key_scan1();
key_scan2();
}
}
|