<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機驅動4X4矩陣式鍵盤輸入程序

          單片機驅動4X4矩陣式鍵盤輸入程序

          作者: 時間:2012-12-05 來源:網絡 收藏

          用AT89S51的并行口P1接4×4矩陣鍵盤,以P1.0-P1.3作輸入線,以P1.4-P1.7作輸出線;在數碼管上顯示每個按鍵的“0-F”序號。 實現鍵盤輸入的識別。

          我將給大家提供c和匯編兩個版本的4X4。如匯編語言源程序:

          KEYBUF EQU 30H
          ORG 00H
          START: MOV KEYBUF,#2
          WAIT:
          MOV P3,#0FFH
          CLR P3.4
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY1
          LCALL DELY10MS
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY1
          MOV A,P3
          ANL A,#0FH
          CJNE A,#0EH,NK1
          MOV KEYBUF,#0
          LJMP DK1
          NK1: CJNE A,#0DH,NK2
          MOV KEYBUF,#1
          LJMP DK1
          NK2: CJNE A,#0BH,NK3
          MOV KEYBUF,#2
          LJMP DK1
          NK3: CJNE A,#07H,NK4
          MOV KEYBUF,#3
          LJMP DK1
          NK4: NOP
          DK1:
          MOV A,KEYBUF
          MOV DPTR,#TABLE
          MOVC A,@A+DPTR
          MOV P0,A

          DK1A: MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JNZ DK1A
          NOKEY1:
          MOV P3,#0FFH
          CLR P3.5
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY2
          LCALL DELY10MS
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY2
          MOV A,P3
          ANL A,#0FH
          CJNE A,#0EH,NK5
          MOV KEYBUF,#4
          LJMP DK2
          NK5: CJNE A,#0DH,NK6
          MOV KEYBUF,#5
          LJMP DK2
          NK6: CJNE A,#0BH,NK7
          MOV KEYBUF,#6
          LJMP DK2
          NK7: CJNE A,#07H,NK8
          MOV KEYBUF,#7
          LJMP DK2
          NK8: NOP
          DK2:
          MOV A,KEYBUF
          MOV DPTR,#TABLE
          MOVC A,@A+DPTR
          MOV P0,A

          DK2A: MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JNZ DK2A
          NOKEY2:
          MOV P3,#0FFH
          CLR P3.6
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY3
          LCALL DELY10MS
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY3
          MOV A,P3
          ANL A,#0FH
          CJNE A,#0EH,NK9
          MOV KEYBUF,#8
          LJMP DK3
          NK9: CJNE A,#0DH,NK10
          MOV KEYBUF,#9
          LJMP DK3
          NK10: CJNE A,#0BH,NK11
          MOV KEYBUF,#10
          LJMP DK3
          NK11: CJNE A,#07H,NK12
          MOV KEYBUF,#11
          LJMP DK3
          NK12: NOP
          DK3:
          MOV A,KEYBUF
          MOV DPTR,#TABLE
          MOVC A,@A+DPTR
          MOV P0,A

          DK3A: MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JNZ DK3A
          NOKEY3:
          MOV P3,#0FFH
          CLR P3.7
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY4
          LCALL DELY10MS
          MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JZ NOKEY4
          MOV A,P3
          ANL A,#0FH
          CJNE A,#0EH,NK13
          MOV KEYBUF,#12
          LJMP DK4
          NK13: CJNE A,#0DH,NK14
          MOV KEYBUF,#13
          LJMP DK4
          NK14: CJNE A,#0BH,NK15
          MOV KEYBUF,#14
          LJMP DK4
          NK15: CJNE A,#07H,NK16
          MOV KEYBUF,#15
          LJMP DK4
          NK16: NOP
          DK4:
          MOV A,KEYBUF
          MOV DPTR,#TABLE
          MOVC A,@A+DPTR
          MOV P0,A

          DK4A: MOV A,P3
          ANL A,#0FH
          XRL A,#0FH
          JNZ DK4A
          NOKEY4:
          LJMP WAIT
          DELY10MS:
          MOV R6,#10
          D1: MOV R7,#248
          DJNZ R7,$
          DJNZ R6,D1
          RET
          TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
          DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
          END

          蜂鳴器相關文章:蜂鳴器原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();