从做项目编写的程序里拆解出来
单片机源程序如下:
- 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值大小根据需要进行调整
复制代码
以上程序51hei提供打包下载:
按键长短按.rar
(524 Bytes, 下载次数: 165)
|