《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧
基于AVR微控制器的ADC按鍵設(shè)計(jì)技巧
摘要: 本設(shè)計(jì)使用A/D轉(zhuǎn)換的方法,其硬件電路簡單,按鍵電路與MCU的連線少,易修改,而且可以節(jié)省MCU有限的I/0資源。但在處理按鍵數(shù)目較多的情況時(shí),往往會出現(xiàn)按鍵不可靠的問題,如按鍵沒有任何反映,按鍵功能交叉。本文除了給出A/D按鍵的硬件電路外.著重介紹利用軟件技巧來實(shí)現(xiàn)可靠的鍵盤接口。
關(guān)鍵詞: avr ADC ATmegal68
Abstract:
Key words :

  1引言

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

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

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

A/D轉(zhuǎn)換按鍵的具體硬件電路

  當(dāng)按鍵接通或斷開時(shí),ATmega168通過A/D轉(zhuǎn)換后對讀取的電壓值比較判斷便可識別是否有

 

按鍵按下。無按鍵按下時(shí)電路完全斷開,符合低功耗設(shè)計(jì)的原則。這種結(jié)構(gòu)的鍵盤具有自然的優(yōu)先權(quán),即某個(gè)按鍵按下后,其后的按鍵均無效。對于組合按鍵的輸入,則通過將其中的按鍵分別與不同的A/D口相連來實(shí)現(xiàn)。圖1中電容Cl的作用是消除干擾信號「2」

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

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

按鍵處理程序的軟件設(shè)計(jì)流程

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

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

程序

程序

程序

程序

  4 結(jié)束語

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产真实乱了在线播放| 宅男噜66免费看网站| 亚洲导航深夜福利| 男人桶女人j的视频在线观看| 国产99视频精品免视看7| 黄网站免费在线| 国产精品亚洲а∨天堂2021| 99re这里只有精品6| 夫不再被公侵犯美若妻| 三级黄色在线观看| 无码人妻一区二区三区在线视频 | 国产69精品久久久久777| 韩国19禁无遮挡啪啪无码网站| 国产日韩综合一区二区性色AV| 香蕉视频国产在线观看| 国产黄色二级片| AAAAA级少妇高潮大片免费看| 好大好爽好舒服视频| 午夜人妻久久久久久久久| 西西人体44rtwww高清大但| 国产成人免费a在线视频app | 亚洲人成毛片线播放| 欧美在线视频网| 亚洲日本天堂在线| 欧美精品18videosex性欧美| 亚洲精品国产电影午夜| 狠狠色香婷婷久久亚洲精品| 免费无码又爽又刺激网站| 精品国产日韩久久亚洲| 卡1卡2卡3卡4卡5免费视频| 美女张开腿让男人桶的动态图| 国产aaaaaa| 老子影院午夜精品欧美视频| 国产v亚洲v天堂无码网站| 色天天综合色天天碰| 国产一级片观看| 色噜噜综合亚洲AV中文无码| 国产一区二区三精品久久久无广告| 被民工蹂躏的雯雅婷| 国产三级精品视频| 色婷婷综合激情视频免费看|