标题: 单片机按键一键多功能程序如何实现? [打印本页]

作者: 王昌阳    时间: 2021-3-18 20:38
标题: 单片机按键一键多功能程序如何实现?
由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现

如何实现用一个按键,第一次短按开机上电,第二次短按打开LED,第三次短按关闭LED。最后长按断电关机。
作者: 压着我头发啦    时间: 2021-3-18 22:23
找一个单击双击长按的程序,很好找到,然后往对应程序添加你的程序
作者: 人人学会单片机    时间: 2021-3-19 08:41
http://www.51hei.com/bbs/dpj-201806-1.html
作者: xianfajushi    时间: 2021-3-19 08:46
短按计数即可,另可参https://blog.csdn.net/xianfajush ... _v1&utm_term=51
作者: munuc_w    时间: 2021-3-19 08:51
用计数方式,定义1,2,3,。。。的功能,用switch语句判断执行。
作者: wang8969    时间: 2021-3-19 09:01
定义一个变量keys,按键设置为k1
if(k1==1)
{keys++ ;
switch(keys)
   case 1:
     执行xx   break;
   case 2:
     执行xx  break;
  case 3:
     执行xx  break;}

作者: design003    时间: 2021-3-19 09:03
如何实现用一个按键,第一次短按开机上电,第二次短按打开LED,第三次短按关闭LED。最后长按断电关机。
这不就是思路么   只是把第一次 第二次  第三次    和长按 记录下来作为条件执行开机上电  打开LED  关闭LED    长按开关机任务即可,
作者: 湖南    时间: 2021-3-19 23:48
计算或者延时即可
作者: ANT1987    时间: 2021-3-20 11:11
定义一个char型的按键值叫SW初始为0,按一次SW++,if(SW==1) Poweron(); if(SW==2) LEDON(); if(SW==3)LEDOFF(); if(SW>=4) SW=0 最后长按关机单独的定义
作者: l12334694654    时间: 2021-3-20 11:24
用switch语句就行,统计按键次数,然后根据按键次数来执行相关的语句
作者: linshifaa    时间: 2021-3-20 11:49
用互锁方式+状态
作者: 3042974988    时间: 2021-3-29 20:20
linshifaa 发表于 2021-3-20 11:49
用互锁方式+状态

没想到,请大佬再把思路说清楚一点




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1