打印

很牛的键盘电路。

[复制链接]
楼主: 耕在此行
手机看帖
扫描二维码
随时随地手机跟帖
61
chen611b| | 2008-12-24 09:02 | 只看该作者 回帖奖励 |倒序浏览

在多键时不划算

键超过30个时,就不划算了,二极管电阻加太多了,按键板分开时,还不好布板。还不如用块164,六IO也能扩个32个键,程序又简单又可靠

使用特权

评论回复
62
cj_win| | 2008-12-24 10:27 | 只看该作者

学习了

使用特权

评论回复
63
dingyi868| | 2008-12-24 12:10 | 只看该作者

真的

都很牛,呵呵

使用特权

评论回复
64
还我今生| | 2008-12-24 15:27 | 只看该作者

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

使用特权

评论回复
65
r051463438| | 2008-12-24 23:01 | 只看该作者

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

原来还可以这样用呀,高

使用特权

评论回复
66
hkap| | 2008-12-25 10:14 | 只看该作者

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

使用特权

评论回复
67
ljm810010| | 2008-12-25 10:36 | 只看该作者

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

使用特权

评论回复
68
LFSLY| | 2008-12-25 13:17 | 只看该作者

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

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

使用特权

评论回复
69
nuoyifei| | 2008-12-25 14:01 | 只看该作者

是很牛!!!

不过我现在连普通矩阵都没太明白呢,将来一定做出公的,O(∩_∩)O哈哈~

使用特权

评论回复
70
fanglin06| | 2008-12-25 16:49 | 只看该作者

有必要吗

发那么大代价目``做这么个键盘```值吗
我想最多用塔式键盘就足够了吧```

使用特权

评论回复
71
bobo1| | 2008-12-25 18:26 | 只看该作者

要是改下该多么好玩啊

使用特权

评论回复
72
a80555754| | 2008-12-25 23:40 | 只看该作者

 xwj
这位仁兄谁啊!什么盗用的我照片做签名~~有点不厚道哦

使用特权

评论回复
73
xwj| | 2008-12-26 00:43 | 只看该作者
74
qq51886469| | 2008-12-27 11:17 | 只看该作者

re

18L有钱人!
几块钱。。。都不当回事。。。有军工风格!呵呵

使用特权

评论回复
75
allenone| | 2008-12-28 18:44 | 只看该作者

同意楼上观点

觉得成本主要在软件开发上,硬件的功能通过软件实现会导致软件复杂度增大,可靠性降低。

使用特权

评论回复
76
tankebing| | 2008-12-29 01:16 | 只看该作者

学习了

牛人真多

使用特权

评论回复
77
blx13579| | 2008-12-29 14:30 | 只看该作者

好东东啊.

省了不少口线.真好..

使用特权

评论回复
78
草履虫| | 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 {
说明没有键值处理


不过,这个电路最好是在每个管脚上加去耦电容,增加硬件的抗干扰。

使用特权

评论回复
79
xullin| | 2009-1-9 13:38 | 只看该作者

....

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

20楼: 个人认为 

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

-------
你牛B,单片机一般能有多少口啊,都让你接按键了。。。
 

使用特权

评论回复
80
lininglive| | 2009-1-9 18:17 | 只看该作者

用ADC就可以了

不过软件上比较麻烦吧!

使用特权

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

本版积分规则