| 这个程序大了后就容易按键失灵。 |
| 最简单的按键状态机 |
大佬真牛哇,学习了![]() |
| 正好最近一直为这个问题烦忧,多谢分享。回去慢慢研究研究 |
| 按键是如何消抖的? |
| 怎么加防抖呢 |
| 对我正在学习状态机非常有帮助,谢谢分享 |
| 很好,做成头文件了么? |
| 你这个状态机用的,只能说理想状态吧。按键防抖呢,你打算怎么设计?而且状态机要有时序约束的。 |
|
| 细细研究一下,妙呀 |
| 学习51编程,思路很重要,谢谢 |
| 谢谢楼主分享,对于初学者来说一直都用的while |
| 正在找状态按键写法,是我急需的,感谢楼主的经验分享。我已经卡在这里5天了 |
|
小白有个问题: 1. 假设默认是高电平,第一次进入函数,key_press为1. 在按键按下变成0的时候切换到状态1. 2. 然后第二次进入函数,首先读IO口的值,此时key_press成为0了,如果想检测按键是否还是按下,为何要用(!key_press)呢?感觉应该是(key_press)。 3. 同理,状态2的时候应该是(!key_press)... ![]() |
| 在学习状态机键盘,谢谢 |
| 小白表示有点懵,先下载学习,谢谢! |
| 又学到了知识,谢谢 |
| 在定时中断里完成按键检测,才是实用的按键程序. |
| 来学习了,谢谢楼主小哥 |
| 大佬就是大佬,学到了 |
| 不错,学习了,今天刚刚知道有状态机的概念,楼主的代码能够对按键未按、按下和抬起进行独立的操作! |
|
本帖最后由 jiaojunh 于 2020-12-21 14:15 编辑 对于我来是都是牛x的,自学快两年了,在各论坛搬砖,谢谢大神的每一次分享,学到了不少东西,偶然一次发现自己写延时去抖的按键程序用在一个比较大的程序里边时,不堪入目啊,不稳定。 |
| 一看是版主,想必很实用,谢谢,下来研究研究 |
| 不错,很好的资料 |
| 学习学习一下,谢谢楼主 |
| 真的真佩服这样的又清晰又有中文注释 |
Strongest丶星空 发表于 2019-5-17 18:46 兄弟,你这个连消抖都没,而且一旦有键按下,CPU就一直被while(1)这条语句占用,别的语句都执行不了了。还是多学多练吧 |
| 感谢楼主分享,学习了 |
|
下载学习 |
| 没有看到消抖动作,是不是要放在定时中断中去完成的。 |
| 刚学单片机,还不知道状态机有什么用,学习一下,谢谢楼主分享 |
| 没黑币了,好想收藏 |
| 新手,学习了 |
| 学习学习,多谢LZ |
|
学到了不同按键扫描的方法,我是单片机的初学者,我自创了一种按键方式楼主可以看看,(PS:这不是装逼,只是让楼主看看有多大局限)if(key==0) { while(1) { if(key==1) { return k; } } } |
| 学到了不同的按键扫描我自创了一种按键扫描不过感觉局限可大楼主可以看看 |
| 下来学习学习,先顶一个 |
| 听说过状态机按键很好,一直还没学会,谢谢楼主讲解 |
| 谢谢分享,再次看了,还是有收获 |