3x4矩阵键盘扫描的问题,麻烦帮忙改一下
ucharkeyscan(){P1=0x0e;if(P1&0x0e!=0x0e){delay(10);if(P1&0x0e!=0x0e){dis_buf=P1;dis_b...
uchar keyscan()
{
P1=0x0e;
if(P1&0x0e!=0x0e)
{
delay(10);
if(P1&0x0e!=0x0e)
{dis_buf=P1;
dis_buf=dis_buf&0x0e;
if(dis_buf!=0x0e)
{
switch(dis_buf)
{
case 0x0c:
key=0;break;
case 0x0a:
key=4;break;
case 0x06:
key=8;break;
}
}
}
dis_buf=P1;
dis_buf=dis_buf&0xF0;
if(dis_buf!=0xf0)
{
switch(dis_buf)
{
case 0xe0:
key=key+0;break;
case 0xd0:
key=key+1;break;
case 0xc0:
key=key+2;break;
case 0xb0:
key=key+3;break;
}
}
}
while(P1!=0xf0);
key_buf=key;
}
相关变量在前面声明过了。我根据老师上课讲的,参考网上自己写的。可是没法运行,虽然编译能通过。还有就是,如果这样写,键盘按下去,数字会不会显示出来后又消失呢?要不要加什么语句? 展开
{
P1=0x0e;
if(P1&0x0e!=0x0e)
{
delay(10);
if(P1&0x0e!=0x0e)
{dis_buf=P1;
dis_buf=dis_buf&0x0e;
if(dis_buf!=0x0e)
{
switch(dis_buf)
{
case 0x0c:
key=0;break;
case 0x0a:
key=4;break;
case 0x06:
key=8;break;
}
}
}
dis_buf=P1;
dis_buf=dis_buf&0xF0;
if(dis_buf!=0xf0)
{
switch(dis_buf)
{
case 0xe0:
key=key+0;break;
case 0xd0:
key=key+1;break;
case 0xc0:
key=key+2;break;
case 0xb0:
key=key+3;break;
}
}
}
while(P1!=0xf0);
key_buf=key;
}
相关变量在前面声明过了。我根据老师上课讲的,参考网上自己写的。可是没法运行,虽然编译能通过。还有就是,如果这样写,键盘按下去,数字会不会显示出来后又消失呢?要不要加什么语句? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询