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

单片机按键短按和长按的程序,第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

}

这个真心不难,就是简单的c语言判定就返慎行了,《C程序设计语言》,实在看不了就看谭总写的那本c语言。给你写过伪代码,

if(key=ReadKey())//读取按拆世余键,判断有无按键按下去,没按键按下,这里返回0值是不进入这个函数的

{

delay(x)//延时一段时间,写过循环就行了

if(!ReadKey())//在次读取按键值,实际上按下去按键是低电平(原理图一般都是这样做的)

{

return 已旅滚经松手了( 这里是高电平了返回0了)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存