长短按键程序,单片机按键长短按源程序(不需要通过等待来判定)"/>
c语言 长短按键程序,单片机按键长短按源程序(不需要通过等待来判定)
从做项目编写的程序里拆解出来
单片机源程序如下:
uint m;
static uchar flag_key=1; //按键松开标志
static uchar pass=0; //长按动作标志,为1时,长按已动作,为0时长按未动作
if(KEY==0)
{
flag_key=0; //按键按下标志
m++;
}
else
flag_key=1; //按键松开标志
if((flag_key==1)&&(m>10)&&(m<500)) //按键松开,并且m值处于10~500之间,为短按
{
m=0; //m值清零
//短按操作内容
}
if((m>=500)&&(pass==0)) //判断是否是长按并且是否已动作,如果是长按并且未动作执行下面括号内的语句
{
pass=1; //长按动作置1表示长按已动作
//长按操作内容
}
if(KEY==1) //判断按键是否松开,松开的话执行下面语句
{
pass=0; //长按动作标志位置0为下次长按做准备
m=0; //m值清零,为下次按键按下做准备
}
m值大小根据需要进行调整
更多推荐
c语言 长短按键程序,单片机按键长短按源程序(不需要通过等待来判定)
发布评论