搜索
bottom↓
楼主: zhuhanliang

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

  [复制链接]
(298697162)

出0入0汤圆

发表于 2011-4-6 22:57:51 | 显示全部楼层
要是矩阵的键盘程序这么容易,那还有什么做不了的啊!
(298691665)

出0入0汤圆

发表于 2011-4-7 00:29:28 | 显示全部楼层
矩阵键盘问题啊~~~~能处理矩阵键盘吗?能处理就是真的牛!
(298664973)

出0入0汤圆

发表于 2011-4-7 07:54:20 | 显示全部楼层
mark
(298660566)

出0入0汤圆

发表于 2011-4-7 09:07:47 | 显示全部楼层
MARK
(298646374)

出0入0汤圆

发表于 2011-4-7 13:04:19 | 显示全部楼层
mark 按键扫描
(298637159)

出0入0汤圆

发表于 2011-4-7 15:37:54 | 显示全部楼层
MARK
(298612463)

出0入0汤圆

发表于 2011-4-7 22:29:30 | 显示全部楼层
mark
(298568782)

出0入0汤圆

发表于 2011-4-8 10:37:31 | 显示全部楼层
while(1)
        {
              if (Intrcnt>20)     // 一直在等,直到20ms时间到
              {
                   Intrcnt="0";
                   break;       // 返回主循环
              }
        }
====================================================================
楼主将上面的代码用于消抖,比较的不好,流程都假死在那里了。
(298551782)

出0入0汤圆

发表于 2011-4-8 15:20:51 | 显示全部楼层
mark 扫描按键
(298544524)

出0入0汤圆

发表于 2011-4-8 17:21:49 | 显示全部楼层
mark
(296140658)

出0入0汤圆

发表于 2011-5-6 13:06:15 | 显示全部楼层
mark,回头仔细研究一下
(296140311)

出0入0汤圆

发表于 2011-5-6 13:12:02 | 显示全部楼层
m
(296137791)

出0入0汤圆

发表于 2011-5-6 13:54:02 | 显示全部楼层
mark
(296136666)

出0入0汤圆

发表于 2011-5-6 14:12:47 | 显示全部楼层
Mark,留待以後再細讀。
(296132933)

出0入0汤圆

发表于 2011-5-6 15:15:00 | 显示全部楼层
keys key ke k                MARK
(296124913)

出0入0汤圆

发表于 2011-5-6 17:28:40 | 显示全部楼层
MARK
(296118270)

出0入10汤圆

发表于 2011-5-6 19:19:23 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------

强!
能用于矩阵键盘吗?
(296117635)

出0入0汤圆

发表于 2011-5-6 19:29:58 | 显示全部楼层
很好用的!
(296110728)

出0入0汤圆

发表于 2011-5-6 21:25:05 | 显示全部楼层
好东西!!改天静下心来好好研究~~
(296104375)

出0入0汤圆

发表于 2011-5-6 23:10:58 | 显示全部楼层
mark
(296103413)

出0入0汤圆

发表于 2011-5-6 23:27:00 | 显示全部楼层
mark
(295924049)

出0入0汤圆

发表于 2011-5-9 01:16:24 | 显示全部楼层
mark
(295877685)

出0入0汤圆

发表于 2011-5-9 14:09:08 | 显示全部楼层
mark
(295876707)

出0入0汤圆

发表于 2011-5-9 14:25:26 | 显示全部楼层
mark!
(295874141)

出0入0汤圆

发表于 2011-5-9 15:08:12 | 显示全部楼层
貌似短键也能激活长键的标记,处理起来还得判断。
(295868998)

出0入0汤圆

发表于 2011-5-9 16:33:55 | 显示全部楼层
先标记 好文
(295850610)

出0入0汤圆

发表于 2011-5-9 21:40:23 | 显示全部楼层
mark
(295787661)

出0入0汤圆

发表于 2011-5-10 15:09:32 | 显示全部楼层
mark
(295784068)

出0入0汤圆

发表于 2011-5-10 16:09:25 | 显示全部楼层
回复【193楼】millwood0
you have a good concept but the code isn't modular enough.
here is what i would recommend:
==========code=============
#include <regx51.h>
#include "gpio.h"
//hardware configuration
#define key_port p2
#define key_port_in p2
#define key_ddr p2
#define key0 (1<<3) //key0 on key_port.3
#define key1 (1<<3) //key1 on key_port.3
#define key2 (1<<3) //key2 on key_port.......
-----------------------------------------------------------------------

大家对millwood0程序没看过么?
我有点疑问,
while (loop--) if (key_read(keys)) return 0x00;
这里就相当于软件延时了。按道理说loop--,单片机执行50次,是很快的。能达到图片中ms级的消抖动么?
(295781565)

出0入0汤圆

发表于 2011-5-10 16:51:08 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------

just mark!
(295769472)

出0入0汤圆

发表于 2011-5-10 20:12:41 | 显示全部楼层
mark ,有空研究下!
(295768103)

出0入0汤圆

发表于 2011-5-10 20:35:30 | 显示全部楼层
mark
(295767796)

出0入0汤圆

发表于 2011-5-10 20:40:37 | 显示全部楼层
简化了一两行代码,没想到还有那么多人对key scan 有兴趣。 不能不说大家无法站在别人的肩膀上工作,当别人为创新或艺术设计时,中国的工程师仍然 所有的事情都想从砖头做起。

模块化,我现在最喜欢的是philips的三角矩阵扫描。
(295723698)

出0入0汤圆

发表于 2011-5-11 08:55:35 | 显示全部楼层
回复【335楼】gmyu
简化了一两行代码,没想到还有那么多人对key scan 有兴趣。 不能不说大家无法站在别人的肩膀上工作,当别人为创新或艺术设计时,中国的工程师仍然 所有的事情都想从砖头做起。
模块化,我现在最喜欢的是philips的三角矩阵扫描。
-----------------------------------------------------------------------

有点意思,“我现在最喜欢的是philips的三角矩阵扫描” 什么东东?
(295679486)

出0入0汤圆

发表于 2011-5-11 21:12:27 | 显示全部楼层
这篇文章确实不错,唯一的瑕疵就在于那个延时去抖,程序居然什么都不做,和死等差不多。
(295672960)

出0入10汤圆

发表于 2011-5-11 23:01:13 | 显示全部楼层
不错!
(295612025)

出0入0汤圆

发表于 2011-5-12 15:56:48 | 显示全部楼层
mk
(295590693)

出0入0汤圆

发表于 2011-5-12 21:52:20 | 显示全部楼层
mmmmmmmmmark
(295539291)

出0入0汤圆

发表于 2011-5-13 12:09:02 | 显示全部楼层
如果不用去抖动,那就神气了.不就是一个异或吧,不用也行啊.代码量在去抖动及完善算法.
(295538932)

出0入0汤圆

发表于 2011-5-13 12:15:01 | 显示全部楼层
以后试试
(295534554)

出0入0汤圆

发表于 2011-5-13 13:27:59 | 显示全部楼层
大巧不工!
(295533389)

出0入0汤圆

发表于 2011-5-13 13:47:24 | 显示全部楼层
去抖动,放到定时器中断中。
void InterruptHandle()    // 中断服务程序
{
    Intrcnt++;          // 1ms 中断1次,可变

    if (Intrcnt >= 20)    //20毫秒调用一次
    {
        Intrcnt = 0;
        KeyRead();      
    }
}
去掉下面的是不是更好。
while(1)  
        {  
              if (Intrcnt > 20)     // 一直在等,直到20ms时间到  
              {  
                   Intrcnt = 0;  
                   break;       // 返回主循环  
              }  
        }
(295531750)

出0入0汤圆

发表于 2011-5-13 14:14:43 | 显示全部楼层
回复【25楼】linghu2 令狐二中
好东西,但是不能用在矩阵的按键上面.
-----------------------------------------------------------------------

是的,好像 是不能用在矩阵上面
(295524179)

出0入0汤圆

发表于 2011-5-13 16:20:54 | 显示全部楼层
回复【345楼】xf331785508  

是的,好像 是不能用在矩阵上面

-----------------------------------------------------------------------

我已经改了一下,可以用在矩阵上面了
(295519037)

出0入0汤圆

发表于 2011-5-13 17:46:36 | 显示全部楼层
标记下先
(295507735)

出0入0汤圆

发表于 2011-5-13 20:54:58 | 显示全部楼层
mark
(295238335)

出0入0汤圆

发表于 2011-5-16 23:44:58 | 显示全部楼层
做记号
(295201009)

出0入0汤圆

发表于 2011-5-17 10:07:04 | 显示全部楼层
学习
(295154251)

出0入0汤圆

发表于 2011-5-17 23:06:22 | 显示全部楼层
收藏
(294913765)

出0入0汤圆

发表于 2011-5-20 17:54:28 | 显示全部楼层
(294667813)

出0入0汤圆

发表于 2011-5-23 14:13:40 | 显示全部楼层
MARK!
(294665798)

出0入0汤圆

发表于 2011-5-23 14:47:15 | 显示全部楼层
这个要MARK,学习。
(294663458)

出50入0汤圆

发表于 2011-5-23 15:26:15 | 显示全部楼层
mark
(294424122)

出0入0汤圆

发表于 2011-5-26 09:55:11 | 显示全部楼层
应该不用吧,短键一松开手就应该会变回没的按按键的状态啦。
(293514562)

出0入0汤圆

发表于 2011-6-5 22:34:31 | 显示全部楼层
记下,留后用
(293496567)

出0入0汤圆

发表于 2011-6-6 03:34:26 | 显示全部楼层
确实不错诶,原理简单的说就是利用异或操作比较本次键值与上次键值,不同(异或产生1)就产生触发位。
触发按下键就表示本次状态与上次状态不同且本次为按下状态的键。
同理还可以定义一个触发弹起位Up,由Up = (~ReadData) & (ReadData ^ Cont);得到本次弹起的按键(本次状态与上次状态不同且本次为未按下状态的键)。
(293427428)

出0入0汤圆

发表于 2011-6-6 22:46:45 | 显示全部楼层
mark
(293346151)

出0入0汤圆

发表于 2011-6-7 21:21:22 | 显示全部楼层
mark
(293342620)

出0入0汤圆

发表于 2011-6-7 22:20:13 | 显示全部楼层
先标记,谢谢了
(293341267)

出0入0汤圆

发表于 2011-6-7 22:42:46 | 显示全部楼层
不错的思路,学习学习!
(293296004)

出0入0汤圆

发表于 2011-6-8 11:17:09 | 显示全部楼层
记下了
(293293346)

出0入0汤圆

发表于 2011-6-8 12:01:27 | 显示全部楼层
MARK
(293289762)

出0入0汤圆

发表于 2011-6-8 13:01:11 | 显示全部楼层
mark
(293288320)

出0入0汤圆

发表于 2011-6-8 13:25:13 | 显示全部楼层
谢谢分享,学习了,真的很不错
(293268537)

出0入0汤圆

发表于 2011-6-8 18:54:56 | 显示全部楼层
mark
(293260940)

出0入0汤圆

发表于 2011-6-8 21:01:33 | 显示全部楼层
不错
(292178590)

出0入0汤圆

发表于 2011-6-21 09:40:43 | 显示全部楼层
mark
(292171248)

出0入0汤圆

发表于 2011-6-21 11:43:05 | 显示全部楼层
顶一个..
(291977521)

出0入0汤圆

发表于 2011-6-23 17:31:52 | 显示全部楼层
真牛!!!!!!!
(291957204)

出0入0汤圆

发表于 2011-6-23 23:10:29 | 显示全部楼层
mark!!!
(291955344)

出0入0汤圆

发表于 2011-6-23 23:41:29 | 显示全部楼层
mark
(291955188)

出0入0汤圆

发表于 2011-6-23 23:44:05 | 显示全部楼层
mark
(291952202)

出0入0汤圆

发表于 2011-6-24 00:33:51 | 显示全部楼层
mark,回头细读
(291948153)

出0入0汤圆

发表于 2011-6-24 01:41:20 | 显示全部楼层
多谢分享
(291919327)

出0入0汤圆

发表于 2011-6-24 09:41:46 | 显示全部楼层
不错,谢谢楼主!不过要是矩阵键盘的话,感觉翻转法就狠简单的
(291633677)

出0入0汤圆

发表于 2011-6-27 17:02:36 | 显示全部楼层
mark
(291621291)

出0入0汤圆

发表于 2011-6-27 20:29:02 | 显示全部楼层
看见过一次!
(291614883)

出0入0汤圆

发表于 2011-6-27 22:15:50 | 显示全部楼层
mark
(291612982)

出0入0汤圆

发表于 2011-6-27 22:47:31 | 显示全部楼层
先留个记号
(291612639)

出0入0汤圆

发表于 2011-6-27 22:53:14 | 显示全部楼层
mark .回头仔细看
(291573380)

出0入0汤圆

发表于 2011-6-28 09:47:33 | 显示全部楼层
mark
(291301587)

出0入0汤圆

发表于 2011-7-1 13:17:26 | 显示全部楼层
mark
(291198983)

出0入0汤圆

发表于 2011-7-2 17:47:30 | 显示全部楼层
mark
(291198108)

出0入0汤圆

发表于 2011-7-2 18:02:05 | 显示全部楼层
思路不错,得好好看
(291179165)

出0入0汤圆

发表于 2011-7-2 23:17:48 | 显示全部楼层
留着,以后用到的时候看
(291170995)

出0入0汤圆

发表于 2011-7-3 01:33:58 | 显示全部楼层
不错,谢谢分享!
(291140188)

出0入0汤圆

发表于 2011-7-3 10:07:25 | 显示全部楼层
谢谢楼主分享!
(291136769)

出0入0汤圆

发表于 2011-7-3 11:04:24 | 显示全部楼层
mark!
(291136191)

出0入0汤圆

发表于 2011-7-3 11:14:02 | 显示全部楼层
mark一下待查。
(291126654)

出0入0汤圆

发表于 2011-7-3 13:52:59 | 显示全部楼层
记号下,好方法,谢谢.
(291125259)

出0入0汤圆

发表于 2011-7-3 14:16:14 | 显示全部楼层
MARK
(291120341)

出0入0汤圆

发表于 2011-7-3 15:38:12 | 显示全部楼层
mark
(291096627)

出0入0汤圆

发表于 2011-7-3 22:13:26 | 显示全部楼层
呵呵,标题写得很大、、
(291093174)

出0入0汤圆

发表于 2011-7-3 23:10:59 | 显示全部楼层
mark!
(291049884)

出0入0汤圆

发表于 2011-7-4 11:12:29 | 显示全部楼层
xuexi!
(291030573)

出0入0汤圆

发表于 2011-7-4 16:34:20 | 显示全部楼层
还不错。。感觉有缺陷。。防抖的问题。。
(291025638)

出0入0汤圆

发表于 2011-7-4 17:56:35 | 显示全部楼层
MARK
(291025360)

出0入0汤圆

发表于 2011-7-4 18:01:13 | 显示全部楼层
学习
(291024802)

出0入0汤圆

发表于 2011-7-4 18:10:31 | 显示全部楼层
回复【楼主位】zhuhanliang
-----------------------------------------------------------------------

菜鸟受教
(291023022)

出0入0汤圆

发表于 2011-7-4 18:40:11 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-9-23 02:23

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

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