<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>
    你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

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

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

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

    關(guān)閉

    ?

    關(guān)閉

    青娱乐在线国产中文字幕免費資訊 | 国产精品成人无码久久久久久 | 精品久久久无码人妻中文字幕豆芽| 亚洲乱码中文字幕综合| 无码无套少妇毛多18PXXXX| 亚洲日本欧美日韩中文字幕| 久久久久亚洲AV无码去区首| 亚洲AV无码精品色午夜在线观看| 天堂新版8中文在线8| 久久久久亚洲AV无码专区网站| 亚洲精品~无码抽插 | 一本本月无码-| 性色欲网站人妻丰满中文久久不卡| gogo少妇无码肉肉视频| 最近中文字幕高清免费中文字幕mv | 国产强伦姧在线观看无码| 亚洲VA中文字幕无码一二三区 | 精品国产aⅴ无码一区二区| 亚洲精品无码鲁网中文电影| 日韩精选无码| 成在人线av无码免费高潮水| 久久久久亚洲av无码专区| 亚洲VA中文字幕无码一二三区 | 亚洲日本va午夜中文字幕久久 | 亚洲精品人成无码中文毛片 | 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 无码无套少妇毛多18p| 区三区激情福利综合中文字幕在线一区| 久久精品中文字幕一区| 免费无码专区毛片高潮喷水| 18禁裸乳无遮挡啪啪无码免费| 激情无码人妻又粗又大中国人| 亚洲AV无码日韩AV无码导航 | 免费无码VA一区二区三区 | 无码精品人妻一区二区三区漫画 | 中文字幕一区一区三区| 天堂а√中文在线| 制服中文字幕一区二区| 国产免费黄色无码视频| 伊人久久一区二区三区无码| 亚洲人成无码www久久久|