📄 serial.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: SERIAL.ASM
Object File: SERIAL.HEX
List File: SERIAL.LST
Line I Addr Code Source
1: ;这是一个串行口方式1用法的例子
2: ;系统的晶振频率11.0592MHz,通信波特率9600
3: ;要求每秒钟将以ADDR1为首地址的内部RAM8字节数据块发送出去
4: ;接收的数据块长为8字节,收到后存放到ADDR2为首地址的内部RAM中
5: N 0030 ADDR1 EQU 30H
6: N 0040 ADDR2 EQU 40H
7: N 00 SEC BIT 00H ;秒标志
8: N 000A CR2 EQU 0AH ;1区R2
9: N 0010 BR0 EQU 10H ;2区R0
10: N 0011 BR1 EQU 11H ;2区R1
11: N 0012 BR2 EQU 12H ;2区R2
12: N 0013 BR3 EQU 13H ;2区R3
13: N 0000 ORG 0
14: 0000 02 00 30 LJMP START
15: N 000B ORG 0BH
16: 000B 02 00 7C LJMP TS
17: N 0023 ORG 23H
18: 0023 02 00 95 LJMP TR
19: N 0030 ORG 30H
20: 0030 75 81 60 START: MOV SP,#60H
21: ;==============================================
22: ;给发送缓冲区赋值
23: ;==============================================
24: 0033 78 30 MOV R0,#ADDR1
25: 0035 7A 08 MOV R2,#8
26: 0037 74 30 MOV A,#30H
27: 0039 F6 LL1: MOV @R0,A
28: 003A 04 INC A
29: 003B 08 INC R0
30: 003C DA FB DJNZ R2,LL1
31: ;=============================================
32: 003E 75 89 21 MOV TMOD,#21H
33: 0041 75 8C 4C MOV TH0,#4CH
34: 0044 75 8A 00 MOV TL0,#0 ;50mS定时初值
35: 0047 75 8D FD MOV TH1,#0FDH
36: 004A 75 8B FD MOV TL1,#0FDH ;9600波特
37: 004D 53 87 7F ANL PCON,#7FH
38: 0050 75 98 50 MOV SCON,#50H
39: 0053 D2 A9 SETB ET0
40: 0055 D2 AC SETB ES
41: 0057 D2 B9 SETB PT0
42: 0059 D2 AF SETB EA
43: 005B 75 10 30 MOV BR0,#ADDR1
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 005E 75 11 40 MOV BR1,#ADDR2
45: 0061 75 12 08 MOV BR2,#8
46: 0064 75 13 08 MOV BR3,#8
47: 0067 75 0A 14 MOV CR2,#20
48: 006A C2 00 CLR SEC
49: 006C D2 8C SETB TR0
50: 006E D2 8E SETB TR1
51: 0070 30 00 FD LOOP: JNB SEC,$
52: 0073 C2 00 CLR SEC
53: 0075 A8 10 MOV R0,BR0
54: 0077 E6 MOV A,@R0
55: 0078 F5 99 MOV SBUF,A ;启动发送,发送第一个字节
56: 007A 80 F4 SJMP LOOP ;等待下一秒钟时间到
57: 007C C0 D0 TS: PUSH PSW
58: 007E D2 D3 SETB RS0
59: 0080 C2 D4 CLR RS1 ;选1区工作寄存器
60: 0082 C2 8C CLR TR0
61: 0084 75 8C 4C MOV TH0,#4CH
62: 0087 75 8A 00 MOV TL0,#0
63: 008A D2 8C SETB TR0
64: 008C DA 04 DJNZ R2,TS1
65: 008E 7A 14 MOV R2,#20
66: 0090 D2 00 SETB SEC
67: 0092 D0 D0 TS1: POP PSW
68: 0094 32 RETI
69: 0095 C0 D0 TR: PUSH PSW
70: 0097 C0 E0 PUSH ACC
71: 0099 D2 D4 SETB RS1
72: 009B C2 D3 CLR RS0 ;选择2区工作寄存器
73: 009D 30 99 0E JNB TI,SR2
74: 00A0 C2 99 CLR TI
75: 00A2 DA 06 DJNZ R2,SR1
76: 00A4 78 30 MOV R0,#ADDR1
77: 00A6 7A 08 MOV R2,#8
78: 00A8 80 04 SJMP SR2
79: 00AA 08 SR1: INC R0
80: 00AB E6 MOV A,@R0
81: 00AC F5 99 MOV SBUF,A
82: 00AE 30 98 0C SR2: JNB RI,SR3
83: 00B1 C2 98 CLR RI
84: 00B3 E5 99 MOV A,SBUF
85: 00B5 F7 MOV @R1,A
86: 00B6 09 INC R1
87: 00B7 DB 04 DJNZ R3,SR3
88: 00B9 79 40 MOV R1,#ADDR2
89: 00BB 7B 08 MOV R3,#8
90: 00BD D0 E0 SR3: POP ACC
91: 00BF D0 D0 POP PSW
92: 00C1 32 RETI
93: END
register banks used: ---
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
ADDR1 NUMBER 0030 5
ADDR2 NUMBER 0040 6
B DATA F0
BR0 NUMBER 0010 9
BR1 NUMBER 0011 10
BR2 NUMBER 0012 11
BR3 NUMBER 0013 12
CR2 NUMBER 000A 8
CY BIT D7
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
LL1 CODE 0039 27
LOOP CODE 0070 51
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
RI BIT 98
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SEC BIT 00 7
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
SR1 CODE 00AA 79
SR2 CODE 00AE 82
SR3 CODE 00BD 90
START CODE 0030 20
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
TR CODE 0095 69
TR0 BIT 8C
TR1 BIT 8E
TS CODE 007C 57
TS1 CODE 0092 67
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -