第一步:设置一个静态函数,记录按键是否为第一次按下。
第二步:判断按键是否按下,延时,再次判断按键是否按下。
第三步:如果按键为第一次按下,进入循环,返回值。
第四步:如果不是第一次按下,按键清零。
代码如下:
unsigned char key_scans()
{
static unsigned char flag_key1 = 0; //设置一个静态函数
if(KEY1 == 0) //判断按键是否按下
{
delay_ms(2); //延时
if(KEY1 == 0) //再次判断按键是否按下
{
if(flag_key1 == 0) //判断是否为第一次按下
{
flag_key1 = 1; //按键按下
return KEY1_PRES; //返回值
}
}
}
else// if(KEY1 == 1) //按键为高电平
{
flag_key1 = 0; //按键清零
}
return 0; //返回值
}