<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    單片機按鍵設(shè)計的四個方案詳解

    發(fā)布時間:2019-09-21 責(zé)任編輯:wenwei

    【導(dǎo)讀】在單片機系統(tǒng)里,按鍵是常見的輸入設(shè)備,在本文將介紹幾種按鍵硬件、軟件設(shè)計方面的技巧。一般的在按鍵的設(shè)計上,一般有四種方案:一是GPIO口直接檢測單個按鍵,如圖1.1所示;二是按鍵較多則使用矩陣鍵盤,如圖1.2所示;三是將按鍵接到外部中斷引腳上,利用按鍵按下產(chǎn)生的邊沿信號進行按鍵檢測,如圖1.3所示;四是利用單片機的ADC,在不同的按鍵按下后,能夠使得ADC接口上的電壓不同,根據(jù)電壓的不同,則可以識別按鍵,如圖1.4所示。
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.1方案一
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.2方案二
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.3方案三
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.4方案四
     
    在以上四種設(shè)計上,各有優(yōu)點和不足。
     
    第一種是最簡單和最基礎(chǔ)的,對于單片機初學(xué)者很容易理解和使用,但是缺點是,需要在主循環(huán)中不斷檢測按鍵是否按下,并且需要做消抖處理。若主循環(huán)中某個函數(shù)任務(wù)占用時間較長,則按鍵會有不同程度的“失靈”。
     
    第二種,優(yōu)點是能夠在有限的GPIO情況下,擴展盡可能多的按鍵。但缺點同上,需要不停檢測按鍵是否按下。
     
    第三種方式是效率最高,不需要循環(huán)檢測按鍵是否按下,但是缺點是,需要單片機有足夠的外部中斷接口以供使用;第四種的優(yōu)點是,只需要單片機的一個ADC接口,一根線,就能對多個按鍵進行識別,缺點是按鍵一旦內(nèi)部接觸不良,則可能按鍵串位,且按鍵產(chǎn)生的抖動,會造成一定的識別錯誤。
     
    在以上的三種常見按鍵設(shè)計的基礎(chǔ)上,現(xiàn)在分享我學(xué)習(xí)和工作中總結(jié)的按鍵方案。
     
    改進一:在原方案一的基礎(chǔ)上,加上與門電路,使得任何一個按鍵按下,都能產(chǎn)生中斷,然后在中斷里面識別是哪個按鍵被按下。因此不需要循環(huán)掃描,大大提高了效率。方案如圖1.5所示。只需要每個按鍵對應(yīng)地增加一個二極管,利用二極管的線與特性,可以實現(xiàn)按下任何按鍵,都能產(chǎn)生中斷信號,但是按鍵之間互不影響。二極管選用普通整流二極管即可,本人親測可行。
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.5 改進一
     
    單片機按鍵設(shè)計的四個方案詳解
    圖1.6 改進二
     
    改進二:在原有的ADC按鍵的基礎(chǔ)上,也可用增加二極管的方式,實現(xiàn)按鍵中斷,并在中斷服務(wù)程序里進行AD轉(zhuǎn)換,從而識別按鍵。電路如圖1.6所示。
     
    改進三:因為按鍵不可避免的有抖動,因此按鍵消抖可以通過硬件消痘和軟件消抖。現(xiàn)在分享一個十分簡單且有效的硬件消痘方法:給按鍵并聯(lián)一個104左右的電容。軟件上基本不用處理即可避免抖動。
     
    改進四:在按鍵掃描檢測的方案下,如果主循環(huán)中有某個函數(shù)占用時間較長,則按鍵會發(fā)生或長或短的“失靈”,現(xiàn)分享我的一個解決方案。將按鍵掃描放到定時器中斷里面,這樣就可周期性地檢測按鍵按下情況,不受主循環(huán)的影響。并且,能解析出按鍵的不同狀態(tài),即按下、按住、彈起、為按下這四種狀態(tài),用以實現(xiàn)更豐富的功能。
     
    但需注意兩點,一是定時器的定時時間,不可過長也不可過短,過長容易檢測不到按下,過短會占用大量時間資源。二是中斷服務(wù)程序需簡單明了,只做檢測用,通過全局變量傳遞,在主循環(huán)內(nèi)完成按鍵響應(yīng),中斷服務(wù)函數(shù)內(nèi)盡量不要占用太多時間。
     
     
    推薦閱讀:
     
    常見電阻器分類,你真的知道嗎?
    公共阻抗耦合實例解析
    模擬設(shè)計者必須了解的光電二極管問題
    TVS-壓敏電阻 等保護類器件的布局問題
    精準(zhǔn)又低功耗的遠程檢測理念,你了解了沒?
    要采購電阻器么,點這里了解一下價格!
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    潮喷无码正在播放| 午夜福利无码不卡在线观看| 亚洲av无码无在线观看红杏| 亚洲中文久久精品无码| 亚洲AV无码久久精品蜜桃| 欧美麻豆久久久久久中文 | 亚洲AV中文无码乱人伦| 亚洲一区二区三区无码影院| 无码人妻丰满熟妇精品区| 线中文在线资源 官网| 亚洲AV中文无码乱人伦在线观看| AV无码久久久久不卡蜜桃| 亚洲Aⅴ无码专区在线观看q| 伊人蕉久中文字幕无码专区 | 欧美中文字幕在线| 久久精品人妻中文系列| 日韩av片无码一区二区三区不卡| 精品无码人妻一区二区三区| 无码日韩精品一区二区免费暖暖 | 亚洲AV无码成人网站久久精品大 | 最近最新中文字幕完整版| 亚洲中文字幕无码中文字在线| 丰满白嫩人妻中出无码| 精品无码无人网站免费视频 | 无码人妻精品一区二区三区99不卡| 亚洲av无码不卡| 午夜亚洲AV日韩AV无码大全| 亚洲人成影院在线无码按摩店| 99精品人妻无码专区在线视频区| 中文字幕无码不卡免费视频| 最近2019中文字幕一页二页| 久久亚洲中文字幕精品一区四| 最近中文字幕2019高清免费| 精品久久久久久无码中文字幕一区 | 久久亚洲AV成人无码国产 | 亚洲AV无码一区二区三区DV| 亚洲精品无码精品mV在线观看| 中文字幕丰满乱子伦无码专区| 久久亚洲AV成人无码软件| 超清无码无卡中文字幕| 最新国产AV无码专区亚洲|