你的位置:首頁 > 測(cè)試測(cè)量 > 正文
單片機(jī)按鍵設(shè)計(jì)的四個(gè)方案詳解
發(fā)布時(shí)間:2019-09-21 責(zé)任編輯:wenwei
【導(dǎo)讀】在單片機(jī)系統(tǒng)里,按鍵是常見的輸入設(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所示。
圖1.1方案一
圖1.2方案二
圖1.3方案三
圖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í)間較長,則按鍵會(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ò)誤。
在以上的三種常見按鍵設(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è)可行。
圖1.5 改進(jìn)一
圖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),因此按鍵消抖可以通過硬件消痘和軟件消抖。現(xiàn)在分享一個(gè)十分簡(jiǎn)單且有效的硬件消痘方法:給按鍵并聯(lián)一個(gè)104左右的電容。軟件上基本不用處理即可避免抖動(dòng)。
改進(jìn)四:在按鍵掃描檢測(cè)的方案下,如果主循環(huán)中有某個(gè)函數(shù)占用時(shí)間較長,則按鍵會(huì)發(fā)生或長或短的“失靈”,現(xiàn)分享我的一個(gè)解決方案。將按鍵掃描放到定時(shí)器中斷里面,這樣就可周期性地檢測(cè)按鍵按下情況,不受主循環(huán)的影響。并且,能解析出按鍵的不同狀態(tài),即按下、按住、彈起、為按下這四種狀態(tài),用以實(shí)現(xiàn)更豐富的功能。
但需注意兩點(diǎn),一是定時(shí)器的定時(shí)時(shí)間,不可過長也不可過短,過長容易檢測(cè)不到按下,過短會(huì)占用大量時(shí)間資源。二是中斷服務(wù)程序需簡(jiǎn)單明了,只做檢測(cè)用,通過全局變量傳遞,在主循環(huán)內(nèi)完成按鍵響應(yīng),中斷服務(wù)函數(shù)內(nèi)盡量不要占用太多時(shí)間。
推薦閱讀:
特別推薦
- 兆易創(chuàng)新GD32F30x STL軟件測(cè)試庫獲得德國萊茵TüV IEC 61508功能安全認(rèn)證
- 芯科科技第三代無線開發(fā)平臺(tái)引領(lǐng)物聯(lián)網(wǎng)發(fā)展
- MSO 4B 示波器為工程師帶來更多臺(tái)式功率分析工具
- 艾為電子推出新一代高線性度GNSS低噪聲放大器——AW15745DNR
- 瑞薩發(fā)布四通道主站IC和傳感器信號(hào)調(diào)節(jié)器, 以推動(dòng)不斷增長的IO-Link市場(chǎng)
- e絡(luò)盟現(xiàn)貨供應(yīng) Abracon 新推出的 AOTA 系列微型鑄型電感器
- 加賀富儀艾電子推出支持Wi-Fi 6和藍(lán)牙的無線局域網(wǎng)/藍(lán)牙組合模塊
技術(shù)文章更多>>
- 數(shù)字驅(qū)動(dòng)工業(yè),智能賦能制造 AMTS & AHTE SOUTH CHINA 2024同期會(huì)議全公開!
- 團(tuán)體觀展招募!104CEF開啟組團(tuán)觀眾通道,解鎖更多禮遇
- 觸摸式OLED顯示屏有望重新定義汽車用戶界面
- 用Python自動(dòng)化雙脈沖測(cè)試
- 揭秘電動(dòng)汽車中直流鏈路電容器的奧秘(上)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
電阻觸控屏
電阻器
電阻作用
調(diào)速開關(guān)
調(diào)諧器
鼎智
動(dòng)力電池
動(dòng)力控制
獨(dú)石電容
端子機(jī)
斷路器
斷路器型號(hào)
多層PCB
多諧振蕩器
扼流線圈
耳機(jī)
二極管
二極管符號(hào)
發(fā)光二極管
防靜電產(chǎn)品
防雷
防水連接器
仿真工具
放大器
分立器件
分頻器
風(fēng)力渦輪機(jī)
風(fēng)能
風(fēng)扇
風(fēng)速風(fēng)向儀