在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

4x4矩陣鍵盤工作原理及掃描程序

姚小熊27 ? 來源:網絡整理 ? 2018-02-24 15:30 ? 次閱讀

矩陣鍵盤掃描

4x4矩陣鍵盤工作原理及掃描程序

矩陣鍵盤的原理圖

根據矩陣鍵盤的原理圖可知,當沒有按鍵按下時,P1=0xf0;然后依次將P1^0~P1^3單獨置低電平,其他置高,再掃描各列的狀態,來判斷是哪個按鍵按下,比如,將P1^0輸出低電平,其他的引腳都輸出高電平,即P1=0xfe,那么當第1行有按鍵按下時P1的相應值為,

1X1(01111110=0x7e)1X2(10111110=0xbe)1x3(11011110=0xde)1X4(11101110=0xee)

將P1^1輸出低電平,其他的引腳都輸出高電平,即P1=0xfd,那么當第2行有按鍵按下時P1的相應值為,

2X1(01111101=0x7d)2X2(10111101=0xbd)2x3(11011101=0xdd)2X4(11101101=0xed)

將P1^2輸出低電平,其他的引腳都輸出高電平,即P1=0xfd,那么當第2行有按鍵按下時P1的相應值為,

3X1(01111011=0x7b)3X2(10111011=0xbb)3x3(11011011=0xdb)3X4(11101011=0xeb)

將P1^3輸出低電平,其他的引腳都輸出高電平,即P1=0xfd,那么當第2行有按鍵按下時P1的相應值為,

4X1(01110111=0x77)4X2(10110111=0xb7)4x3(11010111=0xd7)4X4(11100111=0xe7)

/*

程序中用到了置位,如果檢測第一行時置位為0xfe,是為了初始化一下P1口,初始化后

*/

#include《reg52.h》

unsignedintVal;

voidDelay(unsignedintt);

voidmain(void)

{

while(1)

{

if(P1!=0xf0)//當沒有按鍵按下時,P0=0xf0;

{

Delay(1500);//去抖

if(P1!=0xf0)//表示按鍵還在按下,判斷是哪個按鍵

{

P1=0xfe;//置位為fe,檢測第一行11111110

//根據矩陣鍵盤原理圖,當非第一行有按鍵按下時P1一直保持為0xfe

if(P1!=0xfe)//將P1置為0xfe后,經過一個指令周期后如果它還是0xfe說明按下的鍵不在第一行

{

Val=P1;

Delay(1500);//去抖

while(P1!=0xfe);//等待按鍵彈起

P0=Val;

}

P1=0xfd;//置位為fd,檢測第二行11111101

if(P1!=0xfd)

{

Val=P1;

Delay(1500);

while(P1!=0xfd)

P0=Val;

}

P1=0xfb;//置位為fb,檢測第三行11111011

if(P1!=0xfb)

{

Val=P1;

Delay(1500);

while(P1!=0xfb)

P0=Val;

}

P1=0xf7;//置位為f7,檢測第四行11110111

if(P1!=0xf7)

{

Val=P1;

Delay(1500);

while(P1!=0xf7)

P0=Val;

}

}

}

}

}

voidDelay(unsignedintt)

{

while(--t);

}

4X4矩陣鍵盤掃描

1. 4根行線的GIO均設為Output,根列線的GIO均設為Input;

2. 4根行線的GIO分別置為0111、1011、1101、1110,讀逐一讀取列線GIO的值,可確定是哪一個按鍵;

電路圖如下:

4x4矩陣鍵盤工作原理及掃描程序

注意:

1. 圖中用作輸入的GIO,一定要有一個上拉電阻

2. 芯片中的每一個引腳是否用作了GPIO口來用,需配置芯片的寄存器,使引腳當作GPIO口來使用,才會有效。

4x4矩陣鍵盤工作原理及程序

4x4矩陣鍵盤工作原理及掃描程序

矩陣鍵盤的動態掃描確實略顯復雜,不可能就是讀一個端口數據,然后馬上就出來結果。這需要對依次每一行的按鍵進行掃描、判斷,然后得出結果。如上圖所示,先掃描第一行,也就是S1,S2,S3,S4四個按鍵的狀態。在PA口輸入0XFE。

0XFE變成二進制是11111110,為了方便使用,記得每四個數之間加一個空格。11111110這個數據放到PA口上,假設這個時候S1被按下了,會出現什么情況?因為PA0是低電平,S1被按下之后S1導通,導致PA4的電平從1降到0,于是PA端口的數據就變成了11101110,換算成16進制就是0XEE。于是我們知道S1被按下了。

假設是S3被按下,會出現什么情況?沒錯,PA6的電平被拉低,PA的端口數據變成了10111110,也就是0XBE。這樣,我們就知道了,每一行的每一個按鍵被按下的時候,都會有一個對應的獨一無二的值。這就是矩陣鍵盤的掃描原理!送上一段源碼。

voidmatrixkeyscan()

{

uchartemp,key;

P3=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delayms(10);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

temp=P3;

switch(temp)

{

case0xee:

key=0;

break;

case0xde:

key=1;

break;

case0xbe:

key=2;

break;

case0x7e:

key=3;

break;

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

display(key);

}

}

P3=0xfd;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delayms(10);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

temp=P3;

switch(temp)

{

case0xed:

key=4;

break;

case0xdd:

key=5;

break;

case0xbd:

key=6;

break;

case0x7d:

key=7;

break;

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

display(key);

}

}

P3=0xfb;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delayms(10);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

temp=P3;

switch(temp)

{

case0xeb:

key=8;

break;

case0xdb:

key=9;

break;

case0xbb:

key=10;

break;

case0x7b:

key=11;

break;

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

display(key);

}

}

P3=0xf7;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delayms(10);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

temp=P3;

switch(temp)

{

case0xe7:

key=12;

break;

case0xd7:

key=13;

break;

case0xb7:

key=14;

break;

case0x77:

key=15;

break;

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

display(key);

}

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 矩陣鍵盤
    +關注

    關注

    7

    文章

    207

    瀏覽量

    31986
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于FPGA的4x4鍵盤矩陣

    基于FPGA的4x4鍵盤矩陣
    發表于 12-14 01:26

    4*4矩陣鍵盤設計及源代碼

    4*4矩陣鍵盤設計及源代碼 一 實驗目的1 學習使用4X4 掃描
    發表于 02-08 16:30 ?472次下載

    4X4鍵盤程序

    4X4鍵盤程序 //-----------4X4鍵盤程序--------------// uc
    發表于 10-17 15:15 ?1391次閱讀

    4x4矩陣鍵盤程序及原理圖PCB

    4x4矩陣鍵盤程序及原理圖PCB,供大家下載。
    發表于 12-21 18:25 ?0次下載

    4X4鍵盤顯示源程序

    4X4鍵盤顯示源程序,感興趣的可以看看。
    發表于 06-22 15:56 ?2次下載

    51鍵盤掃描程序

    51鍵盤掃描程序,包含3X4矩陣鍵盤4X4
    發表于 08-18 18:00 ?8次下載

    使用51單片機設計4X4矩陣鍵盤電子琴的電路圖和程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機設計4X4矩陣鍵盤電子琴的電路圖和程序免費下載。
    發表于 08-23 17:30 ?14次下載
    使用51單片機設計<b class='flag-5'>4X4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>電子琴的電路圖和<b class='flag-5'>程序</b>免費下載

    使用單片機實現4x4矩陣鍵盤程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現4x4矩陣鍵盤程序免費下載。
    發表于 08-20 17:31 ?12次下載
    使用單片機實現<b class='flag-5'>4x4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>的<b class='flag-5'>程序</b>免費下載

    使用51單片機實現4x4矩陣鍵盤程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現4x4矩陣鍵盤程序免費下載。
    發表于 07-04 17:41 ?11次下載
    使用51單片機實現<b class='flag-5'>4x4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>的<b class='flag-5'>程序</b>免費下載

    使用51單片機設計4X4矩陣鍵盤程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機設計4X4矩陣鍵盤程序免費下載。
    發表于 06-27 17:42 ?16次下載
    使用51單片機設計<b class='flag-5'>4X4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>的<b class='flag-5'>程序</b>免費下載

    4X4矩陣鍵盤的應用仿真電路圖和keil程序免費下載

    本文檔的主要內容詳細介紹的是4X4矩陣鍵盤的應用仿真電路圖和keil程序免費下載。
    發表于 05-14 17:31 ?38次下載
    <b class='flag-5'>4X4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b>的應用仿真電路圖和keil<b class='flag-5'>程序</b>免費下載

    使用單片機實現數碼管顯示4X4鍵盤矩陣按鍵的程序和仿真資料免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現數碼管顯示4X4鍵盤矩陣按鍵的程序和仿真資料免費下載。
    發表于 06-01 14:18 ?38次下載
    使用單片機實現數碼管顯示<b class='flag-5'>4X4</b><b class='flag-5'>鍵盤</b><b class='flag-5'>矩陣</b>按鍵的<b class='flag-5'>程序</b>和仿真資料免費下載

    使用單片機實現4X4鍵盤矩陣控制條形LED顯示的程序和仿真資料免費下載

      本文檔的主要內容詳細介紹的是使用單片機實現4X4鍵盤矩陣控制條形LED顯示的程序和仿真資料免費下載。
    發表于 06-01 14:18 ?22次下載
    使用單片機實現<b class='flag-5'>4X4</b><b class='flag-5'>鍵盤</b><b class='flag-5'>矩陣</b>控制條形LED顯示的<b class='flag-5'>程序</b>和仿真資料免費下載

    4x4矩陣鍵盤工作原理掃描程序

    ,所以必須外接上拉電阻,當I/O口為P1、P2和P3口時,由于內部已有上拉電阻,因此可省略外接的上拉電阻。 二、按鍵消抖 單片機系統中所使用的鍵盤都是機械式的彈性按鍵,因為存在機械觸點的彈性作用,在按鍵閉合和彈起的瞬間都會出現抖動,如圖
    的頭像 發表于 04-07 14:36 ?8307次閱讀
    <b class='flag-5'>4x4</b><b class='flag-5'>矩陣</b><b class='flag-5'>鍵盤</b><b class='flag-5'>工作原理</b>及<b class='flag-5'>掃描</b><b class='flag-5'>程序</b>

    帶有stm32的宏鍵盤4x4矩陣

    電子發燒友網站提供《帶有stm32的宏鍵盤4x4矩陣.zip》資料免費下載
    發表于 07-28 14:19 ?5次下載
    帶有stm32的宏<b class='flag-5'>鍵盤</b><b class='flag-5'>4x4</b><b class='flag-5'>矩陣</b>
    主站蜘蛛池模板: 天天色天天舔 | 操人视频网站 | 最刺激黄a大片免费观看 | 一区二区三区四区在线免费观看 | 欧美三级不卡在线观线看高清 | 伊人网狠狠干 | 黄网站在线观看永久免费 | 国产精品成人一区二区三区 | 久久天天躁综合夜夜黑人鲁色 | 人人爽天天碰天天躁夜夜躁 | 两性色午夜视频自由成熟的性 | 精品热99 | 亚洲五月婷婷 | 偷窥自拍亚洲色图 | 超碰v| 中文字幕亚洲区 | 一级特级aaaa毛片免费观看 | 欧美色欧美亚洲高清在线视频 | 轻点灬大ji巴太粗太长了h | 亚洲高清一区二区三区四区 | 窝窝视频成人影院午夜在线 | 32pao强力打造免费高速高清 | 欧美成人一区二区三区在线视频 | 动漫精品成人免费网站 | 久久国产视频网站 | 女人爽到喷水的视频大全在线观看 | 久久精品久久久久 | 啪啪午夜视频 | 最好看的2019中文字幕免费高清 | 日本免费在线视频 | 中文字幕一区二区在线观看 | 亚洲成人看片 | 深深激情网 | 7086bt伙计 福利一区 | 美女午夜 | 天天狠天天天天透在线 | 亚洲第一区二区快射影院 | 天天做天天爱天天大综合 | 色综合色综合色综合色综合网 | 色天使在线播放 | 国产乱码精品一区二区三 |