打印

按键查询求助:规定时间内按键次数统计,有请高手!·

[复制链接]
2139|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kaavie|  楼主 | 2014-1-17 23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kaavie 于 2014-2-21 13:18 编辑

欲实现的功能:

1)按1下,开灯开MOS;
2)2S内单击5次置位FLOCK,再在2S内单击5次清空FLOCK;
3)连续按10S置位FDM10S;
4)在连按了10S后,在10S内未按键置位FUP10S并退出按键查询。

输出口:GP4,GP5,输入口:GPIO.KEY。
沙发
kaavie|  楼主 | 2014-1-18 10:59 | 只看该作者
求指教!

使用特权

评论回复
板凳
NE5532| | 2014-1-18 17:49 | 只看该作者
1.楼主写得比较认真,注释很好,但是汇编希望一行一注释。
2.此程序需使用状态机来完成。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kaavie + 1 赞一个!
地板
lnulibin| | 2014-1-19 19:16 | 只看该作者
本帖最后由 lnulibin 于 2014-1-19 19:28 编辑

这种程序要求需要点功力呀。
如果,用户再要求加上1602的液晶屏幕显示控制,或者是数码管的扫描驱动,就更见功力了。
呵呵,哥们儿,祝你好运。:)

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
kaavie + 3 很给力!
5
kaavie|  楼主 | 2014-1-19 22:01 | 只看该作者
谢谢哥们提醒。看起来简单做起来却费脑筋。

使用特权

评论回复
6
yewuyi| | 2014-1-20 11:34 | 只看该作者
在delay的过程中,MCU相当于大脑短路

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kaavie + 1 淡定
7
kaavie|  楼主 | 2014-1-21 22:12 | 只看该作者
有考虑进去。毕竟只查询按键。闪灯时超过0.1S的任何延时外部输入是不会取到作用的。待按键查询完就会置标志,再回主程序完成相应功能。

使用特权

评论回复
8
非著名中医| | 2014-1-22 12:41 | 只看该作者
CALL DEL10MS ;
我一般在延时的过程中也不停的判断是否有键按下,这样可以真正的防止干扰。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kaavie + 1 淡定
9
兰天白云| | 2014-1-24 17:06 | 只看该作者
BTFSS GPIO,KEY
        NOP
        CALL DEL10MS                ;防抖
没有按键怎么不跳出去?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kaavie + 1 赞一个!
10
kaavie|  楼主 | 2014-1-24 17:20 | 只看该作者
置标志再跳出。

使用特权

评论回复
11
kaavie|  楼主 | 2014-2-9 13:34 | 只看该作者
以上的程序要改变按键处理方式。有没有高手指点下,用C的也行,哪怕流程图也行。

使用特权

评论回复
12
yewuyi| | 2014-2-9 16:58 | 只看该作者
写按键响应程序,必然的选择就是状态机

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kaavie + 1 赞一个!
13
kaavie|  楼主 | 2014-2-9 18:11 | 只看该作者
本帖最后由 kaavie 于 2014-2-18 09:14 编辑

高手帮忙,把以下欲实现的功能:

1)2S内单击5次置位FLOCK,再在2S内单击5次清空FLOCK;
2)连续按10S置位FDM10S;
3)在连按了10S后,在10S内未按键置位FUP10S并退出按键查询。

导入状态机,再从状态机导出程序,按键IO可以任选,谢谢啦。

使用特权

评论回复
14
kaavie|  楼主 | 2014-2-22 22:31 | 只看该作者
本帖最后由 kaavie 于 2014-2-23 15:02 编辑

有谁能帮我啊!?主要是2)2S内单击5次置位FLOCK,再在2S内单击5次清空FLOCK没有实现,其他都OK了。要是没有时间(2S)限制就好编多了。

使用特权

评论回复
15
kaavie|  楼主 | 2014-2-28 18:50 | 只看该作者
本帖最后由 kaavie 于 2014-2-28 18:51 编辑

补充下,不用单片机的定时器完成。

使用特权

评论回复
16
yklstudent| | 2014-2-28 22:27 | 只看该作者
感觉还是用定时器加状态机来做
按键读取与按键处理应该分开来做
分别采取状态机来做
按键实现短按和长按
按键处理根据按键是短按或者长按分别处理
余下省略500字
这样做感觉好做。。。。些

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
kaavie + 3 很给力!
17
kaavie|  楼主 | 2014-3-1 23:33 | 只看该作者
本帖最后由 kaavie 于 2014-3-1 23:34 编辑

:victory:不用状态机和定时器刚实现了,只是用了延时10MS为单位。分出4种状态,再把2S分成5段。状态为按下松开时判断每段时间。要不是把减法的借位搞反了,进度会提前两个月。借位C=0,不借位C=1。还是结帖给分,谢谢各位的关心:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:科技永无止境!

19

主题

124

帖子

0

粉丝