0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

四種單片機(jī)按鍵軟硬件設(shè)計(jì)方案介紹

貿(mào)澤電子設(shè)計(jì)圈 ? 來源:YXQ ? 作者:電子發(fā)燒友 ? 2019-08-05 16:40 ? 次閱讀

單片機(jī)系統(tǒng)里,按鍵是常見的輸入設(shè)備。本文將介紹四種按鍵硬件設(shè)計(jì)上的方案和一些軟件設(shè)計(jì)方面的技巧。

一、直接檢測GPIO口單個(gè)按鍵,如圖1所示。

圖1:方案一

二、在按鍵較多的情況下,則使用矩陣鍵盤,如圖2所示。

圖2:方案二

三、將按鍵接到外部中斷引腳上,利用按鍵按下產(chǎn)生的邊沿信號進(jìn)行按鍵檢測,如圖3所示。

圖3:方案三

四、利用單片機(jī)的數(shù)字轉(zhuǎn)換器ADC - Analog-to-digital converter),設(shè)定按鍵按下前后經(jīng)過ADC接口電壓的不同,根據(jù)電壓的差別來識別按鍵,如圖4所示。

圖4:方案四

以上四種設(shè)計(jì)分別各有優(yōu)點(diǎn)和不足。

第一種設(shè)計(jì)是最簡單、最基礎(chǔ)的做法,對于單片機(jī)初學(xué)者很容易理解和使用,但缺點(diǎn)是需要在主循環(huán)中不斷檢測按鍵是否按下,并且需要做消抖處理。若主循環(huán)中某個(gè)函數(shù)任務(wù)占用時(shí)間較長,則按鍵會有不同程度的“失靈”。

第二種設(shè)計(jì)的優(yōu)點(diǎn)是能夠在GPIO數(shù)量有限的情況下,擴(kuò)展盡可能多的按鍵。但缺點(diǎn)同上,需要不停檢測按鍵是否按下。

第三種設(shè)計(jì)的效率最高,不需要循環(huán)檢測按鍵是否按下,但缺點(diǎn)是需要單片機(jī)有足夠的外部中斷接口供使用。

第四種設(shè)計(jì)的優(yōu)點(diǎn)是只需要單片機(jī)有一個(gè)ADC接口、一根線,就能對多個(gè)按鍵進(jìn)行識別,缺點(diǎn)是按鍵內(nèi)部一旦接觸不良,則可能導(dǎo)致按鍵串位,并且按鍵產(chǎn)生的抖動(dòng)有可能會造成識別錯(cuò)誤。

在以上常見按鍵設(shè)計(jì)的基礎(chǔ)上,分享一下我學(xué)習(xí)和工作中總結(jié)的按鍵方案。

改進(jìn)一:在原方案一的基礎(chǔ)上,加上與門電路,使得任何一個(gè)按鍵按下都能產(chǎn)生中斷,然后在中斷里面識別是哪個(gè)按鍵被按下。這改動(dòng)令電路不需要循環(huán)掃描,大大提高了效率。方案如圖5所示。只需要在每個(gè)按鍵對應(yīng)地增加一個(gè)二極管,利用二極管的線與特性,就可以實(shí)現(xiàn)按下任何按鍵都能產(chǎn)生中斷信號,同時(shí)按鍵之間互不影響。二極管選用普通整流二極管即可,經(jīng)過測試,可靠可行。

圖5:改進(jìn)一

改進(jìn)二:在原有ADC按鍵的基礎(chǔ)上,也可以增加二極管的方式,實(shí)現(xiàn)按鍵中斷,并在中斷服務(wù)程序里進(jìn)行AD轉(zhuǎn)換,從而識別按鍵。電路如圖6所示。

圖6:改進(jìn)二

改進(jìn)三:按鍵時(shí)難免會作成抖動(dòng),因此必需按鍵消抖。消抖也可以通過硬件消抖和軟件消抖,這里分享一個(gè)十分簡單且有效的硬件消抖方法:給按鍵并聯(lián)一個(gè)104左右的電容,這樣軟件上基本不用處理即可消除抖動(dòng)。

改進(jìn)四:在按鍵掃描檢測的方案下,如果主循環(huán)中有某個(gè)函數(shù)占用時(shí)間較長,按鍵或會發(fā)生長短不一的“失靈”。對此可以將按鍵掃描放到定時(shí)器中斷里面,這樣就可周期性地檢測按鍵按下的情況,在不受主循環(huán)的影響下解析出按鍵的不同狀態(tài)。(按下、按住、彈起和未按下)

如果都設(shè)置了以上的改進(jìn),仍要注意以下兩點(diǎn):

一、定時(shí)器的定時(shí)時(shí)間不可過長也不可過短。過長容易檢測不到按下,過短會占用大量時(shí)間資源。

二、中斷服務(wù)程序需簡單明了。只做檢測用,通過全局變量傳遞,在主循環(huán)內(nèi)完成按鍵響應(yīng),盡量不要在中斷服務(wù)函數(shù)內(nèi)占用太多時(shí)間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628383
  • 軟硬件
    +關(guān)注

    關(guān)注

    1

    文章

    282

    瀏覽量

    19147
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    222

    瀏覽量

    57491

原文標(biāo)題:這些單片機(jī)按鍵設(shè)計(jì)方案,拿走不謝!

文章出處:【微信號:Mouser-Community,微信公眾號:貿(mào)澤電子設(shè)計(jì)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)io口的四種工作狀態(tài)

    單片機(jī)的I/O口工作狀態(tài)是單片機(jī)編程和硬件操作中非常重要的一部分,它決定了單片機(jī)如何與外部設(shè)備進(jìn)行通信。 1. 單片機(jī)I/O口的基本概念
    的頭像 發(fā)表于 09-14 14:24 ?280次閱讀

    國產(chǎn)精密信號鏈產(chǎn)品完整解決方案,軟硬件兼容TI和ADI

    國產(chǎn)精密信號鏈產(chǎn)品完整解決方案,軟硬件兼容TI和ADI
    的頭像 發(fā)表于 08-19 09:58 ?187次閱讀
    國產(chǎn)精密信號鏈產(chǎn)品完整解決<b class='flag-5'>方案</b>,<b class='flag-5'>軟硬件</b>兼容TI和ADI

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案

    機(jī)器視覺系統(tǒng)讀取二維碼-軟硬件配置方案
    的頭像 發(fā)表于 05-24 00:56 ?352次閱讀
    機(jī)器視覺系統(tǒng)讀取二維碼-<b class='flag-5'>軟硬件</b>配置<b class='flag-5'>方案</b>

    電池管理系統(tǒng)(BMS)軟硬件介紹

    電子發(fā)燒友網(wǎng)站提供《電池管理系統(tǒng)(BMS)軟硬件介紹.pdf》資料免費(fèi)下載
    發(fā)表于 03-27 09:20 ?8次下載

    單片機(jī)按鍵切換模式命令

    單片機(jī)按鍵切換模式命令是指在單片機(jī)系統(tǒng)中,通過按下按鍵來切換系統(tǒng)工作模式的命令。這種命令通常用于控制系統(tǒng)的狀態(tài)和功能,使系統(tǒng)能夠根據(jù)用戶的需求進(jìn)行靈活的切換,提供多種工作模式選擇。本文
    的頭像 發(fā)表于 12-15 10:31 ?2334次閱讀

    單片機(jī)按鍵切換模式怎么設(shè)置

    單片機(jī)作為一微處理器,在各種嵌入式系統(tǒng)中扮演著核心控制器的角色。其中,按鍵輸入作為單片機(jī)控制中常見的交互方式,實(shí)現(xiàn)模式切換是常見的需求。本文將詳細(xì)
    的頭像 發(fā)表于 12-13 11:07 ?3161次閱讀

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能呢?

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能呢? 觸摸按鍵是一使用觸摸電容技術(shù)實(shí)現(xiàn)的按鍵,它通過利用人體的電容來實(shí)現(xiàn)
    的頭像 發(fā)表于 12-07 11:43 ?3219次閱讀

    單片機(jī)的數(shù)控開關(guān)電源設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)的數(shù)控開關(guān)電源設(shè)計(jì)方案.pdf》資料免費(fèi)下載
    發(fā)表于 11-13 15:15 ?0次下載
    <b class='flag-5'>單片機(jī)</b>的數(shù)控開關(guān)電源<b class='flag-5'>設(shè)計(jì)方案</b>

    GPIO的四種輸入模式介紹

    32位寄存器共同控制。 輸出和輸入都是針對芯片引腳來講的(即引腳的對外輸出,和外界對引腳的輸入)。 四種輸入模式介紹 輸入模式下可讀取端口的高低電平或電壓。例如各類傳感器(使用ADC功能),如果要將獲取的電平傳送給單片機(jī)的某一個(gè)
    的頭像 發(fā)表于 11-09 16:51 ?5342次閱讀
    GPIO的<b class='flag-5'>四種</b>輸入模式<b class='flag-5'>介紹</b>

    基于AVR單片機(jī)的終端顯控設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《基于AVR單片機(jī)的終端顯控設(shè)計(jì)方案.doc》資料免費(fèi)下載
    發(fā)表于 11-03 10:53 ?0次下載
    基于AVR<b class='flag-5'>單片機(jī)</b>的終端顯控<b class='flag-5'>設(shè)計(jì)方案</b>

    基于單片機(jī)按鍵電路設(shè)計(jì)(2)

    按鍵作為一個(gè)輸入模塊,在單片機(jī)開發(fā)板中必不可少,本文來討論按鍵設(shè)計(jì)方案。本文1600字。之后可能對按鍵編程部分進(jìn)行分析(可能是視頻形式,打
    的頭像 發(fā)表于 10-31 15:16 ?2474次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>按鍵</b>電路設(shè)計(jì)(2)

    基于單片機(jī)按鍵電路設(shè)計(jì)(1)

    按鍵作為一個(gè)輸入模塊,在單片機(jī)開發(fā)板中必不可少,本文來討論按鍵設(shè)計(jì)方案。本文1500字。下篇文章將展示出電路圖。
    的頭像 發(fā)表于 10-31 15:15 ?1760次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>按鍵</b>電路設(shè)計(jì)(1)

    基于CW32單片機(jī)做的軟硬件開源項(xiàng)目

    今天就再給大家分享一個(gè)基于CW32單片機(jī)做的軟硬件開源項(xiàng)目,其中包括RTOS、GUI、藍(lán)牙、電源管理等眾多常用功能。
    的頭像 發(fā)表于 10-19 10:17 ?910次閱讀
    基于CW32<b class='flag-5'>單片機(jī)</b>做的<b class='flag-5'>軟硬件</b>開源項(xiàng)目

    軟硬件融合的概念和內(nèi)涵

    跟很多朋友交流,當(dāng)提到軟硬件融合的時(shí)候,他們會這么說:“軟硬件融合,難道不是顯而易見嗎?我感覺在二三十年前就已經(jīng)有這個(gè)概念了?!痹谒麄兊南敕ɡ铮鋵?shí):軟硬件融合等同于軟硬件協(xié)同,甚至等
    的頭像 發(fā)表于 10-17 14:36 ?1152次閱讀
    <b class='flag-5'>軟硬件</b>融合的概念和內(nèi)涵

    西門子PLC-224XP國產(chǎn)替代詳細(xì)軟硬件方案

    本文介紹一款關(guān)于西門子PLC-224XP的一整套國產(chǎn)替代方案,包含詳細(xì)的軟硬件方案硬件方案包括
    的頭像 發(fā)表于 10-16 11:30 ?2123次閱讀
    西門子PLC-224XP國產(chǎn)替代詳細(xì)<b class='flag-5'>軟硬件</b><b class='flag-5'>方案</b>