重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
主要就是按键检测,防抖呗。
创新互联专注于阳西企业网站建设,成都响应式网站建设,商城开发。阳西网站建设公司,为阳西等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
首先给出检测按键代码:(我这个事4*4键盘。具体你要根据实际情况编写)
uchar TestKey()
{
uchar cord_h,cord_l;
P6=0x0f;
cord_h=P60x0f;
if(cord_h!=0x0f)
{
Delay_Xms(1);
if(cord_h!=0x0f)
{
cord_h=P60x0f;
P6=cord_h|0xf0;
cord_l=P60xf0;
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
}
}
这个程序应该满足你的要求吧。
#include stdio.h
#include conio.h
int main(void)
{
while (1)
{
if (!kbhit())
printf("1");
else
{
char c = getch();
if (c == 'a')
{
putchar('2');
getch();
}
}
}
return 0;
}
if(keypress==true)检测有键按下 {delay_us(50); 延迟50us,软件滤波防抖动 if(keypress==true) 检测有键被按下 key_value=P1;提取键值 {switch(key_value) 识别是那个键被按下了 case 0x01: XXX;break; case 0x02:XXX;BREAK;进入对应工步或者动作即可。 ...... } } }