單片機按鍵設計的四個方案詳解
發布時間: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。
在以上的三種常見按鍵設計的基礎上,現在分享我學習和工作中總結的按鍵方案。
改進一:zaiyuanfanganyidejichushang,jiashangyumendianlu,shiderenheyigeanjiananxia,dounengchanshengzhongduan,ranhouzaizhongduanlimianshibieshinageanjianbeianxia。yincibuxuyaoxunhuansaomiao,dadatigaolexiaolv。fanganrutu1.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左右的電容。軟件上基本不用處理即可避免抖動。
改進四:在按鍵掃描檢測的方案下,如果主循環中有某個函數占用時間較長,則按鍵會發生或長或短的“失靈”,現(xian)分(fen)享(xiang)我(wo)的(de)一(yi)個(ge)解(jie)決(jue)方(fang)案(an)。將(jiang)按(an)鍵(jian)掃(sao)描(miao)放(fang)到(dao)定(ding)時(shi)器(qi)中(zhong)斷(duan)裏(li)麵(mian),這(zhe)樣(yang)就(jiu)可(ke)周(zhou)期(qi)性(xing)地(di)檢(jian)測(ce)按(an)鍵(jian)按(an)下(xia)情(qing)況(kuang),不(bu)受(shou)主(zhu)循(xun)環(huan)的(de)影(ying)響(xiang)。並(bing)且(qie),能(neng)解(jie)析(xi)出(chu)按(an)鍵(jian)的(de)不(bu)同(tong)狀(zhuang)態(tai),即(ji)按(an)下(xia)、按住、彈起、為按下這四種狀態,用以實現更豐富的功能。
但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可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




