unsigned int KEY_Scan(void)
{
if(key_sign==1)
{
key_sign=0;
keya=RA4;
key1_new=keya;
keyb=RA5;
keyc=RA7;
TRISA4=0;
RA4=0;
delay(1);
keyb1=RA5;
keyc1=RA7;
TRISA4=1;
if(keyb==keyb1)
{
if(keyb==1)
{
key2_new=keyb;
key4_new=keyb;
}
else
{
key2_new=keyb;
}
}
else
{
key4_new=keyb1;
}
if(keyc==keyc1)
{
if(keyc==1)
{
key3_new=keyc;
key5_new=keyc;
}
else
{
key3_new=keyc;
}
}
else
{
key5_new=keyc1;
}
//========================驱动================================
if(key1_old!=key1_new)
{
key1_old=key1_new;
}
else
{
key1=key1_old;
}
if(key2_old!=key2_new)
{
key2_old=key2_new;
}
else
{
key2=key2_old;
}
if(key3_old!=key3_new)
{
key3_old=key3_new;
}
else
{
key3=key3_old;
}
if(key4_old!=key4_new)
{
key4_old=key4_new;
}
else
{
key4=key4_old;
}
if(key5_old!=key5_new)
{
key5_old=key5_new;
}
else
{
key5=key5_old;
}
}
}
void get_key(void)
{
KEY_Scan();
key_fuc(nokey);
if(key1==0)
{
key1_ON=1;
}
else
{
if(key1_ON==1)
{
key1_ON=0;
key_fuc(key1fuc);
}
}
if(key2==0)
{
key2_ON=1;
if(T_lock==1)
{
T_lock=0;
lock_cnt++;
if(lock_cnt>=250)
{
if(SOUND_flag==1&&lock)
{
SOUND=1;
lock=0;
}
else if(SOUND_flag==0)
{
SOUND=0;
}
}
}
}
else
{
if(key2_ON==1)
{
if(lock_cnt>=250)
{
lock_cnt=0;
key_fuc(key6fuc);
}
else
{
lock_cnt=0;
key_fuc(key2fuc);
}
key2_ON=0;
}
}
if(key3==0)
{
key3_ON=1;
if(T_change==1)
{
T_change=0;
change_cnt++;
if(change_cnt>=250)
{
if(SOUND_flag==1&&lock)
{
SOUND=1;
lock=0;
}
else if(SOUND_flag==0)
{
SOUND=0;
}
}
}
}
else
{
if(key3_ON==1)
{
if(change_cnt>=250)
{
change_cnt=0;
key_fuc(key7fuc);
}
else
{
change_cnt=0;
key_fuc(key3fuc);
}
key3_ON=0;
}
}
if(key4==0)
{
key4_ON=1;
}
else
{
if(key4_ON==1)
{
key4_ON=0;
key_fuc(key4fuc);
}
}
if(key4==0)
{
key4_ON=1;
}
else
{
if(key4_ON==1)
{
key4_ON=0;
key_fuc(key4fuc);
}
}
if(key5==0)
{
key5_ON=1;
}
else
{
if(key5_ON==1)
{
key5_ON=0;
key_fuc(key5fuc);
}
}
}