0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于器ATmegal68微控制器和A/D轉(zhuǎn)換方式實(shí)現(xiàn)可靠鍵盤接口的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:自動(dòng)化與儀器儀表 ? 作者:王芳,高金輝,張 ? 2020-07-08 08:05 ? 次閱讀

1、引言

單片機(jī)應(yīng)用領(lǐng)域中,人機(jī)交互的途徑和方式靈活多樣,但鍵盤輸人仍然是最常見(jiàn)、最重要的方法。通常實(shí)現(xiàn)鍵盤接口的方式有:直接輸入、矩陣結(jié)構(gòu)、A/D方式、鍵盤和顯示復(fù)用、并行擴(kuò)展、串口擴(kuò)充以及用鍵盤和顯示專用控制器件。本設(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)可靠的鍵盤接口。

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

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

基于器ATmegal68微控制器和A/D轉(zhuǎn)換方式實(shí)現(xiàn)可靠鍵盤接口的設(shè)計(jì)

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

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的阻值不能太小。由實(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í)去抖是通過(guò)再次求平均鍵值完成,故確定按鍵是按下還是釋放需要24 ms,這樣不僅可以保證按鍵可靠,而且無(wú)需再加延時(shí)去抖過(guò)程。當(dāng)采樣6次后進(jìn)行數(shù)字濾波,舍去其中的最大值和最小值,并且判斷最大值與最小值之差是否超過(guò)2,是則認(rèn)為無(wú)鍵按下,否則就將其余的4個(gè)采樣值求平均值。當(dāng)按鍵數(shù)目較多時(shí),為提高按鍵處理程序的速度,在鍵值確定和按鍵識(shí)別程序中采用二分法,即先與中間鍵鍵值比較,如果所得鍵值比其A/D值小則與前面按鍵的鍵值比較,否則與后面按鍵比較??紤]到電壓波動(dòng)、電阻精度以及人為操作等各方面因素的影響,對(duì)凡是符合每個(gè)鍵值±l區(qū)間的平均值都認(rèn)為是正確的按鍵識(shí)別,否則為無(wú)鍵按下。

以下是用匯編語(yǔ)言編寫的按鍵處理程序代碼。經(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值偏離。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7396

    瀏覽量

    150647
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    630999
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8366

    瀏覽量

    150542
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    16位Σ-Δ A/D轉(zhuǎn)換器AD7705與微控制器接口設(shè)計(jì)

    Σ-ΔA/D轉(zhuǎn)換器AD7705的特點(diǎn)、結(jié)構(gòu)和應(yīng)用,并舉例說(shuō)明這種串行輸入/輸出的A/D轉(zhuǎn)換器
    發(fā)表于 08-23 19:56

    16位Σ-Δ A/D轉(zhuǎn)換器AD7705與微控制器接口設(shè)計(jì)

    方便地與各種微控制器和DSP連接,也比并行接口方式大大節(jié)省了CPU的I/O口。下圖所示的應(yīng)用電路中,采用80C51控制AD7705,對(duì)橋式傳感信號(hào)進(jìn)行模數(shù)
    發(fā)表于 12-18 10:21

    分享一款不錯(cuò)的16位Σ-Δ A/D轉(zhuǎn)換器AD7705與微控制器接口設(shè)計(jì)

    AD7705的內(nèi)部結(jié)構(gòu)16位Σ-Δ A/D轉(zhuǎn)換器AD7705與微控制器接口設(shè)計(jì)
    發(fā)表于 04-08 06:30

    請(qǐng)問(wèn)如何實(shí)現(xiàn)微控制器與FPGA的接口設(shè)計(jì)?

    基于FPGA的MCU設(shè)計(jì)有兩種基本實(shí)現(xiàn)方式如何實(shí)現(xiàn)微控制器與FPGA的接口設(shè)計(jì)
    發(fā)表于 05-06 10:05

    MC68HC708XL36微控制器控制的交流電機(jī)變頻系統(tǒng)

    68HC08 系列微控制器是Motorola 公司新推出的一種基于CSIC 策略與68HC05 完全兼容的8 位微控制器。MC68HC708
    發(fā)表于 04-22 17:07 ?19次下載

    CS5521 CS5522 CS5523 CS5524 CS5528 AD轉(zhuǎn)換器68HC05微控制器接口

    CS5521 CS5522 CS5523 CS5524 CS5528 A D轉(zhuǎn)換器68HC05微控制器
    發(fā)表于 06-10 10:42 ?34次下載
    CS5521 CS5522 CS5523 CS5524 CS5528 AD<b class='flag-5'>轉(zhuǎn)換器</b>與<b class='flag-5'>68</b>HC05<b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>

    CS5525 CS5526 CS5529 A D轉(zhuǎn)換器68

    CS5525 CS5526 CS5529 A D轉(zhuǎn)換器68HC05微控制器接口:
    發(fā)表于 06-10 10:47 ?17次下載
    CS5525 CS5526 CS5529 <b class='flag-5'>A</b> <b class='flag-5'>D</b><b class='flag-5'>轉(zhuǎn)換器</b>與<b class='flag-5'>68</b>

    D A轉(zhuǎn)換器微控制器間的簡(jiǎn)單接口(該接口應(yīng)用在可編程正弦波

    D A轉(zhuǎn)換器微控制器間的簡(jiǎn)單接口(該接口應(yīng)用在可編程正弦波電路中):
    發(fā)表于 06-10 10:58 ?17次下載
    <b class='flag-5'>D</b> <b class='flag-5'>A</b><b class='flag-5'>轉(zhuǎn)換器</b>和<b class='flag-5'>微控制器</b>間的簡(jiǎn)單<b class='flag-5'>接口</b>(該<b class='flag-5'>接口</b>應(yīng)用在可編程正弦波

    用AD7549雙D A轉(zhuǎn)換器和8051微控制器設(shè)計(jì)12位模擬

    用AD7549雙D A轉(zhuǎn)換器和8051微控制器設(shè)計(jì)12位模擬I O端口:
    發(fā)表于 06-12 15:32 ?67次下載
    用AD7549雙<b class='flag-5'>D</b> <b class='flag-5'>A</b><b class='flag-5'>轉(zhuǎn)換器</b>和8051<b class='flag-5'>微控制器</b>設(shè)計(jì)12位模擬

    應(yīng)用MC68HC05B6微控制器單元實(shí)現(xiàn)伺服電機(jī)閉環(huán)速度控制

    應(yīng)用MC68HC05B6微控制器單元實(shí)現(xiàn)伺服電機(jī)閉環(huán)速度控制的基本電路及軟件:
    發(fā)表于 06-19 09:18 ?22次下載
    應(yīng)用MC<b class='flag-5'>68</b>HC05B6<b class='flag-5'>微控制器</b>單元<b class='flag-5'>實(shí)現(xiàn)</b>伺服電機(jī)閉環(huán)速度<b class='flag-5'>控制</b>

    以MC68HC11為例,介紹帶AD轉(zhuǎn)換器微控制器可以實(shí)現(xiàn)

    以MC68HC11為例,介紹帶AD轉(zhuǎn)換器微控制器可以實(shí)現(xiàn)模擬電路功能,減少數(shù)模轉(zhuǎn)換的錯(cuò)誤:
    發(fā)表于 06-23 11:58 ?37次下載
    以MC<b class='flag-5'>68</b>HC11為例,介紹帶AD<b class='flag-5'>轉(zhuǎn)換器</b>的<b class='flag-5'>微控制器</b>可以<b class='flag-5'>實(shí)現(xiàn)</b>模

    MAX1169 ADC與PIC微控制器接口

    MAX1169 ADC與PIC微控制器接口 摘要:本應(yīng)用筆記介紹如何連接MAX1169模數(shù)轉(zhuǎn)換器(ADC)至PIC®微控制器
    發(fā)表于 01-23 21:18 ?634次閱讀
    MAX1169 ADC與PIC<b class='flag-5'>微控制器</b>的<b class='flag-5'>接口</b>

    Motorola微控制器MC68HC08原理及其嵌入式應(yīng)用

    《Motorola(Freescale)微控制器MC68HC08原理及其嵌入式應(yīng)用》以MC68HC908GP32為范例介紹了Motorola高檔8位微控制器的CPU、存儲(chǔ)
    發(fā)表于 09-29 15:39 ?69次下載
    Motorola<b class='flag-5'>微控制器</b>MC<b class='flag-5'>68</b>HC08原理及其嵌入式應(yīng)用

    微控制器接口有哪幾種_微控制器特點(diǎn)

    微控制器接口有I2C,SPI,UART這三種。微控制器特點(diǎn)是單鞘化,體積大大減小,從而使功耗和成本下降、可靠性提高。
    發(fā)表于 04-26 09:14 ?2540次閱讀

    STM8微控制器A/D轉(zhuǎn)換器的精密改進(jìn)技術(shù)

    電子發(fā)燒友網(wǎng)站提供《STM8微控制器A/D轉(zhuǎn)換器的精密改進(jìn)技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 10-07 15:27 ?0次下載
    STM8<b class='flag-5'>微控制器</b><b class='flag-5'>A</b>/<b class='flag-5'>D</b><b class='flag-5'>轉(zhuǎn)換器</b>的精密改進(jìn)技術(shù)