一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

矩陣鍵盤實現(xiàn)16個按鍵操作原理及應(yīng)該方案

貿(mào)澤電子設(shè)計圈 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-09-08 13:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

矩陣鍵盤是單片機外部設(shè)備中所使用的排布類似于矩陣的鍵盤組。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。矩陣鍵盤的優(yōu)點是節(jié)約單片機IO口,例如普通鍵盤8個IO口只能用作8個按鍵,而矩陣鍵盤能作16個按鍵。

本文以51單片機為載體介紹一種4*4矩陣鍵盤實現(xiàn)16個按鍵操作的原理、電路和軟件設(shè)計要點。

1、 矩陣鍵盤的一般電路

如圖 1矩陣鍵盤電路所示,4*4矩陣鍵盤有4行4列按鍵,單片機4個I/O口接矩陣鍵盤的行線,另外4個I/O口接矩陣鍵盤的列線,通過對行線列線的操作完成按鍵的識別和操作。

2、 矩陣鍵盤的原理

矩陣鍵盤按鍵識別的流程一般是這樣的:(1)置第1行為低電平(0),其余行為高電平,讀取列線數(shù)據(jù),列線有低電平表示此行有按鍵按下。(2)置第2行為低電平(0),其余行為高電平,讀取列線數(shù)據(jù),列線有低電平表示此行有按鍵按下。......(N-1)根據(jù)行線列線的電平不同可以識別是否有按鍵按下,哪一個按鍵按下,獲取按鍵號。(N) 根據(jù)按鍵號跳轉(zhuǎn)至對應(yīng)的按鍵處理程序。

3、 一個矩陣鍵盤程序的例子

圖2為按鍵處理的主流程,思路是依次拉低按鍵的各個行,再讀取列線的數(shù)據(jù),假如列線有低電平,則認(rèn)為此行有按鍵按下,標(biāo)記此行有按鍵按下并存入行值。

讀取列線數(shù)據(jù)的思路則是這樣,依次讀取第1-4列,假如讀取此列時為低電平,則標(biāo)記并存入列值。

下面是部分代碼:

//(1)按鍵識別程序void key() //按鍵掃描{unsigned char key_value_temp; //臨時按鍵值,默認(rèn)1111 1111(二進(jìn)制)key_value=0xff;

//鍵值key_value_temp=0xff; //鍵值臨時變量//矩陣鍵盤程序流程//依次拉低第1234行,讀入列線數(shù)據(jù)Pin_r_1=0; Pin_r_2=1;Pin_r_3=1;Pin_r_4=1; //拉低第1行。//Pin_r_1第1行行線,Pin_r_2第2行行線,其余類似key_value_temp=read_column();//讀列數(shù)據(jù)if (key_value_temp != 0xff)

//表示第一行有按鍵按下{key_value=key_value_temp & 0x1f;//獲取按鍵號,例如0001

1101表示第1行第2列的按鍵按下}Pin_r_1=1; Pin_r_2=0;Pin_r_3=1;Pin_r_4=1; //拉低第2行key_value_temp=read_column();//讀列數(shù)據(jù)if (key_value_temp != 0xff)

//表示第2行有按鍵按下{key_value=key_value_temp &0x2f;}Pin_r_1=1; Pin_r_2=1;Pin_r_3=0;Pin_r_4=1; //拉低第3行key_value_temp=read_column();//讀列數(shù)據(jù)if (key_value_temp != 0xff)

//表示第3行有按鍵按下{key_value=key_value_temp &0x3f;}Pin_r_1=1; Pin_r_2=1;Pin_r_3=1;Pin_r_4=0; //拉低第4行key_value_temp=read_column();//讀列數(shù)據(jù)if (key_value_temp != 0xff)

//表示第4行有按鍵按下{key_value=key_value_temp &0x4f;}}//(2)讀取列線數(shù)據(jù)unsigned char read_column() //讀矩陣鍵盤的列{unsigned char key_column;key_column=0xff;if(Pin_c_1==0 ) key_column=key_column & 0xfe;//1110

表示第1列按鍵按下。 key_column的低4位表示按鍵號,高4位常為1111if(Pin_c_2==0 ) key_column=key_column & 0xfd;//1101

表示第2列按鍵按下。if(Pin_c_3==0 ) key_column=key_column & 0xfb;//1011

表示第3列按鍵按下。if(Pin_c_4==0 ) key_column=key_column & 0xf7;//0111

表示第4列按鍵按下。return key_column;}以上程序?qū)?yīng)的鍵值表如下:

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

    關(guān)注

    7

    文章

    207

    瀏覽量

    32095
  • 矩陣鍵盤電路
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8287

原文標(biāo)題:一種單片機矩陣鍵盤設(shè)計,實在是太實用了~~~~

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實現(xiàn)鍵盤個性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣
    的頭像 發(fā)表于 06-05 14:19 ?639次閱讀

    ADP5587移動I/O擴展器和QWERTY鍵盤控制器技術(shù)手冊

    無需監(jiān)控鍵盤,從而將電流消耗降至較低,并增加了處理器帶寬。ADP5587 還配有緩沖器/FIFO 和按鍵事件計數(shù)器,借助溢出換行和中斷功能,可處理和跟蹤多達(dá) 10 未處理的按鍵或 G
    的頭像 發(fā)表于 05-22 11:08 ?253次閱讀
    ADP5587移動I/O擴展器和QWERTY<b class='flag-5'>鍵盤</b>控制器技術(shù)手冊

    基于Nordic nRF52840無線鍵盤、鼠標(biāo)物聯(lián)網(wǎng)解決方案

    光學(xué)或激光傳感器,提供準(zhǔn)確的指針控制和靈敏的滾輪操作,讓用戶獲得更好的操控體驗。 3、舒適設(shè)計:注重人體工程學(xué)設(shè)計,無線鍵盤提供舒適的按鍵感受和手感,減少用戶長時間操作的疲勞感。 4、
    發(fā)表于 03-25 17:44

    KEY按鍵靜電保護(hù)方案

    方案簡介 KEY按鍵是電子設(shè)備中常見的輸入設(shè)備之一,其原理簡單,常見于許多應(yīng)用,包括手機、汽車和人機界面 (HMD)。KEY按鍵通常由按鍵帽、彈簧、觸點等部分組成。當(dāng)
    的頭像 發(fā)表于 02-25 16:24 ?552次閱讀
    KEY<b class='flag-5'>按鍵</b>靜電保護(hù)<b class='flag-5'>方案</b>

    4按鍵,3GPIO如何實現(xiàn)按下指示燈閃爍

    電路如果圖,現(xiàn)在怎么操作才可以實現(xiàn)按下4按鍵有效,請大神寫一程序或者說寫按鍵檢測程序。我怎
    發(fā)表于 02-18 16:50

    AN-660:XY矩陣鍵盤與MicroConverter的接口

    電子發(fā)燒友網(wǎng)站提供《AN-660:XY矩陣鍵盤與MicroConverter的接口.pdf》資料免費下載
    發(fā)表于 01-13 16:02 ?0次下載
    AN-660:XY<b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>與MicroConverter的接口

    開發(fā)第1LVGL程序與實現(xiàn)按鍵操作

    開發(fā)第1LVGL程序與實現(xiàn)按鍵操作
    的頭像 發(fā)表于 01-07 13:49 ?2885次閱讀
    開發(fā)第1<b class='flag-5'>個</b>LVGL程序與<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>按鍵</b><b class='flag-5'>操作</b>

    求解答!用STC89C51系列數(shù)字秒表

    ,繼續(xù)計秒鍵,歸零鍵,通過上述按鍵,完成計秒功能 2.使用矩陣鍵盤結(jié)合8位LED數(shù)碼管和蜂鳴器,能夠實現(xiàn)100以內(nèi)數(shù)字的加減乘除運算,顯示結(jié)果,每按下
    發(fā)表于 12-08 16:48

    空調(diào)扇LED驅(qū)動LED驅(qū)動電路芯片VK1629

    、LED 驅(qū)動、鍵盤掃描等電路。SEG腳接LED陽極,GRID腳接LED陰極,可支持16SEGx8GRID的點陣LED顯示面板,最大支持8x4按鍵矩陣。適用于冰箱、空調(diào)、家庭影院等產(chǎn)品
    發(fā)表于 11-21 16:56

    矩陣4x4按鍵,如何把識別結(jié)果按編號01-16(十進(jìn)制)顯示在兩七段數(shù)碼管上?

    矩陣4x4按鍵,并把識別結(jié)果按編號01-16(十進(jìn)制)顯示在兩七段數(shù)碼管上,按鍵按下時顯示,
    發(fā)表于 10-31 20:43

    基于XIAO SAMD21開發(fā)板的數(shù)字鍵盤制作方案

    今天小編給大家?guī)砹藖碜杂《鹊腁rnov Sharma 制作的基于XIAO SAMD21的數(shù)字鍵盤項目,該項目可以通過按鍵在電腦和OLED的屏幕上輸入0-9的阿拉伯?dāng)?shù)字,可以當(dāng)作一數(shù)字副鍵盤
    的頭像 發(fā)表于 09-06 10:02 ?717次閱讀
    基于XIAO SAMD21開發(fā)板的數(shù)字<b class='flag-5'>鍵盤</b>制作<b class='flag-5'>方案</b>

    MATLAB中的矩陣索引

    矩陣進(jìn)行索引是從矩陣中選擇或修改部分元素的一種方式。MATLAB 有幾種索引樣式,它們不僅功能強大、靈活,而且可讀性強、表現(xiàn)力強。矩陣是 MATLAB 用來組織和分析數(shù)據(jù)的一核心組
    的頭像 發(fā)表于 09-05 09:28 ?1072次閱讀
    MATLAB中的<b class='flag-5'>矩陣</b>索引

    如何在FPGA中實現(xiàn)按鍵消抖

    在FPGA(現(xiàn)場可編程門陣列)中實現(xiàn)按鍵消抖是一重要的設(shè)計環(huán)節(jié),特別是在處理用戶輸入時,由于物理按鍵的機械特性和電氣特性,按鍵在按下和釋放
    的頭像 發(fā)表于 08-19 18:15 ?3508次閱讀

    開源項目!基于 Arduino DIY 漂亮的宏機械鍵盤

    。 接下來,我們將要制作的這款鍵盤擁有 12 按鍵,你可以根據(jù)自己的喜好和需求,將這些按鍵與所需的快捷鍵進(jìn)行關(guān)聯(lián)。盡管這個項目聽起來可能有些復(fù)雜,但實際上無論是電子部分還是軟件部分,
    發(fā)表于 08-19 17:02

    【xG24 Matter開發(fā)套件試用體驗】物聯(lián)網(wǎng)密碼柜之驅(qū)動矩陣鍵盤和OLED顯示器

    ) display_password(oled, password) time.sleep(0.01)# 防止CPU占用過高 階段性總結(jié) 本次使用circuitpython實現(xiàn)了對矩陣鍵盤和Oled顯示屏的驅(qū)動以及密碼校驗部
    發(fā)表于 08-04 23:04