可以用帶有 ADC 的微控制器設計一個雙線加接地組成的鍵盤接口。例如,可以用一個電阻分壓器判定一個按下的鍵。微控制器的整合 ADC, 其輸入電阻一般在數百千歐量級,為了有足夠的精度,鍵盤分壓器應該具有相對較低電阻值,一般為數十千歐量級。但是,在電池供電系統中,電阻分壓器會消耗數百毫安電流,這迫使設計者選擇經典的數字矩陣開關和多條 I/O 線作替代。此外,便攜設備設計通常也限制了元件的數量。
為滿足這兩個要求,圖 1 中的電路采用了一個矩陣鍵盤和一個分為兩行、兩列的電阻網絡。對于 4 X 4 按鍵的鍵盤,7 只電阻器就足以為所有按鍵編碼,電路只在一個鍵保持閉合時消耗能量。而當沒有按下任何按鍵時,待機電流近似為零。只用到兩種阻值的電阻器,使 RA=“RB”=RC=R1和RD=RE=RF=RG=R2。為按鍵的x和y地址設定從0 ~ 3的值,通過解算下式,可以計算出任何鍵閉合時電阻器RG上的電壓:
ADC的基準電壓VREF驅動電阻器陣列,這樣就可以進行一種比例變換,消除由于VREF波動導致的按鍵編碼錯誤。下式描述了任何擊鍵的分壓比r(x,y)。
p=R1/R2表示行、列組電阻器阻值之間的比率。對于p=4,可以計算出 16 個 r(x,y) 值,它們在 [1/16, 1] 范圍內,是按鍵位置的函數。一般來說,r分隔比率之間的最小差值出現在最靠近的鍵上,如 (3,2) 和 (3,3) 等 x,y 表示的鍵。對于一個 N 位 ADC 和 p=“4的比率而言”,ADC 的分辨率應滿足下式:2-N-1-16-1=240-1。電路需要一個至少8位分辨率的ADC(N≥8位)。
不妙的是,標準值元件的標稱容限 T 不能為此式提供理想的解決方案。于是,可以計算出最差情況下的分隔比率差:d=r(3,2)-r(3,3)。d 的最小值出現在RG與RD最小值和RA、RB、RC、RE與RF最大值時。你可以計算所有電阻器阻值,并為R1和R2的標稱值定義一個通用比率p:
相同的T值適用于所有電阻器。如果n=8及p=4,前式可算出結果為 T《0.018,表示±1%公差的電阻器可以正確完成16個鍵的編碼。另外,如果你現在使用固定公差T,可以從式中算出R1和R2值之間對p比率 所要求的極限。如果T=0.01,則該公式計算出的結果變為p《4.074。
圖2中的電路采用Freescale的 Nitron MC68HC908QT4微處理器,用作基于上述計算值的鍵盤測試基礎,用電源電壓VCC作為電阻器矩陣的基準電壓VREF。為滿足p(4.074》p》4)的要求,使用±1%公差的R1=10 kΩ和R2=40.2 kΩ,E48系列標準電阻可提供這兩種標準值。表1列出了對應于16個按鍵的輸出碼,表2 則是同時按下兩個鍵時獲得的數據,表明雙鍵組合可以得到特殊功能。
如果你的應用需要缺少由ADC產生內部中斷的微控制器,可以如圖 1所示將一個外部比較器連接到輸出電壓上。使比較器的閾值低于輸出電壓端的最低電壓(例子中大約是VREF除16),比較器的輸出作為微控制器的鍵盤中斷源。
注意有10位ADC的微控制器(如Freescale的MC68HC908QB或Texas Instruments MSP430F11)可以用在10個電阻器編碼的5 X 6鍵盤矩陣。重復上述分析可得到,行列p比率為5 ~ 5.51,所需電阻器公差低于4.3%,即可正確完成按鍵編碼。R1和R2都可以從±1%公差的E48 系列中選取,R1選10 kΩ,R2則選51.1 kΩ或53.6 kΩ。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7487瀏覽量
151044 -
adc
+關注
關注
98文章
6430瀏覽量
544078 -
鍵盤
+關注
關注
4文章
858瀏覽量
39584
發布評論請先 登錄
相關推薦
評論