單片機Keyboard仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QQ截圖20180416131003.png (26.35 KB, 下載次數: 50)
下載附件
2018-4-16 13:11 上傳
鍵盤仿真匯編程序
- WR273 EQU 8000H
- RD244 EQU 8000H
- DULA EQU P2.0
- WELA EQU P2.1
- ORG 0000H
- AJMP START
- ORG 0030H
- START: MOV 70H,#0BFH
- MOV 71H,#0BFH
- MOV 72H,#0BFH
- MOV 73H,#0BFH
- LOOP1: LCALL DISP
- LCALL KEY ;調用子程序KEY,得到所按下的按鍵編號值,存在RAM的7FH單元中
- MOV A,7FH
- MOV DPTR,#TABLE
- MOVC A,@A+DPTR ;將該鍵盤編號轉換為共陽極段碼
- MOV 73H,72H
- MOV 72H,71H
- MOV 71H,70H
- MOV 70H,A ;移位顯示
- LJMP LOOP1
- ;--------鍵盤掃描子程序--------------
- KEY: MOV R7,#00H ;R7存放鍵盤的列號
- MOV A,#00H
- MOV B,#0EH
- KEY1: NOP
- ORL A,B
- MOV DPTR,#WR273
- MOVX @DPTR,A ;送掃描信號,掃描第一列
- NOP
- NOP
- NOP
- NOP
- MOV DPTR,#RD244
- MOVX A,@DPTR
- ANL A,#0FH ;收到的數據只保留低4位
- CJNE A,#0FH,KEY2 ;若讀到的數據低4位不全為1,則表示有鍵按下,轉往KEY2
- INC R7
- SETB C
- MOV A,B
- RLC A
- ANL A,#0FH ;此時A中低4位為1101,作為掃描下一列的輸入
- CJNE A,#0FH,KEY0
- MOV A,#0EH ;若掃描完4列,均無鍵按下,則A的低4位裝入1110,R7裝入0,重新開始掃描
- MOV R7,#00H
- KEY0: MOV B,A
- SJMP KEY1
- KEY2: CPL A
- ANL A,#0FH
- JNB ACC.0,KEY6
- MOV A,#00H
- SJMP KEY9
- KEY6: JNB ACC.1,KEY7
- MOV A,#01H
- SJMP KEY9
- KEY7: JNB ACC.2,KEY8
- MOV A,#02H
- SJMP KEY9
- KEY8: MOV A,#03H ;KEY2-KEY8確定該列上哪一行的按鍵被按下,行號最終存放在A中
- KEY9: XCH A,R7
- MOV B,#04H
- MUL AB
- ADD A,R7 ;列號*4+行號得到鍵值,鍵值布局與電路結構和掃描順序有關
- MOV DPTR,#KTAB1
- MOVC A,@A+DPTR ;將鍵值轉換為我為鍵盤編的號
- MOV 7FH,A ;最終得到的鍵號存入RAM的7FH單元
- KEYUP: MOV DPTR,#RD244
- MOVX A,@DPTR
- ANL A,#0FH
- CJNE A,#0FH,KEYUP
- RET
- ;-----掃描結果與鍵盤編號的對應-------------
- KTAB1: DB 03H,07H,0BH,0FH
- DB 02H,06H,0AH,0EH
- DB 01H,05H,09H,0DH
- DB 00H,04H,08H,0CH
- ;-----數碼管顯示子程序---------------------
- DISP: MOV A,70H ;將RAM中70H-73H單元中的數據顯示在對應的數碼管上
- MOV DPTR,#0800H
- MOVX @DPTR,A
- MOV A,71H
- MOV DPTR,#1000H
- MOVX @DPTR,A
- MOV A,72H
- MOV DPTR,#2000H
- MOVX @DPTR,A
- MOV A,73H
- MOV DPTR,#4000H
- MOVX @DPTR,A
- RET
- ;-----共陽極段代碼-------------------------
- TABLE: DB 0C0H,0F9H,0A4H,0B0H, 99H,92H,82H,0F8H,80H;0-8
- DB 90H, 88H, 83H,0C6H,0A1H,86H,8EH
- END
復制代碼
0.jpg (50.2 KB, 下載次數: 38)
下載附件
2018-4-17 01:56 上傳
全部資料51hei下載地址:
Keyboard_Array.rar
(64.82 KB, 下載次數: 6)
2018-4-16 13:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|