?? a.sdi
字號(hào):
,,,DBUF EQU 30H
,,,TEMP EQU 40H
,,, ORG 00H
0000,74 10,, MOV A,#16
0002,11 54,MAIN,MAIN: ACALL DISP
0004,11 08,, ACALL KEY1
0006,01 02,, AJMP MAIN
0008,75 90 F0,KEY1,KEY1: MOV P1,#0F0H ;讀P1口前先寫1
000B,E5 90,, MOV A,P1 ;讀取鍵狀態(tài)
000D,B4 F0 02,, CJNE A,#0F0H,K11 ;判斷是否有鍵按下
0010,01 08,K10,K10: AJMP KEY1
0012,11 81,K11,K11: ACALL DELAY
0014,75 90 F0,, MOV P1,#0F0H
0017,E5 90,, MOV A,P1
0019,B5 F0 02,, CJNE A,0F0H,K12 ;消除按鍵抖動(dòng)
001C,80 F2,, SJMP K10
001E,F5 F0,K12,K12: MOV B,A ;存列值
0020,75 90 0F,, MOV P1,#0FH
0023,E5 90,, MOV A,P1 ;讀行值
0025,55 F0,, ANL A,B
0027,F5 F0,, MOV B,A ;存鍵碼
0029,79 10,, MOV R1,#10H
002B,7A 00,, MOV R2,#0
002D,90 00 44,, MOV DPTR,#K1TAB ;鍵碼表首地址
0030,EA,K14,K14: MOV A,R2
0031,93,, MOVC A,@A+DPTR
0032,B5 F0 0A,, CJNE A,B,K16 ;比較,計(jì)算鍵值
0035,75 90 0F,, MOV P1,#0FH
0038,E5 90,K15,K15: MOV A,P1
003A,B4 0F FB,, CJNE A,#0FH,K15 ;等待按鍵釋放
003D,EA,, MOV A,R2
003E,22,, RET
003F,0A,K16,K16: INC R2
0040,D9 EE,, DJNZ R1,K14
0042,01 10,, AJMP K10
0044,81 41 21 11,K1TAB,K1TAB: DB 81H,41H,21H,11H ;鍵碼表
0048,82 42 22 12,, DB 82H,42H,22H,12H
004C,84 44 24 14,, DB 84H,44H,24H,14H
0050,88 48 28 18,, DB 88H,48H,28H,18H
0054,F5 30,DISP,DISP: MOV DBUF,A ;鍵值存入緩存
0056,78 30,, MOV R0,#DBUF
0058,79 40,, MOV R1,#TEMP
005A,90 00 6F,DP10,DP10: MOV DPTR,#SEGTAB
005D,E6,, MOV A,@R0
005E,93,, MOVC A,@A+DPTR ;根據(jù)鍵值查表取段碼
005F,F7,, MOV @R1,A ;暫存段碼
0060,78 40,, MOV R0,#TEMP
0062,7A 08,DP12,DP12: MOV R2,#8 ;設(shè)置移位次數(shù)
0064,E6,, MOV A,@R0
0065,33,DP13,DP13: RLC A ;段碼移位輸出
0066,92 B0,, MOV P3.0,C
0068,C2 B1,, CLR P3.1
006A,D2 B1,, SETB P3.1 ;輸出移位脈沖
006C,DA F7,, DJNZ R2,DP13
006E,22,, RET
006F,3F 06 5B 4F,SEGTAB,SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH
0075,7D 07 7F 6F,, DB 7DH,07H,7FH,6FH,77H,7CH
007B,58 5E 79 71,, DB 58H,5EH,79H,71H,00H,40H
0081,7C 01,DELAY,DELAY: MOV R4,#01H
0083,7D 88,AA1,AA1: MOV R5,#088H
0085,00,AA,AA: NOP
0086,DD FD,, DJNZ R5,AA
0088,DC F9,, DJNZ R4,AA1
008A,22,, RET
000E,,, END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -