单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 654|回复: 3
打印 上一主题 下一主题
收起左侧

单片机按键长短按源程序(不需要通过等待来判定)

[复制链接]
跳转到指定楼层
楼主
从做项目编写的程序里拆解出来

单片机源程序如下:
  1. uint m;
  2.         static        uchar flag_key=1;                //按键松开标志
  3.         static uchar pass=0;                        //长按动作标志,为1时,长按已动作,为0时长按未动作
  4.         if(KEY==0)
  5.         {
  6.                 flag_key=0;                //按键按下标志
  7.                 m++;
  8.         }
  9.         else
  10.                 flag_key=1;                //按键松开标志
  11.         if((flag_key==1)&&(m>10)&&(m<500))        //按键松开,并且m值处于10~500之间,为短按
  12.         {
  13.                 m=0;                                                        //m值清零
  14.                         //短按操作内容                                                       
  15.         }
  16.         if((m>=500)&&(pass==0))                                //判断是否是长按并且是否已动作,如果是长按并且未动作执行下面括号内的语句
  17.         {                                               
  18.                 pass=1;                                                        //长按动作置1表示长按已动作
  19.                 //长按操作内容
  20.         }
  21.         if(KEY==1)                                                        //判断按键是否松开,松开的话执行下面语句
  22.         {
  23.                 pass=0;                                                        //长按动作标志位置0为下次长按做准备
  24.                 m=0;                                                        //m值清零,为下次按键按下做准备
  25.         }
  26. m值大小根据需要进行调整
复制代码

所有资料51hei提供下载:
按键长短按.rar (524 Bytes, 下载次数: 26)




评分

参与人数 1黑币 +15 收起 理由
杨雪飞 + 15 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
维超 发表于 2018-7-26 10:25 | 只看该作者
好思路,下载收藏以后借鉴
回复

使用道具 举报

板凳
yadjt 发表于 2019-2-11 08:58 | 只看该作者
学习学习,谢谢分享!
回复

使用道具 举报

地板
jeffphoon 发表于 2019-2-19 08:38 | 只看该作者
刚好要用到,谢谢了!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机.

Powered by 单片机教程网

快速回复 返回顶部 返回列表