單片機按鍵設計的四個方案詳解
發布時間:2019-09-21 責任編輯:wenwei
【導讀】在單片機係統裏,按鍵是常見的輸入設備,在本文將介紹幾種按鍵硬件、軟件設計方麵的技巧。一般的在按鍵的設計上,一般有四種方案:一是GPIO口直接檢測單個按鍵,如圖1.1所示;二是按鍵較多則使用矩陣鍵盤,如圖1.2所示;三是將按鍵接到外部中斷引腳上,利用按鍵按下產生的邊沿信號進行按鍵檢測,如圖1.3所示;四是利用單片機的ADC,在不同的按鍵按下後,能夠使得ADC接口上的電壓不同,根據電壓的不同,則可以識別按鍵,如圖1.4所示。

圖1.1方案一

圖1.2方案二

圖1.3方案三

圖1.4方案四
在以上四種設計上,各有優點和不足。
第(di)一(yi)種(zhong)是(shi)最(zui)簡(jian)單(dan)和(he)最(zui)基(ji)礎(chu)的(de),對(dui)於(yu)單(dan)片(pian)機(ji)初(chu)學(xue)者(zhe)很(hen)容(rong)易(yi)理(li)解(jie)和(he)使(shi)用(yong),但(dan)是(shi)缺(que)點(dian)是(shi),需(xu)要(yao)在(zai)主(zhu)循(xun)環(huan)中(zhong)不(bu)斷(duan)檢(jian)測(ce)按(an)鍵(jian)是(shi)否(fou)按(an)下(xia),並(bing)且(qie)需(xu)要(yao)做(zuo)消(xiao)抖(dou)處(chu)理(li)。若(ruo)主(zhu)循(xun)環(huan)中(zhong)某(mou)個(ge)函(han)數(shu)任(ren)務(wu)占(zhan)用(yong)時(shi)間(jian)較(jiao)長(chang),則(ze)按(an)鍵(jian)會(hui)有(you)不(bu)同(tong)程(cheng)度(du)的(de)“失靈”。
第二種,優點是能夠在有限的GPIO情況下,擴展盡可能多的按鍵。但缺點同上,需要不停檢測按鍵是否按下。
第三種方式是效率最高,不需要循環檢測按鍵是否按下,但是缺點是,需要單片機有足夠的外部中斷接口以供使用;第四種的優點是,隻需要單片機的一個ADC接(jie)口(kou),一(yi)根(gen)線(xian),就(jiu)能(neng)對(dui)多(duo)個(ge)按(an)鍵(jian)進(jin)行(xing)識(shi)別(bie),缺(que)點(dian)是(shi)按(an)鍵(jian)一(yi)旦(dan)內(nei)部(bu)接(jie)觸(chu)不(bu)良(liang),則(ze)可(ke)能(neng)按(an)鍵(jian)串(chuan)位(wei),且(qie)按(an)鍵(jian)產(chan)生(sheng)的(de)抖(dou)動(dong),會(hui)造(zao)成(cheng)一(yi)定(ding)的(de)識(shi)別(bie)錯(cuo)誤(wu)。
在以上的三種常見按鍵設計的基礎上,現在分享我學習和工作中總結的按鍵方案。
改進一:在zai原yuan方fang案an一yi的de基ji礎chu上shang,加jia上shang與yu門men電dian路lu,使shi得de任ren何he一yi個ge按an鍵jian按an下xia,都dou能neng產chan生sheng中zhong斷duan,然ran後hou在zai中zhong斷duan裏li麵mian識shi別bie是shi哪na個ge按an鍵jian被bei按an下xia。因yin此ci不bu需xu要yao循xun環huan掃sao描miao,大da大da提ti高gao了le效xiao率lv。方fang案an如ru圖tu1.5所suo示shi。隻zhi需xu要yao每mei個ge按an鍵jian對dui應ying地di增zeng加jia一yi個ge二er極ji管guan,利li用yong二er極ji管guan的de線xian與yu特te性xing,可ke以yi實shi現xian按an下xia任ren何he按an鍵jian,都dou能neng產chan生sheng中zhong斷duan信xin號hao,但dan是shi按an鍵jian之zhi間jian互hu不bu影ying響xiang。二er極ji管guan選xuan用yong普pu通tong整zheng流liu二er極ji管guan即ji可ke,本ben人ren親qin測ce可ke行xing。

圖1.5 改進一

圖1.6 改進二
改進二:在原有的ADC按鍵的基礎上,也可用增加二極管的方式,實現按鍵中斷,並在中斷服務程序裏進行AD轉換,從而識別按鍵。電路如圖1.6所示。
改進三:因為按鍵不可避免的有抖動,因此按鍵消抖可以通過硬件消痘和軟件消抖。現在分享一個十分簡單且有效的硬件消痘方法:給按鍵並聯一個104左右的電容。軟件上基本不用處理即可避免抖動。
改進四:在按鍵掃描檢測的方案下,如果主循環中有某個函數占用時間較長,則按鍵會發生或長或短的“失靈”,xianfenxiangwodeyigejiejuefangan。jianganjiansaomiaofangdaodingshiqizhongduanlimian,zheyangjiukezhouqixingdijianceanjiananxiaqingkuang,bushouzhuxunhuandeyingxiang。bingqie,nengjiexichuanjiandebutongzhuangtai,jianxia、按住、彈起、為按下這四種狀態,用以實現更豐富的功能。
但(dan)需(xu)注(zhu)意(yi)兩(liang)點(dian),一(yi)是(shi)定(ding)時(shi)器(qi)的(de)定(ding)時(shi)時(shi)間(jian),不(bu)可(ke)過(guo)長(chang)也(ye)不(bu)可(ke)過(guo)短(duan),過(guo)長(chang)容(rong)易(yi)檢(jian)測(ce)不(bu)到(dao)按(an)下(xia),過(guo)短(duan)會(hui)占(zhan)用(yong)大(da)量(liang)時(shi)間(jian)資(zi)源(yuan)。二(er)是(shi)中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu)需(xu)簡(jian)單(dan)明(ming)了(le),隻(zhi)做(zuo)檢(jian)測(ce)用(yong),通(tong)過(guo)全(quan)局(ju)變(bian)量(liang)傳(chuan)遞(di),在(zai)主(zhu)循(xun)環(huan)內(nei)完(wan)成(cheng)按(an)鍵(jian)響(xiang)應(ying),中(zhong)斷(duan)服(fu)務(wu)函(han)數(shu)內(nei)盡(jin)量(liang)不(bu)要(yao)占(zhan)用(yong)太(tai)多(duo)時(shi)間(jian)。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
SATA連接器
SD連接器
SII
SIM卡連接器
SMT設備
SMU
SOC
SPANSION
SRAM
SSD
ST
ST-ERICSSON
Sunlord
SynQor
s端子線
Taiyo Yuden
TDK-EPC
TD-SCDMA功放
TD-SCDMA基帶
TE
Tektronix
Thunderbolt
TI
TOREX
TTI
TVS
UPS電源
USB3.0
USB 3.0主控芯片
USB傳輸速度



