91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第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

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于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 ?1401次閱讀

    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鍵盤矩陣控制條形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鍵盤矩陣按鍵的程序和電路圖免費下載

    本文檔的做作主要內容詳細介紹的是數碼管顯示4X4鍵盤矩陣按鍵的程序和電路圖免費下載。
    發表于 06-03 15:01 ?52次下載
    數碼管顯示<b class='flag-5'>4X4</b><b class='flag-5'>鍵盤</b><b class='flag-5'>矩陣</b>按鍵的<b class='flag-5'>程序</b>和電路圖免費下載

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

    ,所以必須外接上拉電阻,當I/O口為P1、P2和P3口時,由于內部已有上拉電阻,因此可省略外接的上拉電阻。 二、按鍵消抖 單片機系統中所使用的鍵盤都是機械式的彈性按鍵,因為存在機械觸點的彈性作用,在按鍵閉合和彈起的瞬間都會出現抖動,如圖
    的頭像 發表于 04-07 14:36 ?8427次閱讀
    <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>
    主站蜘蛛池模板: 日本免费黄色网 | 163黄页网又粗又长又舒服 | 天天久久影视色香综合网 | 久碰香蕉精品视频在线观看 | 欧美精品xxxxbbbb | 久久久久99精品成人片三人毛片 | 亚洲第一看片 | 香蕉视频黄色在线观看 | 18美女扒开尿口无遮挡 | 婷婷六月天在线 | 亚洲 欧美 日韩 在线 中文字幕 | 天天操夜夜夜 | 丁香婷婷在线观看 | 亚洲国产精品国产自在在线 | 黄网在线免费观看 | 国产剧情麻豆三级在线观看 | 自偷自拍亚洲欧美清纯唯美 | 99久免费精品视频在线观看2 | 午夜视频在线观看国产www | 午夜情趣视频 | 天天拍夜夜添久久精品免费 | 欧美黄色片视频 | 日本黄色免费电影 | 狠狠色网| 国产午夜精品久久久久九九 | 在线小视频你懂的 | 色视频免费版高清在线观看 | 黄色激情小说视频 | 国产性大片黄在线观看在线放 | 亚洲天堂三级 | 天天射久久 | 天天爽夜夜操 | 男人操女人免费 | 欧美三级视频网站 | 麒麟色欧美影院在线播放 | 亚色图 | 亚洲男人的天堂在线观看 | 六月婷婷网 | 奇米影视大全 | 啊用力太猛了啊好深视频免费 | 亚洲免费观看在线视频 |