搜索
bottom↓
回复: 252

AVR的3个I/O到底能识别出多少个键?3个?16个?26个?29个?42个?……简直就是无底洞【恢复】

  [复制链接]

出0入0汤圆

发表于 2008-10-12 12:44:23 | 显示全部楼层 |阅读模式
以下均为h2feo4原创



我上次曾经发过一个帖子从理论上讨论这个问题 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1563031&bbs_page_no=1&search_mode=3&search_text=h2feo4&bbs_id=9999

昨天天做了块板子验证一下,编了一小段程序,按了几下,发现很不稳定,后来改了几只电阻,稳定问题解决了,又发现手摸到导线会引起误判,软件上稍稍加了两句,解决了。

我本以为这个键盘不能识别出多键同时按下,经过仔细尝试,却发现至少能识别出16组多键情况,从中分出三个可以单独是别的单独做了一块小板,剩下的十三个可以用双刀开关,模拟两个键同时按下,时差靠软件吃掉,这样就可以识别42个独立的键了。

这个键盘我之前的理论上需要8个I/O周期才能识别26个键,现在只用5个I/O周期就识别出了42个,现在仔细想想好像还有很大的潜力呢,现在只用了20个周期中的前5个而已……

简单介绍我的程序,目前有对29个键的译码,大键盘是A-Z,小键盘是0-2

用M16的PB0-2接键盘,UART把结果发送出去,用串口助手观看,时钟是内部8MHz



第一轮扫描,先对分布电容放电,然后所有引脚置为输入,关闭内部上拉,靠外部高阻下拉,第一排的7个键通过低值上拉电阻和二极管编码器对三根线进行选择性拉高,000表示没有键按下,剩下7种状态与7个键一一对应,如果第一轮没有键按下,则进入第二轮



第二轮扫描,先对分布电容放电,然后所有引脚置为输入,打开内部上拉,因为AVR内部上拉电阻远小于200K,所以外部的下拉电阻即失去作用,读取键值111为没有键按下,其余7种状态与第三排的7个键一一对应,如果第二轮没有键按下,则进入第三轮



第三轮扫描,先对分布电容放电,然后拉低PB0,其余引脚置为输入,打开内部上拉,读取PB1和PB2的值,存进缓冲



第四轮扫描,先对分布电容放电,然后拉低PB1,其余引脚置为输入,打开内部上拉,读取PB0和PB2的值,左移三位存进缓冲



第五轮扫描,先对分布电容放电,然后拉低PB2,其余引脚置为输入,打开内部上拉,读取PB0和PB1的值,左移六位存进缓冲



缓冲区第0,4,8位恒为1,所以可以忽略,有效值只有六位

然后判断其中的值,已发现28种状态

其中有15种状态已证实可以用普通单刀单掷开关实现,其余13种状态至少可以通过双刀单掷开关靠模拟两个键同时按下来实现

这样就已经有42个独立的键了

其余的扫描还没有进行,例如同时拉低两个I/O,只打开部分I/O的上拉,强制拉高等等估计总共有20种或者更多,应该还能识别出更多的键的



简单介绍一下我的键盘布局和命名方式

一下r,s,t均代表{0,1,2}中的一个数,且互不相等



键 r-s  表示PBr与PBs之间有一个键

键 r<s  表示PBr与PBs之间有一个键,还串一个二极管,符号的朝向是二极管的负极

键 rs<t 表示PBr,PBs与PBt之间有一个键,PBr和PBs各串一个二极管后接到开关一侧,方向同符号方向,PBt接开关另一侧

键 r<st 表示PBr与PBs,PBt之间有一个键,PBs和PBt各串一个二极管后接到开关一侧,方向同符号方向,PBr接开关另一侧

键 V>r  表示Vcc与PBr有一个键,还串一个二极管,方向同符号方向

键 G<r  表示GND与PBr有一个键,还串一个二极管,方向同符号方向



大键盘布局:

第一排:V>012   V>12    V>02    V>01    V>2     V>1     V>0

第二排:    12<0    02<1    01<2    2<01    1<02    0<12

第三排:G<0     G<1     G<2     G<01    G<02    G<12    G<012

第四排:    1<0     2<1     0<2     2<0     1<2     0<1

小键盘布局:0-1     0-2     1-2



先这样,放程序,电路图,照片(最可恨的是某X在我的相机镜头上留下一个大手印,照片上都看得很明显)

PCB是精心布局的,不知道各位觉得如何



 (原文件名:P1012547_.JPG) 





 (原文件名:P1012554_.JPG) 





 (原文件名:AVR_N3.JPG) 



点击此处下载 ourdev_449453.rar(文件大小:12K) (原文件名:Super_Scan_Key_A3C1.rar) 

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出50入0汤圆

发表于 2008-10-12 12:54:52 | 显示全部楼层
强帖留名。。顺便沙发。

出0入0汤圆

发表于 2008-10-12 13:26:18 | 显示全部楼层
hfqd

出0入0汤圆

发表于 2008-10-12 13:30:33 | 显示全部楼层
强贴!!!

出0入0汤圆

发表于 2008-10-12 13:33:04 | 显示全部楼层
好贴。

出0入0汤圆

 楼主| 发表于 2008-10-12 13:33:07 | 显示全部楼层
刚才经过思考,为了提高稳定性,降低功耗以及对未来可能的强制拉高扫描进行兼容,我在GND上串了一只1K电阻。

刚才也进行了另外一项测试,即使所有键同时按下,系统仍正常工作。

出0入0汤圆

 楼主| 发表于 2008-10-12 14:09:20 | 显示全部楼层
补一下电路图的源文件

点击此处下载 ourdev_449530.rar(文件大小:14K) (原文件名:AVR_N3.rar) 

出0入0汤圆

发表于 2008-10-12 15:00:01 | 显示全部楼层
特喜欢这种创意酷帖!

出0入0汤圆

发表于 2008-10-12 17:52:23 | 显示全部楼层

出0入10汤圆

发表于 2008-10-12 22:16:57 | 显示全部楼层
请教:

   LZ,这种方法是否是这样一个思想:在口线拉低的时候读是否为高,而在口线为高的时候去读口线是否为低?

出0入0汤圆

发表于 2008-10-13 08:45:07 | 显示全部楼层
我顶,真是强!

出0入0汤圆

发表于 2008-10-13 09:04:34 | 显示全部楼层
用它的adc口做ad转换不是一个口就可以识别256键以上了吗,当然不支持多键同按,直接嵌个PS2协议,买个20键小键盘就更省事了

出0入0汤圆

 楼主| 发表于 2008-10-13 11:36:44 | 显示全部楼层
to 9楼

就是这样的,因为引脚只能读入两种状态,0或1,所以要靠复用输出状态来增加可识别键的数量,拉低读一次,拉高读一次,弱上拉读一次,高阻读一次,这样就能把一个I/O复用接近4次了



to 11楼

一个口识别256键要用ADC吗?显然一个普通I/O就足够了,具体方法我以后会发。本文讨论的只是一种复用的技术,做实际产品来说您尽可以用现成的成熟键盘方案,但是在我看来,对于很多的爱好者来说,精心巧妙的设计,比花钱买个键盘更有价值。

出0入0汤圆

发表于 2008-10-18 22:58:03 | 显示全部楼层
楼主:

简单介绍我的程序,目前有对29个键的译码,大键盘是A-Z,小键盘是0-2

用M16的PB0-2接键盘,UART把结果发送出去,用串口助手观看,时钟是内部8MHz

=-----------------------------------------------------------------------------------------------------------------------



1)为什么要通过UART送出去。

2)可否画一个简单的图如两IO的,3IO的也可以,但不一定要将所有的画出,因为太多了理解困难。将读键盘的过程详细一些。

如果明白了我会验证一下。如果证实了,我建议用你的名字来命名这种读键的方法。

出0入0汤圆

 楼主| 发表于 2008-10-19 09:04:58 | 显示全部楼层
to 14楼

1-用UART发送是为了便于调试和观看结果,实际使用中没有必要

2-好吧,稍后我画个两I/O的图,拆开一步一步讲解

出0入0汤圆

发表于 2008-10-19 12:41:57 | 显示全部楼层
学习。。

出0入10汤圆

发表于 2008-10-19 13:02:39 | 显示全部楼层
强贴啊,很有钻研精神

出0入0汤圆

发表于 2008-10-19 13:09:28 | 显示全部楼层
厉害呀,你是不是考虑申请下专利?

出0入0汤圆

 楼主| 发表于 2008-10-20 20:30:52 | 显示全部楼层
超级扫描键盘方案今天已经更新,在功能和键数量不变的情况下简化电路,减少二极管用量,新样机正在布局布线中,敬请期待~~

出0入0汤圆

发表于 2008-10-21 01:04:34 | 显示全部楼层
很强大啊。

出0入0汤圆

发表于 2008-10-21 08:00:07 | 显示全部楼层
学习了……

出0入0汤圆

发表于 2008-10-21 13:36:03 | 显示全部楼层
不错,以前真的没有想到啊

出0入0汤圆

发表于 2008-10-21 13:43:51 | 显示全部楼层
有没有办法让器件最少,最可靠,能实现足够多按键就可以了



比如3线实现8个键

出0入0汤圆

 楼主| 发表于 2008-10-21 13:48:42 | 显示全部楼层
to 23楼

2个I/O就可以识别9个键,只需4只二极管个几个电阻,我正在做样机,一旦通过验证就会发上来

另外本贴中原来提到的3个I/O扫描29个键也可以用更少的连线和二极管实现,昨天我的理论已经有了新进展

本贴被 h2feo4 编辑过,最后修改时间:2008-10-21,13:50:31.

出0入0汤圆

发表于 2008-10-21 14:12:30 | 显示全部楼层
强啊 

出0入0汤圆

发表于 2008-10-21 14:58:00 | 显示全部楼层
这个方法不可取,在产品中易产生错误。比如,S1 S2同时按下会等于S4,不过思路还是好的,对于有方向性的MCU有用,51就不行了。。

可以按思路缩小范围都是一种不错的效果了。

出0入0汤圆

发表于 2008-10-21 15:06:50 | 显示全部楼层
不错!!!谢谢

出0入0汤圆

发表于 2008-10-21 15:11:57 | 显示全部楼层
to 26 楼:

这个都不是重要的问题,这在乎使用者的如何使用。



至于51上不能使用,也没有问题。不在其上使用就是了。



期盼新的方案出来。

说实在的,能用少的IO,实现常用的按键如12,16键等,也已经很好。

出0入0汤圆

发表于 2008-10-21 15:44:39 | 显示全部楼层
16的3IO可以做到,我们已经有产品用了。



To 28 楼:

我们的要求是所有的操作不能产生错误的动作,否则,你一个产品概念多好都是失败的。多按键我都研究过一会,感觉比较稳定的是3IO做到18个KEYs,原则同LZ的差不多,都是IO复用,不过我们只有用单IO,即是没用到2个IO共同输出的情况。

出0入0汤圆

 楼主| 发表于 2008-10-21 16:22:43 | 显示全部楼层
to 26楼

可取不可取要看工作环境的要求,我只是讨论一种方法,而不是做产品,而且29键的情况下一般是有办法解决多键同时按下的误判的

另外51单片机当然也可以用,只不过能识别的键数稍少一点,目前我能做到2个I/O识别6个键,3个I/O识别22个键,我在 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1563031&bbs_page_no=1&search_mode=3&search_text=h2feo4&bbs_id=9999 中已经详细讨论了怎么让51单片机使用



to 29楼

您是专业人士,而我只是爱好者,我写的东西面对的也仅仅是爱好者,对于广大的爱好者来说,很多时候用较低的成本实现较多的功能,比可靠性更重要



另,我的新键盘已经完工:2个I/O,4只二极管,4只电阻(也可能会有5只),9个键,正在测试中,完成全部测试之后将立即发表

本贴被 h2feo4 编辑过,最后修改时间:2008-10-21,16:27:53.

出0入0汤圆

发表于 2008-10-21 22:57:32 | 显示全部楼层
to 29  楼:

如果你不接上S4不就是没有失误呢。或者,同按下所S2,S1,安排与S4同一个功能,不也是同样可以用得很好。

我没有详细研究,要等新的方案出来才能评价。

出300入0汤圆

发表于 2008-10-22 00:35:16 | 显示全部楼层
暂时没见过这么bt的,不过有用,mark

出0入0汤圆

发表于 2008-10-22 10:43:29 | 显示全部楼层
对楼主的焊功和技术功底由衷的敬佩,最近想焊一个16X64的点阵,请教一下楼主用的什么样的电烙铁,那些飞线是从哪儿找来的?

出0入0汤圆

 楼主| 发表于 2008-10-22 12:35:18 | 显示全部楼层
to 33楼

烙铁,5块钱一把的35W内热式或者8块钱一把的30W外热式,除非焊的非常密(间距0.3mm以下)否则我都会用45度的斜面烙铁头。焊锡当初用的是极烂的某种,如果你用amork卖的进口焊锡,肯定可以焊的比我漂亮多了。所需最贵的装备算是一把15块钱的镊子了,关键是硬度要足够。



至于导线,首选电话配线柜用的那种单芯跳线,芯径0.5mm已镀锡。次选0.5mm的漆包线刮掉漆皮镀锡,再次选网线镀锡,再再次选二极管的管脚,再再再次选电阻的管脚。本贴中的那两块板子就是全部用1N4148的管脚布线的。



板间的飞线是杜邦线,一部分是早年间自己做的,一部分是街边买的,一部分是从armok那里买的。

出0入0汤圆

发表于 2008-10-23 11:42:48 | 显示全部楼层
谢谢楼主详尽的回复,由于我现在只会用51,没研究到你这样的深度,所以没有什么可以和你交流,而只能向你请教一些基础问题。

说起电烙铁,真的是很无奈,算起来,我用电烙铁的历史也差不多有十年了,但现在也还没有一把让我满意的,市面上容易买到的国产的都很垃圾,几十块钱的所谓长寿电烙铁,我用不到两回烙铁头就烧死了上不了锡。反而是几块钱的有斜面的烙铁可以用一段时间,我的焊锡丝也比较烂,但是焊点远没有你的光洁,饱满,明亮,所以我才问了上面的那些问题,现在看来还是我的焊接技术问题。另外,我也比较喜欢用镊子。我自己动手用洞洞板焊过一些小板子,导线用的也是网线和元件的引脚,但是保留了胶皮没有镀锡,也没有像你这样架空,这样胶皮往往被烫坏了,线的分布也比较零乱,整个板子看起来很不舒服。

出0入0汤圆

 楼主| 发表于 2008-10-23 15:15:24 | 显示全部楼层
今天中午的实验证实2个I/O至少可以识别14个键,实测其中至少有9个可以用单刀单掷开关完成,用了4只二极管和6只电阻,而且发现如果改进电路能识别出更多的,晚些时候贴上来。真的是无底洞啊……

本贴被 h2feo4 编辑过,最后修改时间:2008-10-23,17:55:21.

出0入0汤圆

 楼主| 发表于 2008-10-23 18:12:28 | 显示全部楼层
新键盘测试完成,上照片,原理图

两个I/O,9个键

对于51单片机来说,不用装所有的电阻和第一排的三个键,也不用VCC接线

每行的三个键中,如果两边的键同时按下会判定为中间那个按下,所以如果要求所有组合键都不会导致误判,不要装中间那列就行了

板子上的电容是直接接在VCC与GND之间的,与键盘功能无关

程序用本贴楼主位所提供的程序就行



 (原文件名:P1012566_.JPG) 





 (原文件名:P1012569_.JPG) 





 (原文件名:P1012576_.JPG) 





 (原文件名:P1012574_.JPG) 

本贴被 h2feo4 编辑过,最后修改时间:2008-10-23,18:14:35.

出0入0汤圆

发表于 2008-11-8 00:59:21 | 显示全部楼层
不错,终于有实用价值的2线多键了

出0入46汤圆

发表于 2008-12-29 19:06:32 | 显示全部楼层
强!

出0入0汤圆

发表于 2008-12-29 19:21:35 | 显示全部楼层
不错。

出0入0汤圆

发表于 2008-12-29 21:27:18 | 显示全部楼层
非常佩服楼主的创新精神。研究思路的价值大于实用的价值。赞一个。



如果是我的话就用最便宜的CPLD并串转换,两根线也可以得到所有按键状态,也蛮可靠的。



我敢妄下定论,21世纪是串行的世纪。

出0入0汤圆

发表于 2008-12-30 01:01:06 | 显示全部楼层
mark一下

出0入25汤圆

发表于 2008-12-30 01:41:45 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2008-12-31 10:00:44 | 显示全部楼层
有创意

出0入0汤圆

发表于 2008-12-31 11:42:52 | 显示全部楼层
支持多少是一码事,麻烦不麻烦,好使不好使,那是另一码事。

出0入0汤圆

发表于 2008-12-31 12:31:59 | 显示全部楼层
楼主想象力很好 ,有创意 .  我要是3IO 识别多键就用74165级连

出0入0汤圆

发表于 2008-12-31 13:01:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2008-12-31 15:09:55 | 显示全部楼层
好东西,,顶起,有空要试一下!

出0入0汤圆

 楼主| 发表于 2008-12-31 16:01:35 | 显示全部楼层
这个东西后来又做了一些研究,理论上:

N个IO可以识别至少(N^4+N^2)个键,但不支持多键同时按下

N个IO可以识别至少(N^2)个键,支持任意多键同时按下

已经做了N=4的样机,还没测试

出0入0汤圆

发表于 2009-1-4 14:45:44 | 显示全部楼层
好象有点意思哦...有空了研究一下

出0入0汤圆

发表于 2009-1-4 15:02:03 | 显示全部楼层
一直没有时间来研究



记下楼主

出0入0汤圆

发表于 2009-1-4 15:20:07 | 显示全部楼层
潜力帖,mark下

出0入0汤圆

发表于 2009-1-4 16:06:35 | 显示全部楼层
弓虽

出0入0汤圆

发表于 2009-1-4 16:15:24 | 显示全部楼层
学习了!~

出0入0汤圆

发表于 2009-1-11 09:51:18 | 显示全部楼层
强!顶!另外小声问一下,本论坛支持个人收藏这些强帖么?

出0入0汤圆

发表于 2009-1-11 10:46:54 | 显示全部楼层
我在深圳面试的时候有一个工程师问了我一个问题,就是用三个I/O口最多能加多少个按键,不能用自身AD,以及外部多余的器件

就用三个IO口。呵呵

出0入0汤圆

 楼主| 发表于 2009-1-11 11:46:30 | 显示全部楼层
to 【56楼】 mfkqqw

不使用任何外围元件,只使用单刀单掷开关的话,不少于6个吧

如果允许使用双刀单掷开关的话,不少于10个吧,如果能使用三刀单掷开关的话不少于11个

这些都是不支持多键同时按下的

要求支持的话估计不少于3个

以上仅限于有内部上拉或下拉的单片机

如果允许用电阻、二极管等无源器件,那么AVR单片机基本上N个IO可以识别至少(N^4+N^2)个键(不支持多键同时按下),或者至少(N^2)个键(支持任意多键同时按下)

如果允许使用电容、电感等记忆性器件,基本上1个IO可以识别任意多键

本贴被 h2feo4 编辑过,最后修改时间:2009-01-11,12:10:08.

出0入0汤圆

发表于 2009-1-26 00:13:59 | 显示全部楼层
学习了!

收藏 :)

出0入0汤圆

发表于 2009-1-28 14:26:40 | 显示全部楼层
怎么收藏的??学习中

出0入0汤圆

发表于 2009-2-1 19:03:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-2-3 01:09:16 | 显示全部楼层
强!!!

出0入0汤圆

发表于 2009-7-28 17:01:19 | 显示全部楼层
楼主善于“演绎”
我来“归纳”一下:

举例子3个IO口简单一点:
三个IO共有3^2种不同的输入,
三个IO同时又有3^2种不同的输出,假设某种外围电路,能够实现每一种输出的情况下,在某个键按下后,回送给IO口3^2种不同的电平状态,这个时候再读入,则可以实现3^2*3^2=3^4个不同的按键。
至于楼主所说“N个IO可以识别至少(N^4+N^2)个键,……”是因为还可以把“电源”“地”作为“输出”,IO口直接读这两者的输出结果。

诚如楼主所述,如果在外围电路中加入“记忆元件”则按键可趋于无穷。
过程如下:(假设都是单键按下)
1、N维IO口向量直接读取外围网络的输入,可判断N^2个按键的“可能”(包括没有按键按下)(这个时候可以将电源地看做广义的输出)。
2、IO口向量输出N^2种不同的向量值之一,又可以读到N^2个按键的“可能”(包括在这种输出下,扫不到按下键的那个状态),总共就有N^4种按键的可能。
3、那么自然可以联想到:IO口多次输出向量,与外围的记忆网络进行交互,则按键可趋于无穷了。

出0入10汤圆

发表于 2009-8-1 10:27:18 | 显示全部楼层
留名

出0入0汤圆

发表于 2009-8-1 13:39:06 | 显示全部楼层
收藏,留名.

出0入0汤圆

发表于 2009-8-6 10:06:50 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-9-8 14:27:27 | 显示全部楼层
mark 牛!

出0入0汤圆

发表于 2009-9-9 15:02:52 | 显示全部楼层
不错 灵活

出0入0汤圆

发表于 2009-9-9 16:49:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-9-9 22:03:59 | 显示全部楼层
收藏先。

出0入0汤圆

发表于 2009-9-9 22:06:31 | 显示全部楼层
mark 下

出0入0汤圆

发表于 2009-9-10 14:44:58 | 显示全部楼层
标记,很牛的贴啊!

出0入0汤圆

发表于 2009-9-10 16:20:05 | 显示全部楼层
学习贴!

出0入0汤圆

发表于 2009-9-10 16:42:50 | 显示全部楼层
马克

出0入0汤圆

发表于 2009-10-12 15:23:35 | 显示全部楼层
顶LZ
mark

出0入0汤圆

发表于 2009-10-12 15:53:56 | 显示全部楼层
强帖

出0入0汤圆

发表于 2009-11-11 16:28:50 | 显示全部楼层
厉害

出0入0汤圆

发表于 2009-11-11 18:04:00 | 显示全部楼层
标记。

出0入0汤圆

发表于 2009-11-11 18:56:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-11 21:48:23 | 显示全部楼层

出0入0汤圆

发表于 2009-11-19 18:56:40 | 显示全部楼层
楼主可否把原理图转成PDF档,我的ORCAD看不了,郁闷的了!!!

出0入0汤圆

发表于 2009-11-19 20:14:12 | 显示全部楼层
mark..

出0入0汤圆

发表于 2009-11-19 22:38:41 | 显示全部楼层
厉害 佩服

出0入0汤圆

发表于 2009-11-24 11:42:31 | 显示全部楼层
强贴!!!

出0入0汤圆

发表于 2009-11-30 20:32:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-1 00:15:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-1 00:21:08 | 显示全部楼层
Mark!!

出0入0汤圆

发表于 2009-12-1 10:33:02 | 显示全部楼层
强贴!!!

出0入0汤圆

发表于 2009-12-2 09:50:14 | 显示全部楼层
qiang

出0入0汤圆

发表于 2009-12-2 10:47:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-2 10:58:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-8 19:51:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-8 20:00:33 | 显示全部楼层
Mark学习

出0入0汤圆

发表于 2009-12-10 20:30:36 | 显示全部楼层
学习之中…………

出0入0汤圆

发表于 2009-12-14 14:39:32 | 显示全部楼层
cool

出0入0汤圆

发表于 2009-12-14 15:18:26 | 显示全部楼层
留名

出0入0汤圆

发表于 2009-12-15 03:10:13 | 显示全部楼层
这样到后面不久变成类似电脑的键盘了?
同时拉低两个I/O,只打开部分I/O的上拉,强制拉高等等估计总共有20种或者更多
这样就能扫出20多种。


这样的话就有3的20次方种键盘位了。

而键盘不就是读取按键的情况然后编码发送到计算机的串口。比如向USB口发送0000 0000代表什么都没有按下0000 0001代表A,0000 0010代表B……………………

出0入0汤圆

发表于 2009-12-17 11:01:55 | 显示全部楼层
牛人啊

出0入0汤圆

发表于 2009-12-17 14:58:13 | 显示全部楼层
牛!顶!!

出0入0汤圆

发表于 2009-12-17 15:15:03 | 显示全部楼层
xuexi

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-3-28 17:50

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

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