可以用帶有 ADC 的微控制器設(shè)計一個雙線加接地組成的鍵盤接口。例如,可以用一個電阻分壓器判定一個按下的鍵(參考文獻(xiàn) 1)。微控制器的整合 ADC,其輸入電阻一般在數(shù)百千歐量級,為了有足夠的精度,鍵盤分壓器應(yīng)該具有相對較低電阻值,一般為數(shù)十千歐量級。但是,在電池供電系統(tǒng)中,電阻分壓器會消耗數(shù)百毫安電流,這迫使設(shè)計者選擇經(jīng)典的數(shù)字矩陣開關(guān)和多條 I/O 線作替代。此外,便攜設(shè)備設(shè)計通常也限制了元件的數(shù)量。
為滿足這兩個要求,圖 1 中的電路采用了一個矩陣鍵盤和一個分為兩行、兩列的電阻網(wǎng)絡(luò)。對于 4 X 4 按鍵的鍵盤,7 只電阻器就足以為所有按鍵編碼,電路只在一個鍵保持閉合時消耗能量。而當(dāng)沒有按下任何按鍵時,待機電流近似為零。只用到兩種阻值的電阻器,使 RA=RB=RC=R1和RD=RE=RF=RG=R2。為按鍵的x和y地址設(shè)定從0 ~ 3的值,通過解算下式,可以計算出任何鍵閉合時電阻器RG上的電壓:
ADC的基準(zhǔn)電壓VREF驅(qū)動電阻器陣列,這樣就可以進(jìn)行一種比例變換,消除由于VREF波動導(dǎo)致的按鍵編碼錯誤。下式描述了任何擊鍵的分壓比r(x,y)。
p=R1/R2表示行、列組電阻器阻值之間的比率。對于p=4,可以計算出 16 個 r(x,y) 值,它們在 [1/16, 1] 范圍內(nèi),是按鍵位置的函數(shù)。一般來說,r分隔比率之間的最小差值出現(xiàn)在最靠近的鍵上,如 (3,2) 和 (3,3) 等 x,y 表示的鍵。對于一個 N 位 ADC 和 p=4的比率而言,ADC 的分辨率應(yīng)滿足下式:2-N-1-16-1=240-1。電路需要一個至少8位分辨率的ADC(N≥8位)。
不妙的是,標(biāo)準(zhǔn)值元件的標(biāo)稱容限 T 不能為此式提供理想的解決方案。于是,可以計算出最差情況下的分隔比率差:d=r(3,2)-r(3,3)。d 的最小值出現(xiàn)在RG與RD最小值和RA、RB、RC、RE與RF最大值時。你可以計算所有電阻器阻值,并為R1和R2的標(biāo)稱值定義一個通用比率p:
相同的T值適用于所有電阻器。如果n=8及p=4,前式可算出結(jié)果為 T<0.018,表示±1%公差的電阻器可以正確完成16個鍵的編碼。另外,如果你現(xiàn)在使用固定公差T,可以從式中算出R1和R2值之間對p比率所要求的極限。如果T=0.01,則該公式計算出的結(jié)果變?yōu)閜<4.074。
圖2中的電路采用Freescale的 Nitron MC68HC908QT4微處理器,用作基于上述計算值的鍵盤測試基礎(chǔ),用電源電壓VCC作為電阻器矩陣的基準(zhǔn)電壓VREF。為滿足p(4.074>p>4)的要求,使用±1%公差的R1=10 kΩ和R2=40.2 kΩ,E48系列標(biāo)準(zhǔn)電阻可提供這兩種標(biāo)準(zhǔn)值。表1列出了對應(yīng)于16個按鍵的輸出碼,表2 則是同時按下兩個鍵時獲得的數(shù)據(jù),表明雙鍵組合可以得到特殊功能。
如果你的應(yīng)用需要缺少由ADC產(chǎn)生內(nèi)部中斷的微控制器,可以如圖 1所示將一個外部比較器連接到輸出電壓上。使比較器的閾值低于輸出電壓端的最低電壓(例子中大約是VREF除16),比較器的輸出作為微控制器的鍵盤中斷源。
注意有10位ADC的微控制器(如Freescale的MC68HC908QB或Texas Instruments MSP430F11)可以用在10個電阻器編碼的5 X 6鍵盤矩陣。重復(fù)上述分析可得到,行列p比率為5 ~ 5.51,所需電阻器公差低于4.3%,即可正確完成按鍵編碼。R1和R2都可以從±1%公差的E48 系列中選取,R1選10 kΩ,R2則選51.1 kΩ或53.6 kΩ。
參考文獻(xiàn)
1. Amorim, Vitor, and J Simoes, "ADC circuit optimizes key encoding," EDN, Feb 4, 1999, pg 101,
作者:Stefano Salvatori, University of Rome, Rome, Italy, and Gabriele Di Nucci, EngSistemi, Rome, Italy
更多計算機與外設(shè)信息請關(guān)注:21ic計算機與外設(shè)頻道