C语言编程,利用51
单片机控制一些东西,矩阵键盘扫描时遇到了问题,可以计算出键值号,比如key=1,但是如果我再按一下1号键,key还是等于1,那么我该怎么判断同一个键被连续按了多少次呢?热心人帮帮我,谢谢了!!!作为奖励给大家一本很好的
电子书,《世界是平的--21世纪简史》
-
-
The World is Flat.pdf
下载积分: 积分 -1 分
1.6 MB, 下载次数: 48, 下载积分: 积分 -1 分
-
-
世界是平的(完整).pdf
下载积分: 积分 -1 分
1.31 MB, 下载次数: 50, 下载积分: 积分 -1 分
uchar scan_key()
{
uchar hang,lie;
P2=0X0F;
if(P2!=0X0F)
delayms(10);
if(P2!=0X0F)
{
switch(P2&0X0F)
{
case 0x0e:hang=0;break;
case 0x0d:hang=1;break;
case 0x0b:hang=2;break;
case 0x07:hang=3;break;
}
P2=0XF0;
switch(P2&0XF0)
{
case 0xe0:lie=0;break;
case 0xd0:lie=1;break;
case 0xb0:lie=2;break;
case 0x70:lie=3;break;
}
P2=0X0F;
while(P2!=0X0F);
key=hang*4+lie;
}
return(key);
}
每次扫描完都有一个键值号,比如按下一键。则key一直就是1,在没按其它键的的时候,键值号不变,我如果连续按一键,就是一直按相同的键,键值号就一直是1,那我怎么计算出这同一个键被按了多少次?谢谢你持续的回答!
一周热门 更多>