搜索
bottom↓
楼主: zhuhanliang

新型的按键扫描程序,仅三行程序

  [复制链接]

出0入0汤圆

发表于 2012-2-12 09:55:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-12 11:42:46 | 显示全部楼层
好程序收藏一下,我也研究研究,对比对比一些见过的键盘扫描程序,弄个好使的。呵呵!

出0入0汤圆

发表于 2012-2-12 15:56:01 | 显示全部楼层
同样是定时扫描,我做的为什么那么复杂呢,呵呵, 不过这里我没有看到按键防抖呢?

出0入0汤圆

发表于 2012-2-12 23:34:31 | 显示全部楼层
楼主的表达能力不给力啊,看不下去了。不过这个方法的确不错!

unsigned char Trg;
unsigned char Cont;
void KeyRead( void )
{
    unsigned char ReadData = PINB^0xff;   // 当前I/O状态(“真”或“假”)
    Trg = ReadData & (ReadData ^ Cont);      // 如果 当前状态为“真”,且当和“上次状态”不一致,则Trg为“真”
    Cont = ReadData;                                // 当前状态过时,即成为“上次状态”。
}

第二句的意思是:如果当前检测到按键按下且上次未按下,则是一次有效的触发;如果连续按下,则只视为一次有效触发。

出0入0汤圆

发表于 2012-2-13 00:08:02 | 显示全部楼层
想问下楼主,你是怎么处理多按键检测,和多按键同时按下检测的问题的?如果其他子程序耗费时间过长,你又是怎么处理按键事件的?

出0入0汤圆

发表于 2012-2-13 07:42:19 | 显示全部楼层
Mark~~

出0入0汤圆

发表于 2012-2-13 13:28:35 | 显示全部楼层
延时等待牺牲了cpu的效率

出0入0汤圆

发表于 2012-2-20 19:31:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-20 19:50:04 | 显示全部楼层
啥?MARK

出0入0汤圆

发表于 2012-2-20 20:33:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-20 22:00:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-20 23:42:11 | 显示全部楼层
也来看看精妙之处

出0入0汤圆

发表于 2012-2-21 09:48:43 | 显示全部楼层
标记

出0入0汤圆

发表于 2012-2-21 10:37:02 | 显示全部楼层
按键接在不同的端口上呢

出0入0汤圆

发表于 2012-2-21 10:59:25 | 显示全部楼层
这个思想很不错

出0入0汤圆

发表于 2012-2-21 15:14:05 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------

mark

出0入0汤圆

发表于 2012-2-21 17:02:20 | 显示全部楼层
算法不错。

出0入0汤圆

发表于 2012-2-21 20:16:09 | 显示全部楼层
这个算法很神奇啊,记一下

出0入0汤圆

发表于 2012-2-21 20:42:16 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------

好用~~谢谢楼主

出0入0汤圆

发表于 2012-2-22 09:55:24 | 显示全部楼层
受教了~~~mark下先~~~

出0入0汤圆

发表于 2012-2-22 10:56:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-22 12:45:26 | 显示全部楼层
mark,新型按键扫描

出0入0汤圆

发表于 2012-2-22 13:24:13 | 显示全部楼层
初学STM32的飘过,,,,收藏

出0入0汤圆

发表于 2012-2-22 16:49:32 | 显示全部楼层
还不错

出0入0汤圆

发表于 2012-2-23 09:29:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-23 10:07:50 | 显示全部楼层
虽然没有楼主说的那么神奇,但思路相当不错.

语句通俗易懂,简入深出,具备出书资质.哈...

出0入0汤圆

发表于 2012-2-23 10:32:51 | 显示全部楼层
Mark

出0入0汤圆

发表于 2012-2-23 11:38:51 | 显示全部楼层
楼主好思路,但矩阵键盘怎么处理?

出0入0汤圆

发表于 2012-2-26 13:53:46 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-26 14:07:57 | 显示全部楼层
记号

出0入0汤圆

发表于 2012-2-27 10:17:19 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------楼主
楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!楼主,牛!

出0入0汤圆

发表于 2012-3-6 21:27:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-8 11:24:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-8 19:33:53 | 显示全部楼层
算法真精妙,厉害

出0入0汤圆

发表于 2012-3-8 23:58:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-9 02:58:13 | 显示全部楼层
好东西,mark

出0入0汤圆

发表于 2012-3-9 08:19:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-9 08:33:41 | 显示全部楼层
不顶不行啊!

出0入0汤圆

发表于 2012-3-9 09:11:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-9 09:54:14 | 显示全部楼层
马克

出0入0汤圆

发表于 2012-3-9 10:13:57 | 显示全部楼层
看了下 不错  C51上应该也好用滴  有空了试试 看看够不够神奇

出0入0汤圆

发表于 2012-3-9 10:50:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-3-9 10:54:10 | 显示全部楼层
感觉抖动部分处理的不是很好。要是有抖动也能被识别为按键。
可以独立出来,做中断处理,

出0入0汤圆

发表于 2012-3-30 08:46:32 | 显示全部楼层
先mark 再谢lz 后研究

出0入0汤圆

发表于 2012-3-30 09:46:05 | 显示全部楼层
必须mark!!!

出0入0汤圆

发表于 2012-3-31 11:47:14 | 显示全部楼层
mark,回头再读

出0入0汤圆

发表于 2012-3-31 14:10:51 | 显示全部楼层
这个不错,学习了

出0入0汤圆

发表于 2012-3-31 15:26:56 来自手机 | 显示全部楼层
留个记号,慢慢读。

出0入0汤圆

发表于 2012-4-1 16:52:56 | 显示全部楼层
MARK      

出0入0汤圆

发表于 2012-4-2 10:18:35 | 显示全部楼层
非常经典,不得不支持

出0入0汤圆

发表于 2012-4-2 10:21:52 | 显示全部楼层
mark,回头细读。

出0入0汤圆

发表于 2012-4-2 12:21:59 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2012-4-3 18:13:43 | 显示全部楼层
好东西   

出0入0汤圆

发表于 2012-4-4 10:05:38 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2012-4-5 12:23:44 | 显示全部楼层
非常好,希望還有更多其它方面的技巧。

出0入0汤圆

发表于 2012-4-5 14:13:27 | 显示全部楼层
二会细看!!!!

出0入0汤圆

发表于 2012-4-5 17:41:04 | 显示全部楼层
.......改天用到项目上看看~

出0入0汤圆

发表于 2012-4-6 13:57:54 | 显示全部楼层
楼主 你好 你说的消抖处理,就像你说的每次按键只会有一次trg!=0,在第一次执行的时候trg(trg!=0)是可以识别出来的,当第二次执行的时候trg已经变为零了,怎么判断按键是按下的还是抖动了???

出0入0汤圆

发表于 2012-4-6 16:38:30 | 显示全部楼层
值得学习

出0入0汤圆

发表于 2012-4-6 17:09:20 | 显示全部楼层
消抖和死死的delay有啥区别?
20ms,cpu能干多少活,你死死地等,效率太低下了。
扫描函数,为什么不放定时器,按照你的写法,你的20ms准么》?定时器只是置了一个标志,转一圈过来判断标志,定时肯定不准.当然,无大碍。
所以,我个人觉得,你这个想法套了个忽悠人的大标题。

出0入0汤圆

发表于 2012-4-6 17:30:16 | 显示全部楼层
标记一下

出0入0汤圆

发表于 2012-4-6 21:47:58 | 显示全部楼层
真牛逼啊!!!

出0入0汤圆

发表于 2012-4-7 00:17:03 | 显示全部楼层
表示看不懂!

出0入0汤圆

发表于 2012-4-7 01:16:21 | 显示全部楼层
mark,回头细读。

出0入0汤圆

发表于 2012-4-7 06:36:41 来自手机 | 显示全部楼层
手机读过没理解,到电脑上再回味!

出0入0汤圆

发表于 2012-4-7 11:23:29 | 显示全部楼层
好贴,顶一个。

出0入0汤圆

发表于 2012-4-7 15:15:49 | 显示全部楼层
学习了,不过要看按键的使用情况,多还是少?主还是次?

出0入0汤圆

发表于 2012-4-7 19:58:11 | 显示全部楼层
谢谢楼主分享,至少我感觉写的是很好的,也很详细。

出0入0汤圆

发表于 2012-4-7 20:27:23 | 显示全部楼层
不错,不错,学习一下

出0入0汤圆

发表于 2012-4-7 20:38:23 | 显示全部楼层
谢谢楼主,学习了

出0入0汤圆

发表于 2012-4-10 01:24:02 | 显示全部楼层
mark,键盘扫描程序

出0入0汤圆

发表于 2012-4-10 09:33:54 | 显示全部楼层
顶顶顶顶顶

出0入0汤圆

发表于 2012-4-10 09:41:57 | 显示全部楼层
标志做参考,但多个按键在不同的IO组上怎么做才更简洁!!

出0入0汤圆

发表于 2012-4-10 10:10:44 | 显示全部楼层
先收藏了 回头细细研究

出0入0汤圆

发表于 2012-4-10 10:22:06 来自手机 | 显示全部楼层
读过,六号,以后慢慢看

出0入0汤圆

发表于 2012-4-11 12:57:07 | 显示全部楼层
哇塞!好啊!

出0入0汤圆

发表于 2012-4-11 13:37:39 | 显示全部楼层
好好学习一下!MARK

出0入0汤圆

发表于 2012-4-12 14:22:30 | 显示全部楼层
试试,谢谢……

出0入0汤圆

发表于 2012-4-12 15:14:23 | 显示全部楼层
LZ用的什么编译器??

出0入0汤圆

发表于 2012-4-12 20:09:13 | 显示全部楼层
这个思维太牛了~

出0入0汤圆

发表于 2012-4-13 08:16:13 | 显示全部楼层
新思维, 新方法,

出0入0汤圆

发表于 2012-4-13 10:52:54 | 显示全部楼层
20ms检测一次算快了吧,按钮都会有抖动的现象,按一次可能有几次触发,20ms可能要加大。

出0入0汤圆

发表于 2012-4-13 11:11:47 | 显示全部楼层
确实不错,受教了。

出0入0汤圆

发表于 2012-4-13 14:32:53 | 显示全部楼层
打算在下个项目中试试

出0入0汤圆

发表于 2012-4-13 15:01:43 | 显示全部楼层
确实  不错啊

出0入0汤圆

发表于 2012-4-13 17:08:14 | 显示全部楼层
牛啊!

出0入0汤圆

发表于 2012-4-13 17:08:34 | 显示全部楼层
牛啊!

出0入8汤圆

发表于 2012-4-13 18:27:16 | 显示全部楼层
MARK 慢慢吸收

出0入0汤圆

发表于 2012-4-15 15:25:32 | 显示全部楼层

嗯,试试实际效果

出0入0汤圆

发表于 2012-4-15 22:16:31 | 显示全部楼层
貌似没有传说的那么神奇

出0入0汤圆

发表于 2012-4-16 13:05:00 | 显示全部楼层
MARK!!!

出0入0汤圆

发表于 2012-4-16 17:38:38 | 显示全部楼层
很好啊,项目中经常用短按长按,组合按键。这个貌似做矩阵键盘也行!下次项目实践一下,先mark!

出0入0汤圆

发表于 2012-4-16 22:23:01 | 显示全部楼层
操作系统的分时原理工作我还真的一点概念都没有,呵呵,学习了

出0入0汤圆

发表于 2012-4-17 13:43:27 | 显示全部楼层
好思路

出0入0汤圆

发表于 2012-4-17 14:18:27 | 显示全部楼层
mark!!!!!!!!!

出0入0汤圆

发表于 2012-4-17 14:59:51 | 显示全部楼层
mark                                                                 

出0入0汤圆

发表于 2012-4-17 19:30:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-4-18 20:30:49 | 显示全部楼层
记号,以后用得上

出0入0汤圆

发表于 2012-4-19 16:51:10 | 显示全部楼层
顶 下次要用一下

出0入0汤圆

发表于 2012-4-19 19:49:58 | 显示全部楼层
顶顶顶顶顶
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 10:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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