许多单片机带有A/D转换功能,在实际运用中,如果利用其中的一路A/D转换,可以很方便地实现4×4键盘输入。
如图一所示,由于键盘的纵向电阻R1~R4的阻值为递增状态,其增幅超过横向最大阻值电阻R8,因此当按键从S1至S16按下时,纵向电阻与横向电阻串联的阻值也会相应由低到高增加,如S1按下时串联阻值为11k,S2按下时阻值为13.9k,S5按下时为25k,…,由于每个键按下后的串联阻值均不同,并且依按键的次序呈逐渐增大趋势,经与R9分压后,会在单片机的输入端产生不同的电压值,该电压经过A/D转换后进行相应处理,即可判断出是哪个键按下。
在实际应用中,由于阻值与电压为非线性关系,因此在电阻选用及编程时需要注意,同时A/D转换应进行相应的软件处理(如重复检测两次才确认),以消除按键抖动引起的误判断。