您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>接口定義>

節(jié)約端口線及器件的新型鍵盤 - 全文

2011年10月10日 11:27 本站整理 作者:秩名 用戶評論(0

?

  1 引言

  鍵盤電路是單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口, 現(xiàn)在有些很節(jié)約I/O資源的鍵盤電路,但它在鍵盤上使用的二極管較多,或有些使用的編碼芯片。利用本文介紹的電路,可以最大限度地減少鍵盤電路對I/O端口的點用 和器件。本電路特別適合一些直接搭焊、或需要導(dǎo)線延長鍵盤(如密碼鎖) 其節(jié)省寶貴的延長線數(shù)量。

  2 硬件原理

  這里以4根I/O線為例,普通接法只能接4個鍵,本文介紹的電路是在組合接法的基礎(chǔ)上增加了4個二極管。其軟件處理使用了端口掃描檢測方法,從而使按鍵數(shù)可達(dá)到12個,同時由于采用了組合邏輯來直接對端口進(jìn)行讀取,因此極大地簡經(jīng)了程序的處理過程。下圖是該電路的電路原理圖。 也可以根據(jù)此原理圖類是做3線、5線等的鍵盤。

  

?

  3 軟件過程和程序

  檢測過程:先將口1執(zhí)低電平,然后讀取口2、3、4,如有低電平則端口對應(yīng)的按鍵被按下;如都是高電平,則將口2執(zhí)低,然后讀取口1、3、4,以此類推。

  程序如下:

  ;端口定義

  K1 BIT P1.0

  K2 BIT P1.1

  K3 BIT P1.2

  K4 BIT P1.3

  ;******************************************

  ; 鍵盤掃描

  ;******************************************

  KEY: SETB K2 ;一行

  SETB K3

  SETB K4

  CLR K1

  JB K2,KEY1

  LCALL T1MS

  JB K2,KEY1

  MOV KEYZ,#01H

  KT1: JNB K2,KT1

  LJMP KEYOUT

  KEY1: JB K3,KEY2

  LCALL T1MS

  JB K3,KEY2

  MOV KEYZ,#02H

  KT2: JNB K3,KT2

  LJMP KEYOUT

  KEY2: JB K4,KEY3

  LCALL T1MS

  JB K4,KEY3

  MOV KEYZ,#03H

  KT3: JNB K4,KT3

  LJMP KEYOUT

  KEY3: SETB K1 ;二行

  CLR K2

  JB K1,KEY4

  LCALL T1MS

  JB K1,KEY4

  MOV KEYZ,#04H

  KT4: JNB K1,KT4

  LJMP KEYOUT

  KEY4: JB K3,KEY5

  LCALL T1MS

  JB K3,KEY5

  MOV KEYZ,#05H

  KT5: JNB K3,KT5

  LJMP KEYOUT

  KEY5: JB K4,KEY6

  LCALL T1MS

  JB K4,KEY6

  MOV KEYZ,#06H

  KT6: JNB K4,KT6

  LJMP KEYOUT

  KEY6: SETB K2 ;三行

  CLR K3

  JB K1,KEY7

  LCALL T1MS

  JB K1,KEY7

  MOV KEYZ,#07H

  KT7: JNB K1,KT7

  LJMP KEYOUT

  KEY7: JB K2,KEY8

  LCALL T1MS

  JB K2,KEY8

  MOV KEYZ,#08H

  KT8: JNB K2,KT8

  LJMP KEYOUT

  KEY8: JB K4,KEY9

  LCALL T1MS

  JB K4,KEY9

  MOV KEYZ,#09H

  KT9: JNB K4,KT9

  LJMP KEYOUT

  KEY9: SETB K3 ;四行

  CLR K4

  JB K1,KEY10

  LCALL T1MS

  JB K1,KEY10

  MOV KEYZ,#0AH

  KT10: JNB K1,KT10

  LJMP KEYOUT

  KEY10: JB K2,KEY11

  LCALL T1MS

  JB K2,KEY11

  MOV KEYZ,#0BH

  KT11: JNB K2,KT11

  LJMP KEYOUT

  KEY11: JB K3,KEY

  LCALL T1MS

  JB K3,KEY

  MOV KEYZ,#0CH

  KT12: JNB K3,KT12

  KEYOUT: RET

  ;********************************************

  ; 延時

  ;********************************************

  T1MS: MOV R4,#0FEH ;1ms延時

  T1MS0: NOP

  NOP

  DJNZ R4,T1MS0

  RET

上一頁12全文

非常好我支持^.^

(28) 31.1%

不好我反對

(62) 68.9%

( 發(fā)表人:葉子 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?