📄 prg.lst
字号:
A51 MACRO ASSEMBLER PRG 11/30/2006 17:27:58 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN prg.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE prg.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 NAME ROWSCAN ;反转法
2
00EF 3 KEY_ROW1 equ 0EFh
00DF 4 KEY_ROW2 equ 0DFh
00BF 5 KEY_ROW3 equ 0BFh
007F 6 KEY_ROW4 equ 07Fh
7
0000 8 ORG 0000H
0000 020100 9 ljmp START
0100 10 ORG 0100H
0100 7800 11 START: mov R0,#00 ;行号
0102 7900 12 mov R1,#00 ;列号
13
14 ;读列号
0104 75900F 15 mov p1,#0FH
0107 00 16 nop
0108 E590 17 mov A,p1
010A 540F 18 anl A,#0Fh
010C B40E04 19 c1: cjne A,#0EH, c2
010F 7901 20 mov R1,#1
0111 8013 21 jmp row
0113 B40D04 22 c2: cjne A,#0DH, c3
0116 7902 23 mov R1,#2
0118 800C 24 jmp row
011A B40B04 25 c3: cjne A,#0BH, c4
011D 7903 26 mov R1,#3
011F 8005 27 jmp row
0121 B407DC 28 c4: cjne A,#07H, START
0124 7904 29 mov R1,#4
30
31 ;读行号
0126 7590F0 32 row: mov p1,#0F0H
0129 00 33 nop
012A E590 34 mov A,p1
012C 54F0 35 anl A,#0F0H
012E B4E004 36 row1: cjne A,#0E0H, row2
0131 7801 37 mov R0,#1
0133 8013 38 jmp count
0135 B4D004 39 row2: cjne A,#0D0H, row3
0138 7802 40 mov R0,#2
013A 800C 41 jmp count
013C B4B004 42 row3: cjne A,#0B0H, row4
013F 7803 43 mov R0,#3
0141 8005 44 jmp count
0143 B470BA 45 row4: cjne A,#070H, START
0146 7804 46 mov R0,#4
47
48 ;(R0 - 1) * 4 + (R1 - 1)
0148 18 49 count: dec R0
0149 19 50 dec R1
014A E8 51 mov A,R0
014B 75F004 52 mov B,#4
014E A4 53 mul AB
014F 29 54 add A,R1
55
0150 90015B 56 ksnew: mov DPTR,#keycodes
0153 93 57 movc A,@A+DPTR
0154 F580 58 mov P0,A
A51 MACRO ASSEMBLER PRG 11/30/2006 17:27:58 PAGE 2
0156 00 59 nop
0157 00 60 nop
61
0158 020100 62 ksend: ljmp START
63
015B 3F065B4F 64 keycodes: db 3FH,06H,5BH,4FH
015F 666D7D07 65 db 66H,6DH,7DH,07H
0163 7F6F777C 66 db 7FH,6FH,77H,7CH
0167 395E7971 67 db 39H,5EH,79H,71H
68
69 END
A51 MACRO ASSEMBLER PRG 11/30/2006 17:27:58 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
C1 . . . . . . . . C ADDR 010CH A
C2 . . . . . . . . C ADDR 0113H A
C3 . . . . . . . . C ADDR 011AH A
C4 . . . . . . . . C ADDR 0121H A
COUNT. . . . . . . C ADDR 0148H A
KEYCODES . . . . . C ADDR 015BH A
KEY_ROW1 . . . . . N NUMB 00EFH A
KEY_ROW2 . . . . . N NUMB 00DFH A
KEY_ROW3 . . . . . N NUMB 00BFH A
KEY_ROW4 . . . . . N NUMB 007FH A
KSEND. . . . . . . C ADDR 0158H A
KSNEW. . . . . . . C ADDR 0150H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
ROW. . . . . . . . C ADDR 0126H A
ROW1 . . . . . . . C ADDR 012EH A
ROW2 . . . . . . . C ADDR 0135H A
ROW3 . . . . . . . C ADDR 013CH A
ROW4 . . . . . . . C ADDR 0143H A
ROWSCAN. . . . . . N NUMB -----
START. . . . . . . C ADDR 0100H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -