int key_scan(mode);
int main()
{
int key = 0;
while(1)
{
while((key = key_scan(x))) //扫描按键。x为0或者1
{
switch(key)
{
case 1:
//to do something
break;
case 2:
//to do something
break;
.....
}
}
}
}
/* @func 扫描按键
* @param mode 1:支持连按 0:不支持连按
* @ret 0:未有按键按下 其他值表示按键的代码
*/
int key_scan(mode)
{
static unsigned char key_up = 1;
if(mode) key_up = 1;//支持连按
if(key_up && KEY1 == 0)//KEY1为读取按键为上拉GPIO口的值,按下时为0
{
delay_ms(5);
key_up = 0;
if(KEY1 == 0)
{
return 1;//按键的编号
}
}
else if(KEY0 == 1)//KEY0未按下
key_up = 1;
return 0;
}
按键 连续与不连续
最新推荐文章于 2024-09-10 11:11:21 发布