永发信息网

单片机按键按一次就加一

答案:3  悬赏:50  手机版
解决时间 2021-11-16 21:50
单片机按键按一次就加一
最佳答案
按键相对是个低速任务。你按的再快,一秒可以按十次吗?什么?你可以。。那你就是作弊了。因为哪怕你反应的过来。按键可不行。所以。这个本质你需要牢牢抓住。那么你可以选择一秒之内只检测几次按键。把几乎是连续在使用的机器时间碎片化。比如在一个碎片里只查一次按键。是的,你现在就是这么做的。只是循环太快。碎片太多。按键的抖动你都查到了。所以你需要的仅仅是慢下来。极限就是刚刚说的查10次。算算,这是一个100ms的定时。明白定时器的真正用途了吗?如果你实际这么实验了你会发现这的确有效。不会加个成百上千了。接下来你需要设置一个逻辑让按键检测只对下降沿起作用。最好的办法就是和前次的状态比较。如果上次的状态为高而此次状态为低。那么这就是个下降沿。于是你需要一个寄存器保存上一次的状态。并每次比较后更新。原来这寄存器是这么用的。。实际实验后发现这么干已经可以保证基本每次长按只会加1。但是短按似乎会丢失。那是因为。100ms实在是长了些。电平保持100ms有时是太难了。所以,你可以适当提高频率。比如提高10倍。以10ms为周期。基本能解决大多数问题。
全部回答
C语言中用延时防止跳动,用While检测是否松开
可以这样,给你个一般思路:1、检查按键状态-------2、延时20毫秒-------3、检查按键状态--------4、执行处理按键程序---------5、延时20毫秒---------返回到步骤1

说明:这是查询法,做实验或者简单程序可以,复杂程序最好用中断。在第一步如果没有按键返回1,第3步按键没按下就是按键时间太短则放弃也返回1。各延时段可根据手感调整一下延时时间。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
湖北襄樊是不是刘秀的故乡
一块地一圈有780米等于多少亩
动感主流个性休闲服饰地址在哪,我要去那里办
闭冷水系统注水排空气
150倍均线怎么调
72v32ah铅酸电池和48v20ah锂电池哪个好?
角色扮演高清电影
转贴:Facebook上面看到的美女,怎么样
一英寸等于多少平方厘米?
我从家乡里买了几根木头(图在下面),木头运
用热闹,丰富多彩,有趣写段话
红包数字19.99代表什么
实况八典藏版有一首歌,女声,歌词听出来的有
租房给别人,租金多少好?
财政总预算会计的收入.支出科目有哪些
推荐资讯
通达信5日变量
我想知道三轴水泥土搅拌桩机型号为ZKD85A-3的
有人说破相会没福气,有这事吗?
中国邮政储蓄银行(太阳火烧烤)地址有知道的么
上王学校地址好找么,我有些事要过去,
瘦人穿什么样的衣服好看
美团酒店名后为什么会有个皇冠
东营恩光商贸是从事什么?
我在深圳松岗想办健康证请问在哪里搞
箫声断⼂何处莫凭栏 。 的下一句是什么
8米高空是相对于多少楼层
上海求诺网络科技有限公司怎么样?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?