📄 slave1.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: SLAVE1.ASM
Object File: SLAVE1.HEX
List File: SLAVE1.LST
Line I Addr Code Source
1: N 0000 ORG 0000H
2: 0000 02 00 30 LJMP MAIN
3: N 0023 ORG 0023H
4: 0023 02 00 63 LJMP SERVE
5: N 0030 ORG 0030H
6: 0030 75 81 60 MAIN: MOV SP,#60H
7: 0033 7D 00 MOV R5,#0
8: 0035 79 51 MOV R1,#51H
9: 0037 75 89 20 MOV TMOD, #20H ;设置T1工作方式
10: 003A 75 8D FD MOV TH1,#0FdH ;设置时间常数,确定波特率
11: 003D 75 8B FD MOV TL1,#0FdH
12: 0040 75 98 F0 MOV SCON,#0F0H ;设置串行口工作方式
13: 0043 75 87 00 MOV PCON,#00H
14: 0046 D2 8E SETB TR1
15: 0048 D2 AF SETB EA
16: 004A D2 AC SETB ES ;允许串行口中断
17: 004C 7F 03 LP2: MOV R7,#3
18: 004E 78 51 MOV R0,#51H
19: 0050 E6 LP1: MOV A,@R0
20: 0051 F5 80 MOV P0,A
21: 0053 12 00 A9 LCALL DELAY
22: 0056 08 INC R0
23: 0057 DF F7 DJNZ R7,LP1
24: 0059 20 78 02 JB 2FH.0,ERR
25: 005C 80 EE SJMP LP2
26: 005E 75 80 FF ERR: MOV P0,#0FFH
27: 0061 80 FE SJMP $
28:
29: 0063 SERVE:
30: 0063 10 98 01 JBC RI,REV1 ;串行口中断服务程序
31: 0066 32 RETI
32: 0067 30 9A 0D REV1: JNB RB8,REV3
33: 006A E5 99 MOV A,SBUF
34: 006C B4 01 07 CJNE A,#01H,REV2
35: 006F C2 9D CLR SM2
36: 0071 D2 D5 SETB F0
37: 0073 75 99 00 MOV SBUF,#00H
38: 0076 32 REV2: RETI
39: 0077 30 D5 0B REV3: JNB F0,REVDT
40: 007A E5 99 MOV A,SBUF ;接收数据块长度
41: 007C 04 INC A
42: 007D F5 50 MOV 50H,A
43: 007F C2 D5 CLR F0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0081 75 99 00 MOV SBUF,#00H
45: 0084 32 RETI
46: 0085 D5 50 17 REVDT: DJNZ 50H,RT
47: 0088 E5 99 MOV A,SBUF ;接收校验和
48: 008A 6D XRL A,R5
49: 008B 60 06 JZ RIGHT
50: 008D 75 99 FF MOV SBUF,#0FFH
51: 0090 D2 78 SETB 2FH.0
52: 0092 32 RETI
53: 0093 75 99 00 RIGHT: MOV SBUF,#00H
54: 0096 C2 78 CLR 2FH.0
55: 0098 D2 9D SETB SM2
56: 009A 7D 00 MOV R5,#0
57: 009C 79 51 MOV R1,#51H
58: 009E 32 RETI
59: 009F E5 99 RT: MOV A,SBUF ;接收数据
60: 00A1 F7 MOV @R1,A
61: 00A2 2D ADD A,R5
62: 00A3 FD MOV R5,A
63: 00A4 09 INC R1
64: 00A5 75 99 00 MOV SBUF,#00H
65: 00A8 32 RETI
66:
67: 00A9 7A FF DELAY: MOV R2,#0FFH ;延时子程序
68: 00AB 7B FF AA1: MOV R3,#0FFH
69: 00AD 00 AA: NOP
70: 00AE 00 NOP
71: 00AF DB FC DJNZ R3,AA
72: 00B1 DA F8 DJNZ R2,AA1
73: 00B3 22 RET
74:
75: 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 00AD 69
AA1 CODE 00AB 68
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
DELAY CODE 00A9 67
DPH DATA 83
DPL DATA 82
EA BIT AF
ERR CODE 005E 26
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
LP1 CODE 0050 19
LP2 CODE 004C 17
MAIN CODE 0030 6
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
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
REV1 CODE 0067 32
REV2 CODE 0076 38
REV3 CODE 0077 39
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
REVDT CODE 0085 46
RI BIT 98
RIGHT CODE 0093 53
RS0 BIT D3
RS1 BIT D4
RT CODE 009F 59
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SERVE CODE 0063 29
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
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 + -