按鍵與菜單在嵌入式系統(tǒng)中的設(shè)計(jì)與應(yīng)用
MAX6816-MAX6818分別為單、雙、八通道的消抖按鍵芯片,并且具有ESD保護(hù)功能。使用該芯片改進(jìn)電路后,不僅簡(jiǎn)化了軟件的設(shè)計(jì)(可直接視端口電平改變?yōu)橛行ё兓岣吡穗娐返目垢蓴_能力,使最終產(chǎn)品更容易通過EMC測(cè)試。
2.矩陣式鍵盤設(shè)計(jì)
在所需按鍵較多的系統(tǒng)中常采用矩陣式按鍵設(shè)計(jì),該方式可大大節(jié)約端口的占用(N為偶數(shù)時(shí),N個(gè)端口最多可控制(N/2)2個(gè)按鍵),與一一對(duì)應(yīng)的按鍵設(shè)計(jì)相比其主要缺點(diǎn)是掃描速度相對(duì)較慢。典型電路如圖4所示。
圖.4 矩陣式鍵盤接口
其控制端口分為A、B兩組,A組用來驅(qū)動(dòng)產(chǎn)生逐位送出的低電平信號(hào),同時(shí)保持其它位為高電平。對(duì)A組的每位低電平信號(hào)都要在B組執(zhí)行一次掃描。由電路特性可知,每個(gè)按鍵對(duì)應(yīng)唯一的一組A、B組合,所以通過掃描可確定按鍵的位置。對(duì)矩陣式按鍵的掃描也要注意防抖問題,雖然矩陣式按鍵的掃描速度比一一對(duì)應(yīng)的方式慢,但嵌入式系統(tǒng)運(yùn)行在微秒甚至更低的數(shù)量級(jí)上,所以機(jī)械抖動(dòng)問題依然要靠軟件解決,在實(shí)際使用中也可根據(jù)需要由專用芯片改進(jìn)設(shè)計(jì)。
3.A/D采樣式具有優(yōu)先級(jí)的鍵盤編碼設(shè)計(jì)
很多的新型51單片機(jī)、ARM等微控制器都集成了A/D功能,而且往往A/D通道較多。所以在數(shù)字端口資源緊張而模擬端口資源充裕的情況下可考慮采用模擬通道作為部分按鍵的接口。該方法可在不增加成本的情況下,可有效的擴(kuò)充按鍵資源,設(shè)計(jì)電路如圖5所示,其中分壓電阻的選取要特別注意,一定要保證在不同按鍵按下時(shí),A/D端口的得到電壓要有充分的間隙,并適當(dāng)減小接地電阻阻值。由電路分析可知,這種按鍵組合具有優(yōu)先權(quán)問題,KEY3的優(yōu)先權(quán)最高,所以當(dāng)KEY3按下時(shí),KEY1、KEY2實(shí)際上被屏蔽了。
圖.5 A/D采樣式優(yōu)先權(quán)編碼鍵盤接口
由于A/D接口表面上為多通道設(shè)計(jì),而在芯片內(nèi)部往往只有一個(gè)A/D轉(zhuǎn)換器通過模擬開關(guān)切換通道選擇,所以在軟件設(shè)計(jì)上要注意保證A/D通道的穩(wěn)定時(shí)間,即通道切換后要等待幾個(gè)時(shí)鐘周期才能啟動(dòng)A/D得到有效值。對(duì)于這種模擬按鍵的抖動(dòng)處理比數(shù)字按鍵要煩瑣,首先硬件上要保證各按鍵電平之間有充裕寬度,即充足的A/D冗余位數(shù)來“防抖”。其次,由于分布電容、機(jī)械振動(dòng)和接觸電阻等的影響,會(huì)導(dǎo)致按鍵電平抖動(dòng),出現(xiàn)瞬時(shí)偏低的現(xiàn)象,所以可采用連續(xù)快速多次轉(zhuǎn)換取最大值的方法判定有效鍵。
評(píng)論