衡阳派盒市场营销有限公司

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

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

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

藍(lán)橋杯中GPIO輸入之按鍵實(shí)驗(yàn)

撞上電子 ? 2025-01-09 21:02 ? 次閱讀

第一節(jié) 按鍵的基本知識(shí)

按鍵按照結(jié)構(gòu)原理可分為兩類,一類是觸點(diǎn)式開關(guān)按鍵,如機(jī)械式開關(guān)、導(dǎo)電橡膠式開關(guān)燈;另一類是無觸點(diǎn)式開關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價(jià)低,后者壽命長(zhǎng)。目前,微機(jī)系統(tǒng)中最常見的是觸點(diǎn)式開關(guān)按鍵。

單片機(jī)應(yīng)用系統(tǒng)中,除了復(fù)位按鍵有專門的復(fù)位電路及專一的復(fù)位功能外,其他按鍵都是以開關(guān)狀態(tài)來設(shè)置控制功能或輸入數(shù)據(jù)的。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時(shí),計(jì)算機(jī)應(yīng)用系統(tǒng)應(yīng)完成該按鍵所設(shè)定的功能,按鍵信息輸入時(shí)與軟件結(jié)構(gòu)密切相關(guān)的過程。

對(duì)于一組按鍵或一個(gè)鍵盤,總有一個(gè)接口電路與MCU相連。MCU可以采用查詢或中斷方式了解有無將按鍵輸入,并檢查是哪一個(gè)按鍵按下,將該鍵號(hào)送入程序,然后通過指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完成后再返回主程序。

按鍵通常使用機(jī)械觸點(diǎn)式按鍵開關(guān),其主要功能式把機(jī)械上的通斷轉(zhuǎn)換為電氣上的邏輯關(guān)系。也就是說,它能提供標(biāo)準(zhǔn)的TTL邏輯電平,以便于通用數(shù)字系統(tǒng)的邏輯電平相容。機(jī)械式按鍵再按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定的時(shí)間觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來。

04865f58-ce8a-11ef-9434-92fbcf53809c.png

抖動(dòng)時(shí)間的長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為5~10ms。在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷,可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放錯(cuò)誤的被認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取消抖措施。硬件的消抖方案有很多種:在按鍵引腳與微控制器之間添加外部電路元件,如電容電阻或Schmitt觸發(fā)器等,這些電路元件可以濾除按鍵的電氣噪音,提供更穩(wěn)定的電平信號(hào)

單片機(jī)控制系統(tǒng)中,如果只需要幾個(gè)功能鍵,此時(shí),可采用獨(dú)立式按鍵結(jié)構(gòu)。獨(dú)立按鍵式直接用I/O口構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)式每個(gè)按鍵單獨(dú)占用一根I/O口,每個(gè)按鍵的工作不會(huì)影響其他I/O口的狀態(tài)。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一個(gè)I/O口,因此,在按鍵較多時(shí),I/O口浪費(fèi)較大,不宜采用。

獨(dú)立按鍵的軟件常采用查詢式結(jié)構(gòu)。先逐位查詢與I/O口的輸入狀態(tài),如某一根I/O口輸入為低電平,則可確認(rèn)該I/O口所對(duì)應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。

單片機(jī)按鍵一般通過配備上拉電阻來實(shí)現(xiàn)輸入端高低電平的切換。

04a34cd0-ce8a-11ef-9434-92fbcf53809c.png

4條輸入線接到單片機(jī)的IO口上,當(dāng)按鍵K1按下時(shí),+5V通過電阻R1然后再通過按鍵K1最終進(jìn)入GND形成一條通路,那么這條線路的全部電壓都加到了R1這個(gè)電阻上,KeyIn1這個(gè)引腳就是個(gè)低電平。當(dāng)松開按鍵后,線路斷開,就不會(huì)有電流通過,那么KeyIn1和+5V就應(yīng)該是等電位,是一個(gè)高電平。我們就可以通過KeyIn1這個(gè)IO口的高低電平來判斷是否有按鍵按下。

第二節(jié) 硬件解讀

04c0ec72-ce8a-11ef-9434-92fbcf53809c.png

從圖中我們可以看出,藍(lán)橋杯物聯(lián)網(wǎng)開發(fā)板上面有2個(gè)可編程按鍵,分別連接到PA8和PB8。如果PA8是高電平,就證明按鍵沒有被按下,反之則被按下。

第三節(jié) CubeMX配置

第一步:配置PA8和PB8為輸入模式,如下:

04d906cc-ce8a-11ef-9434-92fbcf53809c.png

第二步:配置GPIO為上拉,并配置用戶標(biāo)簽,如下圖,

04fb586c-ce8a-11ef-9434-92fbcf53809c.png

其中:具體配置信息如下:

GPIO mode:表示輸入模式,固定可為輸入模式(Input mode);

GPIO Pull-up/Pull-down:表示是否上下拉,可配置為上拉(Pull-up)或者下拉(Pull-down)或不上拉也不下拉(No Pull-up and no Pull-down);

User Label:表示用戶標(biāo)簽,可修改IO口名稱,比如可寫入KEY,把IO口名稱變?yōu)镵EY;

第四節(jié) MDK代碼

050928de-ce8a-11ef-9434-92fbcf53809c.png

結(jié)合上圖,可以看出需要20ms的消抖時(shí)間。所以按鍵的模板代碼如下:

0520127e-ce8a-11ef-9434-92fbcf53809c.png

不要忘記在.h文件中聲明哦:

053af418-ce8a-11ef-9434-92fbcf53809c.png

最后我們?cè)趙hile中讀取按鍵,就可以啦:

0553f580-ce8a-11ef-9434-92fbcf53809c.png

第五節(jié) 實(shí)驗(yàn)現(xiàn)象

注意:

1,請(qǐng)用USB線連接電腦與開發(fā)板。

2,請(qǐng)選擇A開發(fā)板。

現(xiàn)象:

1,按下按鍵ASW1,AL1翻轉(zhuǎn)一次。

2,按下按鍵ASW2,AL2翻轉(zhuǎn)一次。

來源:撞上電子微信公眾號(hào)

版權(quán):東莞市東城墨竹公子電子工作室

日期:2024.11.03

第六節(jié) 課后作業(yè)

按下按鍵ASW1,AL3翻轉(zhuǎn)。

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

    關(guān)注

    6043

    文章

    44621

    瀏覽量

    638495
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1216

    瀏覽量

    52377
  • 藍(lán)橋杯
    +關(guān)注

    關(guān)注

    1

    文章

    129

    瀏覽量

    10195
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    藍(lán)橋嵌入式STM32F103RBT6教程及常見問題有哪些

    藍(lán)橋嵌入式STM32F103RBT6教程及常見問題藍(lán)橋stm32嵌入式開發(fā)板如圖所示:一、基本的硬件、軟件連接問題以及編譯問題:一、電
    發(fā)表于 07-15 06:07

    藍(lán)橋嵌入式的相關(guān)資料下載

    藍(lán)橋嵌入式比賽,開發(fā)板的主控芯片是stm32f103rbt6,芯片采用的架構(gòu)是Cortex-M3。開發(fā)板上模塊較少,在比賽中使用到的模塊:1塊LCD顯示屏,4個(gè)獨(dú)立按鍵,1個(gè)蜂鳴器
    發(fā)表于 10-27 09:55

    基于藍(lán)橋實(shí)驗(yàn)平臺(tái)的51單片機(jī)的知識(shí)

    單片機(jī),因此想趁著閑暇時(shí)間總結(jié)一下基于藍(lán)橋實(shí)驗(yàn)平臺(tái)的51單片機(jī)的知識(shí),順便寫幾篇博客總結(jié)一下。最后祝愿所有參加藍(lán)橋的朋友們都能夠取得一個(gè)
    發(fā)表于 01-12 07:27

    藍(lán)橋單片機(jī)設(shè)計(jì)與開發(fā)組競(jìng)賽,按鍵

    按鍵幾乎也是每次藍(lán)橋單片機(jī)設(shè)計(jì)與開發(fā)組競(jìng)賽的必考部分,因?yàn)檫@是CT107D開發(fā)平臺(tái)上僅有的輸入設(shè)備之一,而且按鍵也是單片機(jī)基礎(chǔ)開發(fā)中常見的
    發(fā)表于 04-13 08:00 ?49次下載

    GPIO輸入--按鍵

    程序簡(jiǎn)介 -工程名稱:GPIO輸入--按鍵 -實(shí)驗(yàn)平臺(tái): 秉火STM32 F429 開發(fā)板 -MDK版本:5.16 -ST固件庫版本:1.5.1 【 !】功能簡(jiǎn)介: 使用兩個(gè)
    發(fā)表于 12-12 19:08 ?3次下載

    【學(xué)習(xí)】藍(lán)橋嵌入式--按鍵輸入

    藍(lán)橋必考的四個(gè)東西(至少我認(rèn)為的是這樣的)LED燈 LCD,按鍵,EEPROM。在上一篇文章介紹的是流水燈,這一篇就是按鍵輸入。實(shí)現(xiàn)的任務(wù)
    發(fā)表于 10-20 12:06 ?1次下載
    【學(xué)習(xí)】<b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>嵌入式--<b class='flag-5'>按鍵</b><b class='flag-5'>輸入</b>

    藍(lán)橋嵌入式拓展板學(xué)習(xí)索引

    藍(lán)橋嵌入式開發(fā)拓展板學(xué)習(xí)目錄如果說你是剛開始準(zhǔn)備學(xué)習(xí)拓展版,那就完全可以按著我這個(gè)順序去學(xué)習(xí)。藍(lán)橋嵌入式擴(kuò)展板模塊數(shù)碼管
    發(fā)表于 10-21 09:51 ?3次下載
    <b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>嵌入式拓展板學(xué)習(xí)索引

    藍(lán)橋單片機(jī)開發(fā) keil工程建立

    藍(lán)橋單片機(jī)開發(fā) keil工程建立
    發(fā)表于 11-13 14:06 ?11次下載
    <b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b><b class='flag-5'>之</b>單片機(jī)開發(fā)  keil工程建立

    GPIO輸入驅(qū)動(dòng)實(shí)驗(yàn)按鍵控制

    GPIO輸入驅(qū)動(dòng)實(shí)驗(yàn)按鍵控制寫在前面:和beep實(shí)驗(yàn)一樣,在已有的工程框架上加功能就行了,沖!!!對(duì)了這次會(huì)對(duì)
    發(fā)表于 12-20 19:14 ?1次下載
    <b class='flag-5'>GPIO</b><b class='flag-5'>輸入</b>驅(qū)動(dòng)<b class='flag-5'>實(shí)驗(yàn)</b>-<b class='flag-5'>按鍵</b>控制

    藍(lán)橋模塊練習(xí)按鍵掃描

    藍(lán)橋單片機(jī)比賽系列3按鍵掃描按鍵掃描原理及實(shí)現(xiàn)在獨(dú)立鍵盤模式時(shí),要將J5跳在BTN模式。也就是J52,3短路。此時(shí)S7,S6,S5,S4
    發(fā)表于 12-20 19:42 ?7次下載
    <b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>模塊練習(xí)<b class='flag-5'>之</b><b class='flag-5'>按鍵</b>掃描

    STM32 按鍵輸入實(shí)驗(yàn)

    加粗樣式一.實(shí)驗(yàn)目的1.熟悉使用STM32F4XX開發(fā)板2.掌握其GPIO的使用方法3.掌握按鍵的實(shí)現(xiàn)方法二.實(shí)現(xiàn)步驟(1)使能按鍵對(duì)應(yīng)IO口時(shí)鐘。調(diào)用函數(shù)
    發(fā)表于 12-27 18:53 ?4次下載
    STM32 <b class='flag-5'>按鍵</b><b class='flag-5'>輸入</b><b class='flag-5'>實(shí)驗(yàn)</b>

    藍(lán)橋單片機(jī)——獨(dú)立按鍵、矩陣按鍵

    藍(lán)橋單片機(jī)硬件基礎(chǔ)獨(dú)立按鍵跳線帽需要短接J5口的3和2引腳,按鍵能使用的僅有第一列(即上圖中S4、S5、S6、S7)。當(dāng)按鍵按下時(shí),相應(yīng)的
    發(fā)表于 12-31 19:29 ?1次下載
    <b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>單片機(jī)——獨(dú)立<b class='flag-5'>按鍵</b>、矩陣<b class='flag-5'>按鍵</b>

    GPIO輸入——按鍵檢測(cè)

    按鍵檢測(cè)使用到GPIO外設(shè)的基本輸入功能,本章不再贅述GPIO外設(shè)的概念,如您忘記了可重新回到第八章節(jié)進(jìn)行閱讀。
    的頭像 發(fā)表于 02-15 15:45 ?2855次閱讀
    <b class='flag-5'>GPIO</b><b class='flag-5'>輸入</b>——<b class='flag-5'>按鍵</b>檢測(cè)

    i.MX6ULL學(xué)習(xí)筆記:GPIO按鍵輸入捕獲

    掌握GPIO輸入輸出是必備技能,這篇推文繼續(xù)來學(xué)習(xí)操作GPIO,這篇主要學(xué)習(xí)GPIO輸入,通過使用
    的頭像 發(fā)表于 04-06 10:37 ?1247次閱讀

    詳解GPIO輸入實(shí)驗(yàn)

    在前兩期的更新里,給大家介紹了STM32CubeMx的基礎(chǔ)安裝以及利用STM32CubeMx+MDK完成了GPIO輸出實(shí)驗(yàn)(點(diǎn)亮一個(gè)LED燈),今天就給大家介紹GPIO輸入
    的頭像 發(fā)表于 07-02 16:36 ?1154次閱讀
    詳解<b class='flag-5'>GPIO</b><b class='flag-5'>輸入</b><b class='flag-5'>實(shí)驗(yàn)</b>
    百家乐官网视频游戏大厅| 威尼斯人娱乐城安全吗| 线上百家乐官网代理| 老虎机定位器| 华盛顿百家乐官网的玩法技巧和规则 | 盐城市| 百家乐程序开户发| 圣安娜百家乐官网包杀合作| 保时捷娱乐城可靠吗| 百家乐事电影| 澳门百家乐官网怎么赢钱| 大发888老虎机平台| 百家乐官网真人现场| 百家乐官网闲拉长龙| 新全讯网xb112| 百家乐体育nba| 大发888游戏官网| 新葡京百家乐现金网| 百家乐官网网络赌博网址| 大发888官网充值| 澳门百家乐真人版| 欢乐博百家乐官网娱乐城| 云顶会所| 新濠峰百家乐的玩法技巧和规则| 百家乐官网真人现场| 真人百家乐官网是啥游戏| 娱网棋牌官方网站| 巴特百家乐的玩法技巧和规则| 新世百家乐官网的玩法技巧和规则| 百家乐官网靠什么赢| 百家乐网页游戏| 百家乐技术方式| E乐博百家乐官网娱乐城| 盐亭县| 大发888下载客户端| 百家乐娱乐代理| 百家乐现场网络| 百家乐官网开户送18元| 永盈会娱乐场官网| 皇冠网百家乐啊| 线上百家乐|