工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->微机单片机电路图->单片机综合电路图->单个I/O口实现多按键输入

单个I/O口实现多按键输入

作者:dolphin时间:2011-05-05

在单片机应用中,经常要用到按键输入,在有较多按键输入的情况下,通常会使用矩阵式扫描方法来完成,例如对于16个按键输入的场合,会使用4×4矩阵键盘,这需要占用较多的I/O口(如8个),而对于单片机来说,其I/O口资源非常有限,当I/O口资源紧缺时,只好选用成本更高的具有更多I/O口的单片机来使用,本文介绍一种只用一个或两个I/O口实现多按键输入的方法。
对于使用一个I/O口来实现多按键输入,有个前提条件,就是这个I/O口具有A/D转换功能,只要使不同的键按下时,A/D转换输人端的电压不同,就可识别出所按的键,其电路如下图所示。

在无键按下时,I/O口端电压为电源电压Vcc,当S1键按下时,I/O口端电压最低,是电阻R1和R2的分压,当S2键按下时,I/O口端电压变高,是电阻R1和(R2+R3)的分压,同理,当S3、S4按下时,电压会更高,通过对该I/O口的A/D转换值的大小进行判断,就可以得知所按下的哪一个键。
图中只列出了4个按键的例子,在实际使用中,适当调整电阻值,可使按键数增加很多,在8位A/D转换中,按键数甚至达到上百个。
对于无A/D转换功能的单片机,可通过使用2个I/O口达到以上同样的功能


关键词: 单个 实现 按键 输入

评论

技术专区