基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧-新品速遞_第1頁(yè)
基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧-新品速遞_第2頁(yè)
基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧-新品速遞_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧-新品速遞1引言在單片機(jī)應(yīng)用領(lǐng)域中,人機(jī)交互的途徑和方式靈活多樣,但鍵盤(pán)輸人仍然是常見(jiàn)、重要的方法。通常實(shí)現(xiàn)鍵盤(pán)接口的方式有:直接輸入、矩陣結(jié)構(gòu)、A/D方式、鍵盤(pán)和顯示復(fù)用、并行擴(kuò)展、串口擴(kuò)充以及用鍵盤(pán)和顯示專用控制器件。本設(shè)計(jì)使用A/D轉(zhuǎn)換的方法,其硬件電路簡(jiǎn)單,按鍵電路與MCU的連線少,易修改,而且可以節(jié)省MCU有限的I/0資源。但在處理按鍵數(shù)目較多的情況時(shí),往往會(huì)出現(xiàn)按鍵不可靠的問(wèn)題,如按鍵沒(méi)有任何反映,按鍵功能交叉。本文除了給出A/D按鍵的硬件電路外.著重介紹利用軟件技巧來(lái)實(shí)現(xiàn)可靠的鍵盤(pán)接口。

2硬件設(shè)計(jì)

本設(shè)計(jì)選用的單片機(jī)是基于AVR增強(qiáng)型RISC結(jié)構(gòu)的低功耗8位CMOS微控制器ATmegal68「1」該微控制器具有8個(gè)10位帶采樣保持電路的逐次逼近型ADC,以確保在轉(zhuǎn)換過(guò)程中輸入ADC的電壓保持恒定。A/D轉(zhuǎn)換按鍵的具體硬件電路如圖l所示。A/D轉(zhuǎn)換的方法不僅成本低、功耗少、體積小、布線靈活,而且與帶MCU的主板的連接非常簡(jiǎn)單,只需提供信號(hào)線和地線。

當(dāng)按鍵接通或斷開(kāi)時(shí),ATmega168通過(guò)A/D轉(zhuǎn)換后對(duì)讀取的電壓值比較判斷便可識(shí)別是否有按鍵按下。無(wú)按鍵按下時(shí)電路完全斷開(kāi),符合低功耗設(shè)計(jì)的原則。這種結(jié)構(gòu)的鍵盤(pán)具有自然的優(yōu)先權(quán),即某個(gè)按鍵按下后,其后的按鍵均無(wú)效。對(duì)于組合按鍵的輸入,則通過(guò)將其中的按鍵分別與不同的A/D口相連來(lái)實(shí)現(xiàn)。圖1中電容Cl的作用是消除干擾信號(hào)「2」

3軟件設(shè)計(jì)

軟件設(shè)計(jì)是加轉(zhuǎn)換按鍵處理的,一旦檢測(cè)的A/D值不準(zhǔn),按鍵操作就會(huì)產(chǎn)生誤動(dòng)作和不動(dòng)作,按鍵數(shù)目達(dá)到二三十個(gè)時(shí),這種現(xiàn)象會(huì)經(jīng)常出現(xiàn),針對(duì)此種情況,本文在軟件設(shè)計(jì)中做相應(yīng)的技巧處理,按鍵處理程序的軟件設(shè)計(jì)流程如圖2所示。

首先,電阻阻值的選擇決定了按鍵的數(shù)目,考慮到電壓誤差、電阻精度等因素,R0的阻值不能太小「3」。由實(shí)驗(yàn)得知,R0的阻值為20kΩ~100kΩ比較合適。ATmega168的A/D轉(zhuǎn)換精度為10位,為提高按鍵分辨率,并保證按鍵的準(zhǔn)確性,本設(shè)計(jì)只用高8位,而且設(shè)定相鄰按鍵鍵值的差值一致,也就是將256等區(qū)間劃分,這樣可以實(shí)現(xiàn)較多的按鍵。然后根據(jù)定義好的鍵值用電阻箱確定相應(yīng)阻值。該程序每隔2ms處理,每次采樣,共采樣6次,所以確定平均鍵值需要12ms。延時(shí)去抖是通過(guò)再次求平均鍵值完成「4」,故確定按鍵是按下還是釋放需要24ms,這樣不僅可以保證按鍵可靠,而且無(wú)需再加延時(shí)去抖過(guò)程。當(dāng)采樣6次后進(jìn)行數(shù)字濾波,舍去其中的值和值,并且判斷值與值之差是否超過(guò)2,是則認(rèn)為無(wú)鍵按下,否則就將其余的4個(gè)采樣值求平均值。當(dāng)按鍵數(shù)目較多時(shí),為提高按鍵處理程序的速度,在鍵值確定和按鍵識(shí)別程序中采用二分法「5.6」,即先與中間鍵鍵值比較,如果所得鍵值比其A/D值小則與前面按鍵的鍵值比較,否則與后面按鍵比較??紤]到電壓波動(dòng)、電阻精度以及人為操作等各方面因素的影響,對(duì)凡是符合每個(gè)鍵值±l區(qū)間的平均值都認(rèn)為是正確的按鍵識(shí)別,否則為無(wú)鍵按下。

以下是用匯編語(yǔ)言編寫(xiě)的按鍵處理程序代碼。經(jīng)過(guò)實(shí)際裝機(jī)測(cè)試,該方法效果很好,按鍵控制靈敏而且可靠、準(zhǔn)確無(wú)誤。

4結(jié)束語(yǔ)

以上設(shè)計(jì)方案應(yīng)用在帶有30個(gè)按鍵的美式按摩椅上,取得了很好的效果,惟一不足之處在于,帶有按鍵接口的PCB板必須在灰塵較小的環(huán)境中使用或者采用外殼裝配,因?yàn)轭l繁的操作按鍵,會(huì)使大量的灰塵沉積在按鍵開(kāi)關(guān)的觸點(diǎn)表面使其接觸電阻增大,終導(dǎo)致按鍵A/D值偏離。

參考文獻(xiàn):

[1].RISCdatasheet/datasheet/RISC_1189725.html.[2].ATmega168datash

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論