直接贴程序
注意
1.j5的跳线帽不要接错
2.第二次扫描还是按下了一次,故不用软件消抖
void keyscan()
{
P44=1;P42=1;P35=1;P34=1; //这是列,检测列
P30=0;P31=0;P32=0;P33=0; //行
if(P44!=1||P42!=1||P35!=1||P34!=1)
{
Delay1ms();Delay1ms();Delay1ms();
if(P44!=1||P42!=1||P35!=1||P34!=1)
{
if(P44!=1) //第一列
{
key_value=1;
}
if(P42!=1) //第二列
{
key_value=2;
}
if(P35!=1) //第三列
{
key_value=3;
}
if(P34!=1) //第四列
{
key_value=4;
}
}
} //列检测结束
P44=0;P42=0;P35=0;P34=0; //列
P30=1;P31=1;P32=1;P33=1; //行,行检测
if(P30!=1||P31!=1||P32!=1||P33!=1) //第二次检测不需要延时,一定要注意呀
{
if(P30!=1) //第一行
{
key_value=key_value;
}
if(P31!=1) //第二行
{
key_value=key_value+4;
}
if(P32!=1) //第三行
{
key_value=key_value+8;
}
if(P33!=1) //第四行
{
key_value=key_value+12;
}
}
}