婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

單片機4×4矩陣鍵盤設計方案

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2012-2-4

 1、設計原理

  (1)如圖14.2所示,用單片機的并行口P3連接4×4矩陣鍵盤,并以單片機的P3.0-P3.3各管腳作輸入線,以單片機的P3.4-P3.7各管腳作輸出線,在數碼管上顯示每個按鍵 “0-F”的序號。

  (2)鍵盤中對應按鍵的序號排列如圖14.1所示。

單片機矩陣鍵盤 

  2、參考電路

  單片機矩陣設計   圖14.2 4×4矩陣式鍵盤識別電路原理圖

  3、電路硬件說明

  (1)在“單片機系統”區域中,把單片機的P3.0-P3.7端口通過8聯撥動撥碼開關JP3連接到“4×4行列式鍵盤”區域中的M1-M4,N1-N4端口上。

  (2)在“單片機系統”區域中,把單片機的P0.0-P0.7端口連接到“靜態數碼顯示模塊”區域中的任何一個a-h端口上;要求:P0.0對應著a,P0.1對應著b,……,P0.7對應著h。

  4、程序設計內容

  (1)4×4矩陣鍵盤識別處理 。

  (2)每個按鍵都有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。鍵盤的一端(列線)通過電阻接VCC,而接地是通過程序輸出數字“0”實現的。鍵盤處理程序的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么?還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態接地;另一個并行口輸入按鍵狀態,由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。

  5、程序流程圖(如圖14.3所示)

單片機矩陣鍵盤設計程序框圖 

6、匯編源程序

  ;;;;;;;;;;定義單元;;;;;;;;;;

  COUNT EQU 30H

  ;;;;;;;;;;入口地址;;;;;;;;;;

  ORG 0000H

  LJMP START

  ORG 0003H

  RETI

  ORG 000BH

  RETI

  ORG 0013H

  RETI

  ORG 001BH

  RETI

  ORG 0023H

  RETI

  ORG 002BH

  RETI

  ;;;;;;;;;;主程序入口;;;;;;;;;;

  ORG 0100H

  START: LCALL CHUSHIHUA

  LCALL PANDUAN

  LCALL XIANSHI

  LJMP START

  ;;;;;;;;;;初始化程序;;;;;;;;;;

  CHUSHIHUA: MOV COUNT,#00H

  RET

  ;;;;;;;;;;判斷哪個按鍵按下程序;;;;;;;;;;

  PANDUAN: MOV P3,#0FFH

  CLR P3.4

  MOV A,P3

  ANL A,#0FH

  XRL A,#0FH

  JZ SW1

  LCALL DELAY10MS

  JZ SW1

  MOV A,P3

  ANL A,#0FH

  CJNE A,#0EH,K1

  MOV COUNT,#0

  LJMP DK

  K1: CJNE A,#0DH,K2

  MOV COUNT,#4

  LJMP DK

  K2: CJNE A,#0BH,K3

  MOV COUNT,#8

  LJMP DK

  K3: CJNE A,#07H,K4

  MOV COUNT,#12

  K4: NOP

  LJMP DK

  SW1: MOV P3,#0FFH

  CLR P3.5

  MOV A,P3

  ANL A,#0FH

  XRL A,#0FH

  JZ SW2

  LCALL DELAY10MS

  JZ SW2

  MOV A,P3

  ANL A,#0FH

  CJNE A,#0EH,K5

  MOV COUNT,#1

  LJMP DK

  K5: CJNE A,#0DH,K6

  MOV COUNT,#5

  LJMP DK

  K6: CJNE A,#0BH,K7

  MOV COUNT,#9

  LJMP DK

  K7: CJNE A,#07H,K8

  MOV COUNT,#13

  K8: NOP

  LJMP DK

  SW2: MOV P3,#0FFH

  CLR P3.6

  MOV A,P3

  ANL A,#0FH

  XRL A,#0FH

  JZ SW3

  LCALL DELAY10MS

  JZ SW3

  MOV A,P3

  ANL A,#0FH

  CJNE A,#0EH,K9

  MOV COUNT,#2

  LJMP DK

  K9: CJNE A,#0DH,KA

  MOV COUNT,#6

  LJMP DK

  KA: CJNE A,#0BH,KB

  MOV COUNT,#10

  LJMP DK

  KB: CJNE A,#07H,KC

  MOV COUNT,#14

  KC: NOP

  LJMP DK

  SW3: MOV P3,#0FFH

  CLR P3.7

  MOV A,P3

  ANL A,#0FH

  XRL A,#0FH

  JZ SW4

  LCALL DELAY10MS

  JZ SW4

  MOV A,P3

  ANL A,#0FH

  CJNE A,#0EH,KD

  MOV COUNT,#3

  LJMP DK

  KD: CJNE A,#0DH,KE

  MOV COUNT,#7

  LJMP DK

  KE: CJNE A,#0BH,KF

  MOV COUNT,#11

  LJMP DK

  KF: CJNE A,#07H,KG

  MOV COUNT,#15

  KG: NOP

  LJMP DK

  SW4: LJMP PANDUAN

  DK: RET

  ;;;;;;;;;;顯示程序;;;;;;;;;;

  XIANSHI: MOV A,COUNT

  MOV DPTR,#TABLE

  MOVC A,@A+DPTR

  MOV P0,A

  LCALL DELAY

  SK: MOV A,P3

  ANL A,#0FH

  XRL A,#0FH

  JNZ SK

  RET

  ;;;;;;;;;;10ms延時程序;;;;;;;;;;

  DELAY10MS: MOV R6,#20

  D1: MOV R7,#248

  DJNZ R7,$

  DJNZ R6,D1

  RET

  ;;;;;;;;;;200ms延時程序;;;;;;;;;;

  DELAY: MOV R5,#20

  LOOP: LCALL DELAY10MS

  DJNZ R5,LOOP

  RET

  ;;;;;;;;;;共陰碼表;;;;;;;;;;

  TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

  ;;;;;;;;;;結束標志;;;;;;;;;;

  END

7、C語言源程序

  #include

  unsigned char code table[]={0x3f,0x66,0x7f,0x39,

  0x06,0x6d,0x6f,0x5e,

  0x5b,0x7d,0x77,0x79,

  0x4f,0x07,0x7c,0x71};

  void main(void)

  { unsigned char i,j,k,key;

  while(1)

  { P3=0xff; //給P3口置1//

  P3_4=0; //給P3.4這條線送入0//

  i=P3;

  i=i&0x0f; //屏蔽低四位//

  if(i!=0x0f) //看是否有按鍵按下//

  { for(j=50;j>0;j--) //延時//

  for(k=200;k>0;k--);

  if(i!=0x0f) //再次判斷按鍵是否按下//

  { switch(i) //看是和P3.4相連的四個按鍵中的哪個//

  { case 0x0e:

  key=0;

  break;

  case 0x0d:

  key=1;

  break;

  case 0x0b:

  key=2;

  break;

  case 0x07:

  key=3;

  break;

  }

  P0=table[key]; //送數到P0口顯示//

  }

  }

  P3=0xff;

  P3_5=0; //讀P3.5這條線//

  i=P3;

  i=i&0x0f; //屏蔽P3口的低四位//

  if(i!=0x0f) //讀P3.5這條線上看是否有按鍵按下//

  { for(j=50;j>0;j--) //延時//

  for(k=200;k>0;k--);

  i=P3; //再看是否有按鍵真的按下//

  i=i&0x0f;

  if(i!=0x0f)

  { switch(i) //如果有,顯示相應的按鍵//

  { case 0x0e:

  key=4;

  break;

  case 0x0d:

  key=5;

  break;

  case 0x0b:

  key=6;

  break;

  case 0x07:

  key=7;

  break;

  }

  P0=table[key]; //送入P0口顯示//

  }

  }

  P3=0xff;

  P3_6=0; //讀P3.6這條線上是否有按鍵按下//

  i=P3;

  i=i&0x0f;

  if(i!=0x0f)

  { for(j=50;j>0;j--)

  for(k=200;k>0;k--);

  i=P3;

  i=i&0x0f;

  if(i!=0x0f)

  { switch(i)

  { case 0x0e:

  key=8;

  break;

  case 0x0d:

  key=9;

  break;

  case 0x0b:

  key=10;

  break;

  case 0x07:

  key=11;

  break;

  }

  P0=table[key];

  }

  }

  P3=0xff;

  P3_7=0; //讀P3.7這條線上是否有按鍵按下//

  i=P3;

  i=i&0x0f;

  if(i!=0x0f)

  { for(j=50;j>0;j--)

  for(k=200;k>0;k--);

  i=P3;

  i=i&0x0f;

  if(i!=0x0f)

  { switch(i)

  { case 0x0e:

  key=12;

  break;

  case 0x0d:

  key=13;

  break;

  case 0x0b:

  key=14;

  break;

  case 0x07:

  key=15;

  break;

  }

  P0=table[key];

  }

  }

  }

  }

  8、注意事項

  在硬件電路中,要把8聯撥動撥碼開關JP2撥下,把8聯撥動撥碼開關JP3撥上去。

Tags:單片機,矩陣鍵盤,設計  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章:
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
    <button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • www.色.com| 国产精品国产三级国产专区51| 天堂av.com| 99热一区二区| 五月天av在线播放| 欧美特级aaa| 久久久精品高清| 中文字幕天天干| 天天色综合社区| 日韩成人av免费| 97人人模人人爽人人澡| 手机看片一级片| 美国av在线播放| 精品久久久无码人妻字幂| 美女av免费观看| 日本不卡在线观看视频| 成年人视频在线免费| 中文字幕66页| 免费网站在线观看视频| 精品国产一区三区| 爆乳熟妇一区二区三区霸乳| 午夜免费看视频| 国产大尺度在线观看| 国产a级黄色大片| 麻豆av免费在线| av动漫免费观看| 精品欧美一区免费观看α√| 日日噜噜噜噜久久久精品毛片| 国产欧美激情视频| xxxx18hd亚洲hd捆绑| 亚洲综合欧美激情| a级片一区二区| 看欧美ab黄色大片视频免费| 国产毛片久久久久久| 国产中文字幕视频在线观看| 国产日韩欧美久久| 青青青青在线视频| www.xxx亚洲| 男女激情免费视频| www.com黄色片| 国产成人在线免费看| 九九九久久久久久久| 久久久久久久久久久视频| 亚洲高清在线不卡| 一二三四视频社区在线| 国产福利精品一区二区三区| 青青在线视频观看| 日本天堂免费a| 免费不卡av网站| 性欧美1819| 亚洲人成无码www久久久| 亚洲 欧美 综合 另类 中字| 国产欧美激情视频| 天天操,天天操| 苍井空浴缸大战猛男120分钟| 毛片在线视频观看| 日本老太婆做爰视频| 天天干天天玩天天操| 亚洲综合在线网站| 国产成人久久777777| 国产欧美日韩网站| 日韩xxxx视频| 日韩精品一区在线视频| 亚洲精品天堂成人片av在线播放| 欧美一级xxxx| xxxx在线免费观看| 色戒在线免费观看| 五月六月丁香婷婷| 91网址在线观看精品| 一起操在线视频| 欧美激情第一区| 国产999免费视频| 色婷婷综合在线观看| 三级性生活视频| 久久精品久久99| 日韩精品一区二区三区电影| 国产又黄又爽免费视频| 艳母动漫在线观看| 超碰97在线看| 国产午夜福利100集发布| 国产精品50p| 亚洲综合色在线观看| 亚洲一级片av| 亚洲 欧美 综合 另类 中字| 波多野结衣家庭教师在线播放| 精品欧美一区免费观看α√| 黄色一级大片在线观看| 污视频网址在线观看| 日本中文字幕一级片| 超碰网在线观看| 亚洲久久中文字幕| 日本香蕉视频在线观看| 日韩一级免费在线观看| 91pony九色| 男人天堂av片| 色片在线免费观看| 一本色道久久88亚洲精品综合| www在线观看免费| 热久久久久久久久| 国产96在线 | 亚洲| 欧美日韩亚洲自拍| 中文字幕日韩精品无码内射| 国产成人无码av在线播放dvd| 中文字幕第三区| 国产xxxxx视频| 国产亚洲精品久久久久久久| 日韩一级片播放| 日本黄大片在线观看| mm131亚洲精品| 中国丰满人妻videoshd| 国内自拍中文字幕| 可以看污的网站| 国产aaa一级片| 久久精品国产sm调教网站演员| 中文字幕亚洲乱码| 9久久9毛片又大又硬又粗| 激情成人在线观看| 欧美精品性生活| 欧美视频免费播放| 国产v片免费观看| 日本一本中文字幕| 公共露出暴露狂另类av| 国产一区二区在线观看免费视频| 欧美aⅴ在线观看| 国产原创中文在线观看| 喜爱夜蒲2在线| 精品少妇人妻av一区二区| 色一情一区二区三区| 国产一级特黄a大片免费| 欧美女人性生活视频| 国产精品无码人妻一区二区在线| 亚洲欧美日本一区二区三区| 亚洲xxxx2d动漫1| 成人在线免费观看av| 哪个网站能看毛片| 日本精品www| 欧美成人精品欧美一级乱| 男人用嘴添女人下身免费视频| 国产黄色激情视频| 东北少妇不带套对白| www插插插无码视频网站| 青青在线免费观看| 精品视频免费在线播放| 黄在线观看网站| 亚洲精品高清无码视频| 成人综合久久网| 国产又爽又黄ai换脸| 五月天在线免费视频| 成人性免费视频| 男女av免费观看| 拔插拔插华人永久免费| 777久久精品一区二区三区无码| 青春草国产视频| 欧美日韩亚洲一二三| 中国黄色片一级| 黄色一级片国产| 日日摸天天爽天天爽视频| 污视频网址在线观看| 免费的一级黄色片| 北条麻妃在线观看| 波多野结衣免费观看| 男人添女荫道口图片| 日韩av在线中文| www插插插无码视频网站| 色婷婷狠狠18| cao在线观看| 欧美成人乱码一二三四区免费| 国产一级不卡视频| 超碰在线人人爱| 国产免费一区二区视频| 狠狠操狠狠干视频| 免费高清一区二区三区| 天堂在线中文在线| 狠狠97人人婷婷五月| 99re99热| 亚洲一区日韩精品| 毛片在线视频播放| gogogo免费高清日本写真| 成熟老妇女视频| 男女猛烈激情xx00免费视频| 三日本三级少妇三级99| 粉嫩虎白女毛片人体| 欧美乱大交xxxxx潮喷l头像| 亚洲激情在线看| 一级在线免费视频| 国产乱子夫妻xx黑人xyx真爽| 国产又大又长又粗又黄| 日韩欧美国产片| 人妻丰满熟妇av无码区app| 国内精品在线观看视频| 天天综合五月天| 国产精品999.| 毛片毛片毛片毛| 国产色视频在线播放| 91热这里只有精品| 中文字幕在线导航| av丝袜天堂网| 午夜精品中文字幕| www.51色.com| 国产成人精品免费看在线播放|