1个回答
展开全部
主要就是按键检测,防抖呗。
首先给出检测按键代码:(我这个事4*4键盘。具体你要根据实际情况编写)
uchar TestKey()
{
uchar cord_h,cord_l;
P6=0x0f;
cord_h=P6&0x0f;
if(cord_h!=0x0f)
{
Delay_Xms(1);
if(cord_h!=0x0f)
{
cord_h=P6&0x0f;
P6=cord_h|0xf0;
cord_l=P6&0xf0;
return(cord_h+cord_l);
}
}return(0xff);
}
--------------------------------------
然后你在Main函数里编写循环,检测按键然后做你想做的事情。。。
while(1)
{
key=TestKey();//调用键盘扫描,
switch(key)
{
case 0x7e:P4=0xa1;break;//0 按下相应的键显示相对应的码值
case 0x7d:Show1Menu();break;//1
case 0x7b:P4=0x83;break;//2
case 0x77:P4=0x88;break;//3
case 0xbe:P4=0x99;break;//4
case 0xbd:P4=0x90;break;//5
case 0xbb:P4=0x82;break;//6
case 0xb7:P4=0xb0;break;//7
case 0xde:P4=0xc0;break;//8
case 0xdd:P4=0x80;break;//9
case 0xdb:P4=0x92;break;//a
case 0xd7:P4=0xa4;break;//b
case 0xee:P4=0xc6;break;//c
case 0xed:P4=0xf8;break;//d
case 0xeb:P4=0x99;break;//e
case 0xe7:P4=0xf9;break;//f
}
}
首先给出检测按键代码:(我这个事4*4键盘。具体你要根据实际情况编写)
uchar TestKey()
{
uchar cord_h,cord_l;
P6=0x0f;
cord_h=P6&0x0f;
if(cord_h!=0x0f)
{
Delay_Xms(1);
if(cord_h!=0x0f)
{
cord_h=P6&0x0f;
P6=cord_h|0xf0;
cord_l=P6&0xf0;
return(cord_h+cord_l);
}
}return(0xff);
}
--------------------------------------
然后你在Main函数里编写循环,检测按键然后做你想做的事情。。。
while(1)
{
key=TestKey();//调用键盘扫描,
switch(key)
{
case 0x7e:P4=0xa1;break;//0 按下相应的键显示相对应的码值
case 0x7d:Show1Menu();break;//1
case 0x7b:P4=0x83;break;//2
case 0x77:P4=0x88;break;//3
case 0xbe:P4=0x99;break;//4
case 0xbd:P4=0x90;break;//5
case 0xbb:P4=0x82;break;//6
case 0xb7:P4=0xb0;break;//7
case 0xde:P4=0xc0;break;//8
case 0xdd:P4=0x80;break;//9
case 0xdb:P4=0x92;break;//a
case 0xd7:P4=0xa4;break;//b
case 0xee:P4=0xc6;break;//c
case 0xed:P4=0xf8;break;//d
case 0xeb:P4=0x99;break;//e
case 0xe7:P4=0xf9;break;//f
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询