《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于AVR微控制器的ADC按键设计技巧
基于AVR微控制器的ADC按键设计技巧
摘要: 本设计使用A/D转换的方法,其硬件电路简单,按键电路与MCU的连线少,易修改,而且可以节省MCU有限的I/0资源。但在处理按键数目较多的情况时,往往会出现按键不可靠的问题,如按键没有任何反映,按键功能交叉。本文除了给出A/D按键的硬件电路外.着重介绍利用软件技巧来实现可靠的键盘接口。
關鍵詞: avr ADC ATmegal68
Abstract:
Key words :

  1引言

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

  2硬件設計

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

A/D轉換按鍵的具體硬件電路

  當按鍵接通或斷開時,ATmega168通過A/D轉換后對讀取的電壓值比較判斷便可識別是否有

 

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

  3 軟件設計

  軟件設計是加轉換按鍵處理的核心,一旦檢測的A/D值不準,按鍵操作就會產生誤動作和不動作,按鍵數目達到二三十個時,這種現象會經常出現,針對此種情況,本文在軟件設計中做相應的技巧處理,按鍵處理程序的軟件設計流程如圖2所示。

按鍵處理程序的軟件設計流程

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

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

程序

程序

程序

程序

  4 結束語

  以上設計方案應用在帶有30個按鍵的美式按摩椅上,取得了很好的效果,惟一不足之處在于,帶有按鍵接口的PCB板必須在灰塵較小的環境中使用或者采用外殼裝配,因為頻繁的操作按鍵,會使大量的灰塵沉積在按鍵開關的觸點表面使其接觸電阻增大,最終導致按鍵A/D值偏離。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产日本欧美一区| 色老头一区二区三区在线观看| 欧美 日韩 国产 高清| 欧美精品亚洲| 91精品国产自产在线| 国产精品久久久久久久久久99| 欧美成在线观看| 日韩中文字幕视频| 国产一区二中文字幕在线看| 在线丝袜欧美日韩制服| 青青精品视频播放| 国产欧美日韩精品丝袜高跟鞋| 久久五月天色综合| 亚洲欧洲一区二区| 国产日本欧美在线| 少妇人妻无码专区视频| 人妻精品无码一区二区三区| 日韩欧美一区二区在线观看| 久久精品国产精品| 午夜精品一区二区三区在线播放| 日韩免费精品视频| 丁香六月激情网| 国产成人精品a视频一区www| 亚洲欧美久久234| 精品久久久三级| 国产日产亚洲精品| 久久精品欧美| 欧美国产激情视频| 久久国产精品精品国产色婷婷| 欧美在线欧美在线| 欧美一区二区三区精品电影| 欧美日韩在线不卡一区| 欧美日韩精品在线一区二区| 欧美成人中文字幕| 久久精品视频91| 国产精品久久久久久久久久免费 | 国产精品日韩三级| 色婷婷精品国产一区二区三区| 欧美日韩喷水| 久久久中精品2020中文| 国产精品成人一区二区|