一種基于ADC的高性價(jià)比鍵盤輸入設(shè)計(jì)
引言
在單片機(jī)領(lǐng)域中,鍵盤輸入是最常用的人機(jī)交互方式。通常實(shí)用鍵盤接口方式有:直接輸入、矩陣結(jié)構(gòu)、A/D方式、鍵盤和顯示復(fù)用、并行擴(kuò)展、串口擴(kuò)充以及用鍵盤和顯示專用控制器件等。但是其中很多方案都需要占用不少單片機(jī)有限的I/O口。本文提出一種基于ADC的高性價(jià)比鍵盤輸入設(shè)計(jì)方法。
1 ADC按鍵原理
ADC按鍵的原理圖如圖1所示,把多個(gè)電阻串聯(lián)分壓,不同的按鍵將不同的電壓進(jìn)行A/D轉(zhuǎn)換,根據(jù)ADC結(jié)果,MCU就能識(shí)別按鍵了。例如,key1按下,ADC得到的電壓值為:
理論上,只要相鄰的兩個(gè)按鍵按下時(shí),電壓的差值在ADC能最小分辨的電壓范圍之內(nèi),那么MCU就能識(shí)別是哪個(gè)鍵被按下了。一個(gè)n位的ADC,可以識(shí)別2n個(gè)不同的電壓值,即可以識(shí)別2n個(gè)按鍵。例如8位ADC,理論上可以串聯(lián)256個(gè)電阻,識(shí)別256個(gè)按鍵。但在實(shí)際應(yīng)用中還要考慮很多的外在因素,如電阻自身的誤差、ADC誤差、軟件計(jì)算誤差等,因此往往實(shí)際能識(shí)別的按鍵的個(gè)數(shù)小于理論值。
評(píng)論