📄 key.lst
字号:
A51 MACRO ASSEMBLER KEY 09/25/2007 10:04:28 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN F:\INTEGRATED_DESIGN\MCU_FPGA\KEY.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE F:\INTEGRATED_DESIGN\MCU_FPGA\KEY.ASM DB SB
LOC OBJ LINE SOURCE
1 ;-----------键盘扫描相关-----------
0030 2 KEYH EQU 30H ;待扫描行线
0031 3 KEYL EQU 31H ;待扫描列线
0032 4 KEYZ EQU 32H ;按键值
0033 5 KEYN EQU 33H ;指示待扫描行
6
0000 7 ORG 0000H
0000 803E 8 SJMP START
0040 9 ORG 0040H
0040 758168 10 START: MOV SP,#68H ;主程序入口
0043 7590F0 11 KEY1: MOV P1,#0F0H ;行线为P0-P3,列线为P4-P7
0046 E590 12 MOV A,P1
0048 440F 13 ORL A,#0FH
004A F4 14 CPL A
004B 7002 15 JNZ IN
004D 80F4 16 SJMP KEY1
17
004F 1180 18 IN: ACALL DELAY
0051 753004 19 MOV KEYH,#04H
0054 75337F 20 MOV KEYN,#07FH ;做指针,指示待扫描行
0057 753200 21 MOV KEYZ,#0
005A E533 22 SCAN: MOV A,KEYN
005C 23 23 RL A
005D F533 24 MOV KEYN,A
005F F590 25 MOV P1,A ;逐行扫描,被扫描行送低
0061 E590 26 MOV A,P1 ;读列线电平值
0063 C4 27 SWAP A
0064 753104 28 MOV KEYL,#04H
0067 13 29 KEY2: RRC A
0068 500A 30 JNC FIND ;C位不为1转
006A 0532 31 INC KEYZ
006C D531F8 32 DJNZ KEYL,KEY2
006F D530E8 33 DJNZ KEYH,SCAN
0072 800A 34 SJMP KEY3
35
0074 7590F0 36 FIND: MOV P1,#0F0H
0077 E590 37 LOOSEN:MOV A,P1
0079 440F 38 ORL A,#0FH
007B F4 39 CPL A
007C 70F9 40 JNZ LOOSEN
41
007E 80C0 42 KEY3: SJMP START
43
44 ;**************************键盘20MS延时**************************************
0080 7E15 45 DELAY:MOV R6,#15H
0082 7F18 46 DL2: MOV R7,#18H
0084 00 47 DL1: NOP
0085 00 48 NOP
0086 DFFC 49 DJNZ R7,DL1
0088 DEF8 50 DJNZ R6,DL2
008A 22 51 RET
52
53 END
A51 MACRO ASSEMBLER KEY 09/25/2007 10:04:28 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY. . . . . . . C ADDR 0080H A
DL1. . . . . . . . C ADDR 0084H A
DL2. . . . . . . . C ADDR 0082H A
FIND . . . . . . . C ADDR 0074H A
IN . . . . . . . . C ADDR 004FH A
KEY1 . . . . . . . C ADDR 0043H A
KEY2 . . . . . . . C ADDR 0067H A
KEY3 . . . . . . . C ADDR 007EH A
KEYH . . . . . . . N NUMB 0030H A
KEYL . . . . . . . N NUMB 0031H A
KEYN . . . . . . . N NUMB 0033H A
KEYZ . . . . . . . N NUMB 0032H A
LOOSEN . . . . . . C ADDR 0077H A
P1 . . . . . . . . D ADDR 0090H A
SCAN . . . . . . . C ADDR 005AH A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 0040H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -