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

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

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

矩陣鍵盤的檢測(cè)和獨(dú)立按鍵的區(qū)別

h1654155971.7688 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-04-25 08:51 ? 次閱讀

這次我接著上次的說(shuō),講一下 復(fù)合按鍵和 矩陣鍵盤。

先說(shuō)矩陣鍵盤,因?yàn)槲覍懙慕M合鍵代碼是在矩陣鍵盤的基礎(chǔ)上寫的,當(dāng)然在獨(dú)立按鍵上寫組合鍵更簡(jiǎn)單一些。所以當(dāng)你矩陣鍵盤的組合鍵會(huì)寫的時(shí)候,你在獨(dú)立按鍵上的組合鍵也就會(huì)寫了。

矩陣鍵盤的檢測(cè)和獨(dú)立按鍵有很大的區(qū)別,但是究其本質(zhì)還是一樣的。

先看一下矩陣鍵盤的原理圖:

矩陣鍵盤原理圖

由于矩陣鍵盤中每一個(gè)按鍵的兩個(gè)接線口都是接在IO口上的,所以我們就必須在軟件里面控制單片機(jī)在每個(gè)獨(dú)立按鍵的兩端加上不同的電平。

【注】:獨(dú)立按鍵很簡(jiǎn)單,直接在一端接地就行了。

從上面的原理圖中可以看出 P1 口的高四位控制 行,第四位控制 列;所以我們就可以寫 P1 = 0X0F 或者寫 P1 = 0XF0,這樣就實(shí)現(xiàn)了在每一個(gè)獨(dú)立按鍵兩端加上不同的電平。

代碼編寫流程和獨(dú)立按鍵一樣,第一步要先檢測(cè)到按鍵按下,根據(jù)上面的原理圖,矩陣鍵盤檢測(cè)按鍵是否按下只要給 P1 口賦值 0X0F,然后檢測(cè) P1 口的值是否還是 0X0F即可。

之后就要消除抖動(dòng),消除抖動(dòng)的方法還是一樣,延時(shí)一段時(shí)間即可,如圖:

單片機(jī)矩陣鍵盤消除抖動(dòng)

之后就判斷具體是哪個(gè)按鍵按下就行了。

【注】矩陣鍵盤復(fù)雜就是復(fù)雜在這里。

判斷到底是哪個(gè)按鍵按下的思路有兩種:

1、逐行掃描

逐行掃描就是說(shuō)先掃描第一行中的哪個(gè)按鍵按下了,如果沒有再掃描第二行,看一下是不是第二行里的某個(gè)按鍵按下了,如果還沒有找到按下的那個(gè)按鍵,那么就繼續(xù)掃描第三行、第四行,知道找出哪個(gè)按鍵被按下了。這個(gè)代碼實(shí)現(xiàn)比較簡(jiǎn)單,而且這種掃描方法不怎么常用,效率不高,所以這里我就不寫了。

2、行列掃描

行列掃描就是說(shuō)先掃描所有的行,確定是哪一行的按鍵被按下了,之后再掃描所有的列,找出哪一列有按鍵被按下了,這樣只要掃描兩次就可以確定出到底是哪個(gè)按鍵被按下了。

具體代碼實(shí)現(xiàn)如下:

1、行掃描:

單片機(jī)矩陣鍵盤行掃描

2、列掃描:

單片機(jī)矩陣鍵盤列掃描

最后別忘了按鍵的松開檢測(cè):

單片機(jī)矩陣鍵盤按鍵松開檢測(cè)

這樣矩陣鍵盤的編寫就說(shuō)完了,下面說(shuō)組合鍵,寫第七篇的時(shí)候我給它起名字叫復(fù)合按鍵,現(xiàn)在覺得不太好,要不就叫組合鍵吧。

組合鍵就是說(shuō)當(dāng)按住一個(gè)按鍵的同時(shí)再按另一個(gè)按鍵的時(shí)候,會(huì)有不同的效果。比如:Ctrl+C是復(fù)制、Shift+數(shù)字鍵可以敲出特殊字符等等。

代碼編寫思路就是:當(dāng)按住第一個(gè)按鍵的時(shí)候,只要這個(gè)按鍵不松開就一直檢測(cè)能夠和它組合的按鍵,根據(jù)按鍵的不同組合實(shí)現(xiàn)不同的效果。

代碼如下:

單片機(jī)矩陣鍵盤組合鍵

大家對(duì)照代碼仔細(xì)看一下就明白了。

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

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635637
  • 矩陣鍵盤
    +關(guān)注

    關(guān)注

    7

    文章

    206

    瀏覽量

    31481

原文標(biāo)題:51單片機(jī)--矩陣鍵盤

文章出處:【微信號(hào):weixin21ic,微信公眾號(hào):21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    區(qū)別獨(dú)立按鍵矩陣按鍵

    獨(dú)立按鍵矩陣按鍵有什么區(qū)別
    發(fā)表于 07-30 11:55

    單片機(jī)獨(dú)立按鍵矩陣鍵盤概念及原理

    的邏輯處理辦法。每次只處理一個(gè)按鍵,期間對(duì)任何按鍵的操作對(duì)系統(tǒng)不產(chǎn)生影響,且無(wú)論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次按鍵功能程序。c.準(zhǔn)確輸出按鍵
    發(fā)表于 11-30 16:32

    獨(dú)立鍵盤檢測(cè)矩陣鍵盤檢測(cè)

    獨(dú)立鍵盤檢測(cè)矩陣鍵盤檢測(cè)一、獨(dú)立
    發(fā)表于 07-20 06:20

    獨(dú)立按鍵編程

    使用單片機(jī)外部中斷來(lái)處理按鍵1.9.8.矩陣鍵盤的原理1.9.9.矩陣鍵盤編程實(shí)戰(zhàn)第二部分、章節(jié)介紹1.9.1.
    發(fā)表于 11-22 08:09

    矩陣鍵盤獨(dú)立鍵盤的原理介紹

    學(xué)到矩陣鍵盤這一塊對(duì)網(wǎng)上別人寫的C代碼有些疑問(wèn),希望有能看到的大牛幫助解答。矩陣鍵盤獨(dú)立鍵盤
    發(fā)表于 01-13 08:10

    單片機(jī)獨(dú)立按鍵矩陣鍵盤的原理是什么?

    單片機(jī)獨(dú)立按鍵矩陣鍵盤的原理是什么?鍵盤的工作方式是什么?
    發(fā)表于 01-18 07:31

    矩陣鍵盤檢測(cè)獨(dú)立按鍵與單片機(jī)連接

    4.2 矩陣鍵盤檢測(cè)獨(dú)立按鍵與單片機(jī)連接時(shí),每個(gè)按鍵都需要單片機(jī)的一個(gè)I/O口,若單片機(jī)系統(tǒng)需要
    發(fā)表于 02-22 06:14

    矩陣按鍵按鍵獨(dú)立按鍵檢測(cè)有什么不同的地方?

    矩陣按鍵按鍵獨(dú)立按鍵檢測(cè)有什么不同的地方
    發(fā)表于 10-11 08:05

    矩陣鍵盤實(shí)現(xiàn)按鍵顯示

    矩陣鍵盤實(shí)現(xiàn)按鍵顯示源程序。
    發(fā)表于 12-23 14:20 ?30次下載

    第四棵--KEY獨(dú)立鍵盤矩陣鍵盤檢測(cè)

    獨(dú)立鍵盤矩陣鍵盤檢測(cè),十分詳細(xì)。適合新手。
    發(fā)表于 09-01 11:44 ?0次下載

    使用單片機(jī)C語(yǔ)言實(shí)現(xiàn)獨(dú)立按鍵檢測(cè)矩陣鍵盤操作的資料和程序

    實(shí)現(xiàn)獨(dú)立按鍵檢測(cè)矩陣鍵盤操作。完成本文所需硬件:基于C51系列單片機(jī)的開發(fā)板(本文是基于STC12C5A60S2處理器的一款開發(fā)板),帶
    發(fā)表于 07-16 17:39 ?2次下載
    使用單片機(jī)C語(yǔ)言實(shí)現(xiàn)<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b><b class='flag-5'>檢測(cè)</b>與<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>操作的資料和程序

    矩陣鍵盤按鍵識(shí)別方法_矩陣鍵盤掃描程序

    矩陣鍵盤按鍵識(shí)別方法來(lái)自簡(jiǎn)單日記網(wǎng)精選推薦。在學(xué)習(xí)有關(guān)矩陣鍵盤的時(shí)候,往往要學(xué)會(huì)矩陣
    的頭像 發(fā)表于 04-20 09:39 ?3.4w次閱讀

    51單片機(jī)按鍵檢測(cè)--獨(dú)立按鍵矩陣鍵盤

    按鍵,每個(gè)按鍵對(duì)應(yīng)一個(gè)IO口,通過(guò)循環(huán)或者中斷去檢測(cè),這種方法常用于按鍵個(gè)數(shù)較少得時(shí)候。如果按鍵的個(gè)數(shù)較多,每個(gè)
    發(fā)表于 11-12 11:06 ?15次下載
    51單片機(jī)<b class='flag-5'>按鍵</b><b class='flag-5'>檢測(cè)</b>--<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b>與<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>

    51單片機(jī)鍵盤接口-獨(dú)立按鍵矩陣按鍵

    51單片機(jī)鍵盤接口-獨(dú)立按鍵矩陣按鍵按鍵的分類鍵輸入原理獨(dú)
    發(fā)表于 11-12 12:36 ?13次下載
    51單片機(jī)<b class='flag-5'>鍵盤</b>接口-<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b>和<b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>

    單片機(jī)AT89C51--7.按鍵(獨(dú)立按鍵,矩陣按鍵)

    單片機(jī)AT89C51--7.按鍵1.鍵盤類型1.1 編碼鍵盤1.2 非編碼鍵盤2.獨(dú)立鍵盤
    發(fā)表于 11-25 14:51 ?14次下載
    單片機(jī)AT89C51--7.<b class='flag-5'>按鍵</b>(<b class='flag-5'>獨(dú)立</b><b class='flag-5'>按鍵</b>,<b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>)