case 0xD0: //第二行有键按下
key=6;break;
case 0xB0: //第三行有键按下
key=10;break;
case 0x70: //第四行有键按下
key=14;break;
}
}
P1=0xF7; //扫描第四列
temp=P1;
temp&=0xF0;
if(temp!=0xF0)
{
switch(temp)
{
case 0xE0: //第一行有键按下
key=3;break;
case 0xD0: //第二行有键按下
key=7;break;
case 0xB0: //第三行有键按下
key=11;break;
case 0x70: //第四行有键按下
key=15;break;
}
}
}
return(key);
}
}
//延时程序
void delay10ms()
{
unsigned char i,j;
for(i=0;i<10;b++)
for(j=0;j<120;j++)//延时 1ms
{
}
}
//等待按键释放程序
uchar key_free()
{
key=key_scan(); //取扫描到的键值
P1=0xF0;//置行线全为高电平,列线全为低电平
wheile(P1&0xF0!=0xF0) //如果仍有键按下