找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: xiao_yp2014
打印 上一主题 下一主题
收起左侧

状态机按键扫描,看懂了会增长你的功力。。。。

  [复制链接]
81#
ID:166907 发表于 2017-2-27 14:40 | 只看该作者
学习一下,
回复

使用道具 举报

82#
ID:166347 发表于 2017-3-14 09:46 | 只看该作者
已收藏,这个我之前也有玩过,不过你的写得更简洁
回复

使用道具 举报

83#
ID:121619 发表于 2017-3-17 13:58 | 只看该作者
谢谢啊,
回复

使用道具 举报

84#
ID:171703 发表于 2017-3-18 08:38 | 只看该作者
谢谢楼主分享,学习了
回复

使用道具 举报

85#
ID:174969 发表于 2017-4-1 19:21 | 只看该作者
哈哈  学习中,可以彻底摆脱 while(KEY==0); 了
回复

使用道具 举报

86#
ID:68356 发表于 2017-4-2 21:11 | 只看该作者
收藏了学习学习
回复

使用道具 举报

87#
ID:47286 发表于 2017-4-3 10:56 | 只看该作者
一直用这种方法 但这种方法有个问题是switch每次只执行一个 完毕后跳出 下次再进入才又匹配执行哪个分支 所以在程序多的时候效率很低

一般仅仅是按键检测我是用if+bit一个标记来做 if一个语句开销的cpu时间少 顺序检测一下再做个标记 整体比用状态机快

多任务用状态机更好
回复

使用道具 举报

88#
ID:196329 发表于 2017-5-19 23:45 | 只看该作者
感谢Lzzzzzz
回复

使用道具 举报

89#
ID:112082 发表于 2017-5-22 19:26 | 只看该作者
学习了
回复

使用道具 举报

90#
ID:66592 发表于 2017-9-18 16:49 | 只看该作者
正好最近一直为这个问题烦忧,多谢分享。回去慢慢研究研究
回复

使用道具 举报

91#
ID:66592 发表于 2017-9-18 17:24 | 只看该作者
非常好的东西值得学习
回复

使用道具 举报

92#
ID:98122 发表于 2018-1-4 21:44 | 只看该作者
学习了,以前不明白,现在终于豁然开朗
回复

使用道具 举报

93#
ID:276026 发表于 2018-1-15 08:47 | 只看该作者
好东西  赞一个
回复

使用道具 举报

94#
ID:274070 发表于 2018-1-15 09:35 | 只看该作者
666,果然大佬!!
回复

使用道具 举报

95#
ID:289060 发表于 2018-3-21 14:08 | 只看该作者
likaienjoy 发表于 2015-7-21 22:02
**** 作者被禁止或删除 内容自动屏蔽 ****

长按的话只需要在第二状态里加个if(!key_press)里面弄个i来记进入该状态的次数,比如说记到100(100*10ms),及长按1s的时间,然后你就可以设置长按的动作了。
回复

使用道具 举报

96#
ID:66287 发表于 2018-3-23 09:22 | 只看该作者
状态机检测按钮程序写的还是很好的,条理清晰,注释清楚,很不错。但在主程序中反复检测按钮,就有些违背楼主设计初衷了,手一抖,就是几次按键了。应该设计一个10mS的定时,在定时中断里调用按键检测程序。
回复

使用道具 举报

97#
ID:126297 发表于 2018-3-23 16:56 | 只看该作者
sbit key_sr1 = P1^6;  // 按键输入口

这是只有一个按钮的情况下的编程,现实应用中,使用一个按钮的应用极少。如果按钮多于2个,这个程序应该如何扩展?

求赐教!
回复

使用道具 举报

98#
ID:291265 发表于 2018-4-14 21:21 | 只看该作者
谢谢分享
回复

使用道具 举报

99#
ID:263980 发表于 2018-4-14 21:49 | 只看该作者
对于状态机我更多是在FPGA中用到,在单片机中使用我倒是第一次看到,感觉很不错
回复

使用道具 举报

100#
ID:146045 发表于 2018-4-14 23:41 来自手机 | 只看该作者
不错,值得学习
回复

使用道具 举报

101#
ID:130345 发表于 2018-4-15 00:21 | 只看该作者
学习了,感谢大师
回复

使用道具 举报

102#
ID:315297 发表于 2018-4-24 14:07 | 只看该作者
楼主举的这个例子很好,很典型,让我真正理解了状态机的概念。
回复

使用道具 举报

103#
ID:314339 发表于 2018-4-24 20:37 来自手机 | 只看该作者
学习,
回复

使用道具 举报

104#
ID:192893 发表于 2018-4-25 07:28 来自手机 | 只看该作者
感谢楼主分享
回复

使用道具 举报

105#
ID:253767 发表于 2018-5-26 07:02 | 只看该作者
谢谢分享!
回复

使用道具 举报

106#
ID:331575 发表于 2018-5-26 08:50 | 只看该作者
谢谢分享,好东西
回复

使用道具 举报

107#
ID:323951 发表于 2018-5-31 11:19 | 只看该作者
很好的资料,代码整洁,可读性高,谢谢楼主
回复

使用道具 举报

108#
ID:316702 发表于 2018-5-31 16:03 | 只看该作者
学习一下,谢谢楼主
回复

使用道具 举报

109#
ID:345382 发表于 2018-7-23 18:20 | 只看该作者
学习了
回复

使用道具 举报

110#
ID:20672 发表于 2018-7-23 22:29 | 只看该作者
赞一个!!
回复

使用道具 举报

111#
ID:135713 发表于 2018-7-26 17:28 来自手机 | 只看该作者
不错感谢分享!
回复

使用道具 举报

112#
ID:469968 发表于 2019-1-18 08:54 | 只看该作者
学习学习
回复

使用道具 举报

113#
ID:361044 发表于 2019-1-18 17:08 | 只看该作者
不好意思,才看到!这样的程序该怎么做防抖处理呢,这样直接用对程序还是会有一定的影响吧。每循环一次按键值都会清零是不是对程序也有点影响
回复

使用道具 举报

114#
ID:167884 发表于 2019-3-11 22:08 来自手机 | 只看该作者
果然可以达到要求!
回复

使用道具 举报

115#
ID:20672 发表于 2019-4-2 09:25 | 只看该作者
谢谢分享,再次看了,还是有收获
回复

使用道具 举报

116#
ID:520563 发表于 2019-4-25 09:16 | 只看该作者
听说过状态机按键很好,一直还没学会,谢谢楼主讲解
回复

使用道具 举报

117#
ID:540753 发表于 2019-5-17 15:40 | 只看该作者
下来学习学习,先顶一个
回复

使用道具 举报

118#
ID:502682 发表于 2019-5-17 18:41 | 只看该作者
学到了不同的按键扫描我自创了一种按键扫描不过感觉局限可大楼主可以看看
回复

使用道具 举报

119#
ID:502682 发表于 2019-5-17 18:46 | 只看该作者
学到了不同按键扫描的方法,我是单片机的初学者,我自创了一种按键方式楼主可以看看,(PS:这不是装逼,只是让楼主看看有多大局限)if(key==0)
                {
                        while(1)
                        {
                                if(key==1)
                                {
                                                return  k;
                                }
                        }
                }
回复

使用道具 举报

120#
ID:540753 发表于 2019-5-23 16:05 | 只看该作者
学习学习,多谢LZ
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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