📄 text1.lst
字号:
A51 MACRO ASSEMBLER TEXT1 01/20/2008 15:09:49 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Text1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Text1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0030 1 ORG 30H
0030 7800 2 START: MOV R0,#00H
0032 7904 3 MOV R1,#04H
0034 7AEF 4 MOV R2,#0EFH ;扫描码初值 低电平扫描
0036 EA 5 GO: MOV A,R2
0037 F590 6 MOV P1,A
7 ;==================查第一行=============================
0039 309014 8 JNB P1.0,KEYIN ;若被按下就跳转
003C 08 9 INC R0 ;下一键
10 ;==================查第二行==============================
003D 309110 11 JNB P1.1,KEYIN
0040 08 12 INC R0
13 ;==================查第三行=============================
0041 30920C 14 JNB P1.2,KEYIN
0044 08 15 INC R0
16 ;==================查第四行===============================
0045 309308 17 JNB P1.3,KEYIN
0048 08 18 INC R0
19 ;==================下一列==============================
0049 EA 20 MOV A,R2
004A 23 21 RL A
004B FA 22 MOV R2,A
004C D9E8 23 DJNZ R1,GO
004E 80E0 24 JMP START
25 ;==================键被按的处理程序========================
0050 115D 26 KEYIN: CALL WAIT ;调用防抖动延时
0052 E8 27 MOV A,R0 ;取按键值
0053 75A0FF 28 MOV P2,#0FFH ;清理数码管
0056 F5A0 29 MOV P2,A
0058 7580FE 30 MOV P0,#0FEH
005B 80D3 31 JMP START ;重新扫描
32 ;================防抖动延时程序===========================
005D 7F28 33 WAIT: MOV R7,#40
005F 7EC8 34 W1:MOV R6,#200
0061 DEFE 35 DJNZ R6,$
0063 DFFA 36 DJNZ R7,W1
0065 22 37 RET
38 END
A51 MACRO ASSEMBLER TEXT1 01/20/2008 15:09:49 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
GO . . . . . . . . C ADDR 0036H A
KEYIN. . . . . . . C ADDR 0050H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
START. . . . . . . C ADDR 0030H A
W1 . . . . . . . . C ADDR 005FH A
WAIT . . . . . . . C ADDR 005DH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -