📄 4.lst
字号:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 1
MCS-51 Family Cross Assembler A S E M - 5 1 V 1.2
=====================================================
Source File: 4.ASM
Object File: 4.HEX
List File: 4.LST
Line I Addr Code Source
1: N 0030 DBUF EQU 30H
2: N 0040 TEMP EQU 40H
3: N 0000 ORG 00H
4: 0000 74 10 MOV A,#16
5: 0002 11 54 MAIN: ACALL DISP
6: 0004 11 08 ACALL KEY1
7: 0006 01 02 AJMP MAIN
8: 0008 75 90 F0 KEY1: MOV P1,#0F0H ;读P1口前先写1
9: 000B E5 90 MOV A,P1 ;读取键状态
10: 000D B4 F0 02 CJNE A,#0F0H,K11 ;判断是否有键按下
11: 0010 01 08 K10: AJMP KEY1
12: 0012 11 81 K11: ACALL DELAY
13: 0014 75 90 F0 MOV P1,#0F0H
14: 0017 E5 90 MOV A,P1
15: 0019 B5 F0 02 CJNE A,0F0H,K12 ;消除按键抖动
16: 001C 80 F2 SJMP K10
17: 001E F5 F0 K12: MOV B,A ;存列值
18: 0020 75 90 0F MOV P1,#0FH
19: 0023 E5 90 MOV A,P1 ;读行值
20: 0025 55 F0 ANL A,B
21: 0027 F5 F0 MOV B,A ;存键码
22: 0029 79 10 MOV R1,#10H
23: 002B 7A 00 MOV R2,#0
24: 002D 90 00 44 MOV DPTR,#K1TAB ;键码表首地址
25: 0030 EA K14: MOV A,R2
26: 0031 93 MOVC A,@A+DPTR
27: 0032 B5 F0 0A CJNE A,B,K16 ;比较,计算键值
28: 0035 75 90 0F MOV P1,#0FH
29: 0038 E5 90 K15: MOV A,P1
30: 003A B4 0F FB CJNE A,#0FH,K15 ;等待按键释放
31: 003D EA MOV A,R2
32: 003E 22 RET
33: 003F 0A K16: INC R2
34: 0040 D9 EE DJNZ R1,K14
35: 0042 01 10 AJMP K10
36: 0044 81 41 21 11 K1TAB: DB 81H,41H,21H,11H ;键码表
37: 0048 82 42 22 12 DB 82H,42H,22H,12H
38: 004C 84 44 24 14 DB 84H,44H,24H,14H
39: 0050 88 48 28 18 DB 88H,48H,28H,18H
40: 0054 F5 30 DISP: MOV DBUF,A ;键值存入缓存
41: 0056 78 30 MOV R0,#DBUF
42: 0058 79 40 MOV R1,#TEMP
43: 005A 90 00 6F DP10: MOV DPTR,#SEGTAB
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 005D E6 MOV A,@R0
45: 005E 93 MOVC A,@A+DPTR ;根据键值查表取段码
46: 005F F7 MOV @R1,A ;暂存段码
47: 0060 78 40 MOV R0,#TEMP
48: 0062 7A 08 DP12: MOV R2,#8 ;设置移位次数
49: 0064 E6 MOV A,@R0
50: 0065 33 DP13: RLC A ;段码移位输出
51: 0066 92 B0 MOV P3.0,C
52: 0068 C2 B1 CLR P3.1
53: 006A D2 B1 SETB P3.1 ;输出移位脉冲
54: 006C DA F7 DJNZ R2,DP13
55: 006E 22 RET
56: 006F 3F 06 5B 4F SEGTAB: DB 3FH,06H,5BH,4FH,66H,6DH
0073 66 6D
57: 0075 7D 07 7F 6F DB 7DH,07H,7FH,6FH,77H,7CH
0079 77 7C
58: 007B 58 5E 79 71 DB 58H,5EH,79H,71H,00H,40H
007F 00 40
59: 0081 7C 01 DELAY: MOV R4,#01H
60: 0083 7D 88 AA1: MOV R5,#088H
61: 0085 00 AA: NOP
62: 0086 DD FD DJNZ R5,AA
63: 0088 DC F9 DJNZ R4,AA1
64: 008A 22 RET
65: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AA CODE 0085 61
AA1 CODE 0083 60
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
DBUF NUMBER 0030 1
DELAY CODE 0081 59
DISP CODE 0054 40
DP10 CODE 005A 43
DP12 CODE 0062 48
DP13 CODE 0065 50
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
K10 CODE 0010 11
K11 CODE 0012 12
K12 CODE 001E 17
K14 CODE 0030 25
K15 CODE 0038 29
K16 CODE 003F 33
K1TAB CODE 0044 36
KEY1 CODE 0008 8
MAIN CODE 0002 5
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SEGTAB CODE 006F 56
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TEMP NUMBER 0040 2
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -