1.6矩陣鍵盤

先判斷列在判斷行


舉個(gè)例子 假設(shè) 按下 S7 (第一行的第二列)
P3 = 0xf0; 1111 0000 P3 = 1101 0000
P3 & 0xf0 舍棄行 保留列 1101 0000 行值
P3 = cord_l | 0x0f 將 1101 1111 => 1101 1110
P3 & 0x0f 0000 1110 列值
行+列
1101 1110

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit we = P2^7;
sbit du = P2^6;
void delay(uint z)
{
    uint x,y;
    for(x = z; x>0; x--)
        for(y = 114;y>0;y--);
}

uchar code leddata[]={ 
 
                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x00  //自定義
 
                         };
uchar KeyScan()
{
    uchar cord_l,cord_h;
    P3 = 0xf0;   // 1111 0000
    if((P3&0xf0)!=0xf0)
    {   //判斷是否有按鍵按下
        //自判斷高位 
        delay(5); //軟件消抖
        if((P3&0xf0)!=0xf0)
        {
            cord_l = P3&0xf0;//這樣寫不考慮行線
            P3 = cord_l|0x0f;
            cord_h = P3&0x0f; //儲(chǔ)存行線值
            while((P3&0x0f)!=0x0f); //判斷按完?
            return (cord_l+cord_h);//返回值
        }
    }
}

void KeyPro()
{
    switch( KeyScan() )
    {
        //第一行鍵值碼
        case 0xee: P0 = leddata[0];     break;
        case 0xde: P0 = leddata[1];     break;
        case 0xbe: P0 = leddata[2];     break;
        case 0x7e: P0 = leddata[3];     break;
        
        //第二行鍵值碼
        case 0xed: P0 = leddata[4];     break;
        case 0xdd: P0 = leddata[5];     break;
        case 0xbd: P0 = leddata[6];     break;
        case 0x7d: P0 = leddata[7];     break;

        //第三行鍵值碼
        case 0xeb: P0 = leddata[8];     break;
        case 0xdb: P0 = leddata[9];     break;
        case 0xbb: P0 = leddata[10];    break;
        case 0x7b: P0 = leddata[11];    break;

        //第四行鍵值碼
        case 0xe7: P0 = leddata[12];    break;
        case 0xd7: P0 = leddata[13];    break;
        case 0xb7: P0 = leddata[14];    break;
        case 0x77: P0 = leddata[15];    break;
    }   
}

int main()
{
    we = 1;
    P0 = 0x00;
    we = 0;

    du = 1;
    P0 = leddata[22];
    while(1)
    {     
        
        KeyPro();

    }
    return 0;
}

switch 按下的按鍵對(duì)應(yīng)一個(gè)數(shù)值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市餐曼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌集惋,老刑警劉巖瓶佳,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異霸饲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)习寸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門傻工,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鸯匹,你說(shuō)我怎么就攤上這事泄伪。” “怎么了蟋滴?”我有些...
    開(kāi)封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵痘绎,是天一觀的道長(zhǎng)肖粮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)行施,這世上最難降的妖魔是什么凌净? 我笑而不...
    開(kāi)封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮须教,結(jié)果婚禮上斩芭,老公的妹妹穿的比我還像新娘。我一直安慰自己划乖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布误算。 她就那樣靜靜地躺著迷殿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庆寺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天知纷,我揣著相機(jī)與錄音陵霉,去河邊找鬼。 笑死踊挠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的模蜡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼忍疾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谨朝!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起则披,我...
    開(kāi)封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洗出,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后阱洪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體菠镇,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年蚌本,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了隘梨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡出嘹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烦秩,到底是詐尸還是另有隱情郎仆,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布抛寝,位于F島的核電站,受9級(jí)特大地震影響盗舰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钻趋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望较沪。 院中可真熱鬧失仁,春花似錦、人聲如沸萄焦。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烘苹。三九已至躲株,卻和暖如春镣衡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廊鸥。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工惰说, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吆视。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像您觉,于是被迫代替她去往敵國(guó)和親授滓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子琳水,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1.編譯程序(1)gcc xx.c,他會(huì)默認(rèn)生成一個(gè)a.out的可執(zhí)行文件在孝,在a.out所在目錄,執(zhí)行./a.o...
    萌面大叔2閱讀 1,277評(píng)論 0 1
  • 網(wǎng)站亂碼問(wèn)題我們會(huì)經(jīng)常碰到绍申,大多見(jiàn)于非英文的中文字符或其他字符亂碼顾彰,而且,這類問(wèn)題常常是因?yàn)榫幋a方式問(wèn)題涨享,主要原因...
    波段頂?shù)?/span>閱讀 2,857評(píng)論 1 9
  • 1.編譯程序 (1)gcc xx.c,他會(huì)默認(rèn)生成一個(gè)a.out的可執(zhí)行文件仆百,在a.out所在目錄,執(zhí)行./a....
    萌面大叔2閱讀 469評(píng)論 0 1
  • 第一天 1.關(guān)鍵字 在Java中關(guān)鍵字是不能設(shè)置成為變量名吁讨、方法名峦朗、包名建丧、類名的波势! 2.標(biāo)識(shí)符 程序員自己定義的名...
    炙冰閱讀 524評(píng)論 0 0
  • 今天是2017年的3月11號(hào),我29歲拴曲,樸槿惠總統(tǒng)被彈劾的第二天,我和他一起去了全州找建熙哥澈灼。即使陽(yáng)光很好店溢,即使他...
    森林菲閱讀 133評(píng)論 0 0