如何实现单片机用一个I/O采集多个按键信号 使用模数转换(ADC)的特点就可以实现单片机用一个I/O采集多个按键信号。 一、单片机的I/O口检测按键简说 我们知道,一般情况下单片机的一个I/O口作为普通I/O口的话,只能检测识别一个按键。 日常设计中,如果碰到按键数量较多的话,会采用行列式键盘,例如最常见的4X4矩阵键盘,这样可以实现用8个I/O口检测16个按键。 还有就是键盘接口,典型的是我们计算机上用的键盘,其采用PS/2接口,现在一般计算机上用的是USB接口的键盘。 另外还有使用串口或者IIC、SPI接口的键盘芯片,这些使用常见的串口、IIC、SPI通信协议实现。 但是这些都一个以上的I/O口,不是真正的用多个按键。 那么有没有更简单的办法,使用更少的I/O口资源检测更多的按键呢? 二、基于模数转换的AD键盘 我们知道按键检测实际上是检测连接按键的端口的高低电平值,在单个I/O口检测单个按键时,只是简单的判断连接按键的端口的电平是高电平(+5V)还是低电平(0V)。那么是否可以通过电平的微小变化来检测按键是否被按下呢? 下图为一个A/D键盘的原理图,从图中可以看出,当不同的按键被
1