很牛的键盘电路。

[复制链接]
17925|94
chen611b 发表于 2008-12-24 09:02 | 显示全部楼层

在多键时不划算

键超过30个时,就不划算了,二极管电阻加太多了,按键板分开时,还不好布板。还不如用块164,六IO也能扩个32个键,程序又简单又可靠
cj_win 发表于 2008-12-24 10:27 | 显示全部楼层

学习了

dingyi868 发表于 2008-12-24 12:10 | 显示全部楼层

真的

都很牛,呵呵
还我今生 发表于 2008-12-24 15:27 | 显示全部楼层

一个带ADC的IO口 可以做上百个键盘啊 不过采样要精确

r051463438 发表于 2008-12-24 23:01 | 显示全部楼层

回复主题:很牛的键盘电路

原来还可以这样用呀,高
hkap 发表于 2008-12-25 10:14 | 显示全部楼层

用164或595只需三根线,按键数量随意扩展,程序也简单

ljm810010 发表于 2008-12-25 10:36 | 显示全部楼层

用164或595只需两根线,按键数量随意扩展,程序也简单

LFSLY 发表于 2008-12-25 13:17 | 显示全部楼层

用一个AD口可做十多个键呢

用一个AD口可做十多个键呢
nuoyifei 发表于 2008-12-25 14:01 | 显示全部楼层

是很牛!!!

不过我现在连普通矩阵都没太明白呢,将来一定做出公的,O(∩_∩)O哈哈~
fanglin06 发表于 2008-12-25 16:49 | 显示全部楼层

有必要吗

发那么大代价目``做这么个键盘```值吗
我想最多用塔式键盘就足够了吧```
bobo1 发表于 2008-12-25 18:26 | 显示全部楼层

要是改下该多么好玩啊

a80555754 发表于 2008-12-25 23:40 | 显示全部楼层

 xwj
这位仁兄谁啊!什么盗用的我照片做签名~~有点不厚道哦
xwj 发表于 2008-12-26 00:43 | 显示全部楼层
qq51886469 发表于 2008-12-27 11:17 | 显示全部楼层

re

18L有钱人!
几块钱。。。都不当回事。。。有军工风格!呵呵
allenone 发表于 2008-12-28 18:44 | 显示全部楼层

同意楼上观点

觉得成本主要在软件开发上,硬件的功能通过软件实现会导致软件复杂度增大,可靠性降低。
tankebing 发表于 2008-12-29 01:16 | 显示全部楼层

学习了

牛人真多
blx13579 发表于 2008-12-29 14:30 | 显示全部楼层

好东东啊.

省了不少口线.真好..
草履虫 发表于 2008-12-31 00:25 | 显示全部楼层

这个东西早就用过了。

除了这个电路外,还真没有见过用更少的I/O做这么多键盘的方案(除了借助芯片外),有人说能做,其实细细推敲,基本上都不成立。
code const byte KEY_VALUE[16]     = {0x0c,0x0a,0x06,0x0c,0x09,0x05,0x0a,0x09,0x03,0x06,0x05,0x03,0x0e,0x0d,0x0b,0x07};
code const byte KEY_CTRL[16]     = {0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f};
    
    byte bTmp,bDataNum,bTmp2;
    bDataNum = 16;
    do{
        bTmp = P2 & 0xf0;
        bTmp2 = KEY_CTRL[bDataNum-1];
        P2 = bTmp | bTmp2 ;
        vTimeDelay01ms();
        bTmp = P2 & bTmp2;
        if(bTmp == KEY_VALUE[bDataNum-1]) goto KEYPRESS;
    }while(--bDataNum);
    KEYPRESS:
if(bDataNum) {
说明有键值,进行处理

         else {
说明没有键值处理


不过,这个电路最好是在每个管脚上加去耦电容,增加硬件的抗干扰。
xullin 发表于 2009-1-9 13:38 | 显示全部楼层

....

 耕在此行 发表于 2008-12-15 17:34 侃单片机 ←返回版面    

20楼: 个人认为 

还是用矩阵式省力。大不了用IO多些的 

-------
你牛B,单片机一般能有多少口啊,都让你接按键了。。。
 
lininglive 发表于 2009-1-9 18:17 | 显示全部楼层

用ADC就可以了

不过软件上比较麻烦吧!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部