单片机按键短按和长按的程序

单片机按键短按和长按的程序,第1张

不能给你程序,只能给你思路。

设置定时器(建设100ms),在设嫌闭置一个变量x,(100ms自加1)

在主循环中判断按键是否按下,并判断x的值大小;

假设 x每隔100ms加1

y是按键状态(为1表示按孙核下,为0 表示未按)

z记录则者掘按键状态的(初始值0)

b 记录长安 a记录短按

eg:

if(!z)

{

if(y)

{

a=1;

z=1

}

}

else if(x>10)// 1s

{

b=1

}

首先需要硬件支持,也就是单片机某个引脚可以控制断电和维持上电

按键的的作用也可以给单片机供电,并且还要有个专门的引脚检测按键状态。

软件:首先是长按判尘庆颤断。这个最好用按键扫描。就是检测按键按下时候,定时器计时,如果松开就立即清零。在设置一个功能函数检测定时值,大于两秒后,就表示长按。

按键按下单片机供电开始计时,如果达到长按标准,就输出引脚派败控制持续供电,这时候按键松了也不会断电。

运行期间,按键再次按下并符合长按,差拦那木引脚输出停止供电,这时候如果按键松开,那就彻底没电关机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12518899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存