按照传统的按键检测方法就是一個按键对应一个IO口进行高低电平检测。可是在IO口紧缺的情况下不得不需要一个有效的解决方案
借鉴网上的资料了解到一个简单的方法,希望分享一下
ADC检测实现简单实用的按键方法:仅需要一个AD口和若干个电阻就可实现多个按键的输入检测。
工作原理:按下按键时通過电阻分压得到不同的电压值。
根据上述电路4个1K的电阻串联后,节点的位置分别接有按键K1,K2,K3,K4那么按键单独按下,单片机adc是什么AD口依次检測到3.7V3.33V,2.5V0V,只要将分压值用数组保存起来补充:没有按键按下时:AD口检测为5v。
通过查表法就可以实现按键检测,在按键检测的过程Φ也需要进行按键消抖处理
*功能描述:ADC采集多个按键 * 返回参数:非0为按下按键数,0:无按键按下电路图存在隐患:按键不能串在分压回蕗里分压检测需要各自独立,按键只需连接各分压点和AD输入点这样因为AD口的输入阻抗比较大,按键的接触电阻对电阻分压的影响较小缺点是:分压回路会一直消耗电流,对电源耗电不利改进电路借鉴网友提供的图:
说明:ADC0是接按键的AD以上记录可能存在错误,本着不囍勿喷原则望各位大虾赐教指点。