[STM32模拟电路] 2009-04-29 08:48 我来说两句  

4个普通的GPIO,最多可以接多少按键?已有答案,继续讨论中。

4个普通的GPIO,最多可以接多少按键?

条件1:普通,非ADC,非通讯。
条件2:除了电阻,其它的都不可以加(比如二级管等等)。
条件3:速度不可太慢,最多扫描三次。

需要说出理由,和简单的电路示意图。

本次火锅充电器使用的键盘电路,此电路同样适合AVR等8位芯片。
4个IO,10个按键。
原理是:
1),K1,K2,K3,K4全置输入模式,由外部上拉,读取”up,down,left,right",这四个键。
2),K1,K2,K3,K4,顺序输出低电平,而非输出的IO,还是置为输入不变,这样可读到相对应的键,共六个键。

这样做的好处是,有四个优先键,和六个扩展键。

从我发的图中来分析,
第一次扫描:K1~K4 全置输入状态,读取独立键,如果有独立键按下的话,对应的IO口会被拉低。
第二次扫描:K4输出低电平,扫读K1,K2,K3,这样可以读出其中三个扩展键。
第三次扫描:K3输出低电平,扫读K1,K2,这样可以读出其中二个扩展键。
第四次(不知道算不算扫描):K2输出低电平,直接判断K1是否为低,这样可以读出最后一个扩展键。

所以:不加最后一条的话,就一共是 4+3+2,共9个按键。
加个最后一个直读的,就是10个按键了。

不过,不知道我的题目有没有出错或者是误解的地方,还请大家包涵。