|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
帮忙看看,先谢谢了,这个函数没有返回值,任何键for循环运行到最后一步,没法跳出
/***********************************************************************
2*5 键盘扫描子程序
行为PD4 PD5 输入高阻态 VCC上拉, 列PB0~PB4 输出
************************************************************************/
unsigned char keyscan(void)
{
unsigned int i,temp;
delay(100);
if((PIND&(1<<PD2))) asm("reti");//防抖,如果int0为高电平就跳出中断
delay(100);
if((PIND&(1<<PD2))) asm("reti");
for(i=0;i<5;i++)
{
KEYH_PORTB|=0x1f;//1~5位置高电平
KEYH_PORTB&=~(1<<i);//i位置低电平
temp=KEYL_PIND&(0x30);//判断4,5位电平
temp=temp>>4;
switch(temp)
{
case 1:{return(KEYTAB[1]);}//KEYL5为低电平
case 2:{return(KEYTAB[0]);}//KEYL4为低电平
}
}
} |
|