数码之家

 找回密码
 立即注册
搜索
查看: 1162|回复: 9

[C51] 一个按键如何禁止二次响应

[复制链接]
发表于 2022-1-20 22:42:26 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
假如共有播放,快进,快退,停止四个按键,当播放键按下一次后执行播放命令,机构动作。
要求:再次按下这个键时不能起作用,必需按下其它键才行,如何做到这个?
发表于 2022-1-20 22:54:21 来自手机浏览器 | 显示全部楼层
设置4个标记位,按下置1,其它3个置零,然后该按键标记为零时才能有效。
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-20 23:04:23 | 显示全部楼层
单片机程序按2楼方法     机械方法按   电风扇那种档位开关不就是吗?
回复 支持 反对

使用道具 举报

发表于 2022-1-20 23:12:01 | 显示全部楼层
曾经真的爱过 发表于 2022-1-20 23:04
单片机程序按2楼方法     机械方法按   电风扇那种档位开关不就是吗?

琴键开关
回复 支持 反对

使用道具 举报

发表于 2022-1-21 09:10:57 | 显示全部楼层
其实只需要一个标志变量就行,0=无任何键按下,1~n代表对应的按键已经处于按下状态。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-21 10:12:23 | 显示全部楼层
zj97czb 发表于 2022-1-20 22:54
设置4个标记位,按下置1,其它3个置零,然后该按键标记为零时才能有效。

有思路了,谢谢。
回复 支持 反对

使用道具 举报

发表于 2022-1-21 21:16:36 | 显示全部楼层
简单 按按键时根据不同按键给变量a赋不同的值,检查变量b,若b!=a则令b=a,且解析b值完成按键操作。当b=a时忽略即可
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-22 09:52:39 | 显示全部楼层
本帖最后由 慕名而来 于 2022-1-22 10:06 编辑

设标志做记号,根据对标志状态的判断来确定每一步的动作模式就好了。我想法是,例如:快进键kj和标志fj,当fj为0时kj可以操作,而在kj操作时fj置1其他按键操作时fj清0;说的挺绕语句很简单:if((kj==0)&&(fj==0)){fj=1;***按键有效时需要的操作语句****;}
if(其他按键判断有效){fj=0;***其他操作语言***} ,此时如果其他按键没有操作则kj就不会有效了。
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-21 10:23:11 | 显示全部楼层
增加一个变量记录上一次的按键值,按键后检查本次按键值与上一次的键值进行比较,如果相同就放弃,不相同再进行下一步操作
回复 支持 反对

使用道具 举报

发表于 2022-2-26 15:12:07 | 显示全部楼层
zhousz2000 发表于 2022-2-21 10:23
增加一个变量记录上一次的按键值,按键后检查本次按键值与上一次的键值进行比较,如果相同就放弃,不相同再 ...

这个才是最简明的方法。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-20 14:06 , Processed in 0.265201 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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