51单片机如何实现按键的长按与短按功能,尝试过很多方法都不行,请高手多赐教,多谢了(想是简单,做是难)
4个回答
展开全部
这个真心不难,就是简单的c语言判定就返慎行了,《C程序设计语言》,实在看不了就看谭总写的那本c语言。给你写过伪代码,
if(key=ReadKey())//读取按拆世余键,判断有无按键按下去,没按键按下,这里返回0值是不进入这个函数的
{
delay(x);//延时一段时间,写过循环就行了
if(!ReadKey())//在次读取按键值,实际上按下去按键是低电平(原理图一般都是这样做的)
{
return 已旅滚经松手了( 这里是高电平了返回0了)
if(key=ReadKey())//读取按拆世余键,判断有无按键按下去,没按键按下,这里返回0值是不进入这个函数的
{
delay(x);//延时一段时间,写过循环就行了
if(!ReadKey())//在次读取按键值,实际上按下去按键是低电平(原理图一般都是这样做的)
{
return 已旅滚经松手了( 这里是高电平了返回0了)
展开全部
设置一定时器,比如定时0.5s加一,再设置一个标志位,当加数达到一个标准值者虚如时,定时器定时改为更短时间。
关键是设置定时器,首启标志位,在中端程序检验按键的电位。
试过没誉颂
关键是设置定时器,首启标志位,在中端程序检验按键的电位。
试过没誉颂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个思路,按下仿尺没以后进入一个循环备纳,再定一个变量短按的时候是1如果按的时间久了就让变0这样判断这个变量就能判断它的1和0就知道是长按还是段困老按
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询