13 矩陣按鍵

單片機STC89C52學習——13 矩陣按鍵

匯總:00 單片機STC89C52學習
參考教程:普中科技

1 工作原理

1.1 矩陣按鍵的由來

使用較少IO口沐兰,控制較多按鍵
原理圖

1.2 矩陣按鍵掃描原理

  1. 逐行掃描
    通過高四位輪流輸出低電平來對矩陣鍵盤進行逐行掃描,當?shù)退奈唤邮盏降臄?shù)據(jù)不全為1的時候笆凌,說明有按鍵按下,然后通過接收到的數(shù)據(jù)是哪一位為0來判斷是哪一個按鍵被按下。
  2. 行列掃描(通常采用)
    通過高四位全部輸出低電平圈暗,低四位輸出高電平康聂。當接收到的數(shù)據(jù)啡邑,低四位不全為高電平時产徊,說明有按鍵按下嫩海,則通過接收的數(shù)據(jù)值,判斷是哪一列有按鍵按下;然后反過來,高四位輸出高電平缎脾,低四位輸出低電平拔鹰,然后根據(jù)接收到的高四位的值判斷是哪一行有按鍵按下。這樣就能夠確定是哪一個按鍵按下了涣觉。

1.3 將矩陣按鍵變?yōu)楠毩存I

如將S1痴荐、S5、S9官册、S13變?yōu)楠毩存I:
P13輸出低電平生兆,相當于獨立按鍵的GND;控制P14~P17

2 程序:矩陣按鍵——LED后四位顯示按下的矩陣按鍵

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA = P2^2;
sbit LSB = P2^3;
sbit LSC = P2^4;

#define GPIO_KEY P1// 矩陣鍵盤
// #define GPIO_DIG P0// 數(shù)碼管
#define GPIO_LED P2// LED燈

u8 keyValue = 0x00;// 全局變量
// u8 code LEDSeg[] = {0x3f , 0x06 , 0x5b , 0x4f , 
//                  0x66 , 0x6d , 0x7d , 0x07 , 
//                  0x7f , 0x6f , 0x77 , 0x7c ,
//                  0x39 , 0x5e , 0x79 , 0x71};

void delay (u16 i)
{
    while (i --);
}

void keyMat()// 行列掃描
{
    u8 a = 0;// keil默認就是0
    GPIO_KEY = 0x0f;// 高四位低電平膝宁,低四位高電平
    if (GPIO_KEY != 0x0f)// 通過低四位判斷是否按下
    {
        delay (1000);// 消抖
        if (GPIO_KEY != 0x0f)// 再次判斷
        {
            GPIO_KEY = 0x0f;// 保險起見鸦难,可以再賦一次值
            // keyValue = keyValue | GPIO_KEY;// 記錄低四位...不能這樣記錄
            switch (GPIO_KEY)
            {
                case 0x07:
                    keyValue = 0; break;
                case 0x0b:
                    keyValue = 1; break;
                case 0x0d:
                    keyValue = 2; break;
                case 0x0e:
                    keyValue = 3; break;
            }
            GPIO_KEY = 0xf0;
            // keyValue = keyValue | GPIO_KEY;// 記錄高四位...不能這樣記錄
            switch (GPIO_KEY)
            {
                case 0x70:
                    keyValue = keyValue; break;
                case 0xb0:
                    keyValue += 4; break;
                case 0xd0:
                    keyValue += 8; break;
                case 0xe0:
                    keyValue += 12; break;
            }
            while ((a < 50) && (GPIO_KEY != 0xf0))// 松開才繼續(xù),或者超時
            {
                delay(1000);
                a ++;
            }   
        }
    }   
}

void main()
{
    // LSA = 0; LSB = 0; LSC = 0;
    while (1)
    {
        keyMat();
        GPIO_LED = ~keyValue;// 在LED上顯示     
    }
}

效果:按下矩陣按鍵后员淫,相應的LED燈亮

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末合蔽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子介返,更是在濱河造成了極大的恐慌拴事,老刑警劉巖沃斤,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刃宵,居然都是意外死亡衡瓶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門牲证,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哮针,“玉大人,你說我怎么就攤上這事从隆〕夏欤” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵键闺,是天一觀的道長寿烟。 經(jīng)常有香客問我,道長辛燥,這世上最難降的妖魔是什么筛武? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮挎塌,結果婚禮上徘六,老公的妹妹穿的比我還像新娘。我一直安慰自己榴都,他們只是感情好待锈,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘴高,像睡著了一般竿音。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拴驮,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天春瞬,我揣著相機與錄音,去河邊找鬼套啤。 笑死宽气,一個胖子當著我的面吹牛,可吹牛的內容都是我干的潜沦。 我是一名探鬼主播萄涯,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唆鸡!你這毒婦竟也來了窃判?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤喇闸,失蹤者是張志新(化名)和其女友劉穎袄琳,沒想到半個月后询件,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡唆樊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年宛琅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逗旁。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘿辟,死狀恐怖,靈堂內的尸體忽然破棺而出片效,到底是詐尸還是另有隱情红伦,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布淀衣,位于F島的核電站昙读,受9級特大地震影響,放射性物質發(fā)生泄漏膨桥。R本人自食惡果不足惜蛮浑,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望只嚣。 院中可真熱鬧沮稚,春花似錦、人聲如沸册舞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽调鲸。三九已至盛杰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間线得,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工徐伐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贯钩,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓办素,卻偏偏與公主長得像角雷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子性穿,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容

  • 一勺三、原理簡介 鍵盤接口電路是單片機系統(tǒng)設計非常重要的一環(huán),作為人機交互界面里最常用的輸入設備需曾。我們可以通過鍵盤輸入...
    創(chuàng)客烏托邦閱讀 4,638評論 0 1
  • 交通燈控制設計 一吗坚、選題背景 每個城市的交通就猶如人體的血管祈远,人類生命的持續(xù)需要心臟為血液提供動力,依靠血液來在人...
    Rik_personal閱讀 1,661評論 0 0
  • 一、基本知識 1. 按鍵分類與輸入原理 按鍵按照結構原理科分為兩類牡彻,一類是觸點式開關按鍵扫沼,如機械式開關、導電橡膠式...
    Murrey_Xiao閱讀 14,100評論 1 8
  • ???本文主要介紹嵌入式系統(tǒng)的一些基礎知識庄吼,希望對各位有幫助缎除。 嵌入式系統(tǒng)基礎 1、嵌入式系統(tǒng)的定義 (1)定義:...
    OpenJetson閱讀 3,302評論 0 13
  • 已經(jīng)立冬总寻,只要想到婷婷年底回國器罐,心里便像裝了一袋花椒,被它麻辣得必須喝一桶酸奶才能抑制它的感覺废菱。 過兩個月便是我2...
    婧冰卓瑪閱讀 269評論 0 1