📄 int_rec.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: INT_REC.ASM
Object File: INT_REC.HEX
List File: INT_REC.LST
Line I Addr Code Source
1: N 0000 ORG 0000H ;主程序入口
2: 0000 02 01 00 LJMP MAIN
3: N 0023 ORG 0023H ;串行中断入口
4: 0023 02 01 1B LJMP SERVE2
5: N 0100 ORG 0100H
6: 0100 75 89 20 MAIN: MOV TMOD, #20H ;将T1设为工作方式2
7: 0103 75 8D F3 MOV TH1, #0F3H ;fosc=6MHz时,BD=2400
8: 0106 75 8B F3 MOV TL1, #0F3H
9: 0109 D2 8E SETB TR1 ;启动T1
10: 010B 75 87 80 MOV PCON, #80H ;Smod=1
11: 010E 75 98 D0 MOV SCON, #0D0H ;串行口设为工作方式3, 允许接收
12: 0111 78 40 MOV R0, #40H ;数据块首地址
13: 0113 7F 10 MOV R7, #10H ;接收字节数
14: 0115 D2 AC SETB ES ;允许串行口中断
15: 0117 D2 AF SETB EA ;开中断
16: 0119 80 FE SJMP $ ;等待中断
17:
18: ;接收方单片机的中断服务程序:
19: 011B 10 98 04 SERVE2: JBC RI, LOOP ;是接收中断,清零RI,转入接收
20: 011E C2 99 CLR TI ;是发送中断,清零TI
21: 0120 80 23 SJMP ENDT
22: 0122 E5 99 LOOP: MOV A, SBUF ;接收数据
23: 0124 A2 D0 MOV C, P ;奇偶标志送C
24: 0126 40 06 JC LOOP1 ;为奇数,转入LOOP1
25: 0128 72 9A ORL C, RB8 ;为偶数,检测RB8
26: 012A 40 06 JC LOOP2 ;奇偶校验出错
27: 012C 80 0A SJMP LOOP3
28: 012E 82 9A LOOP1: ANL C, RB8 ;检测RB8
29: 0130 40 06 JC LOOP3 ;奇偶校验正确
30: 0132 74 FF LOOP2: MOV A, #0FFH
31: 0134 F5 99 MOV SBUF, A ;发送“不正确”应答信号
32: 0136 80 0D SJMP ENDT
33: 0138 F6 LOOP3: MOV @R0, A ;存放接收数据
34: 0139 C4 SWAP A
35: 013A F5 90 MOV P1,A
36: 013C 74 00 MOV A, #00H
37: 013E F5 99 MOV SBUF, A ;发送“正确”应答信号
38: 0140 08 INC R0 ;修改数据指针
39: 0141 DF 02 DJNZ R7, ENDT ;未接收完数据
40: 0143 C2 AC CLR ES ;全部数据接收完毕, 禁止串行口中断
41: 0145 32 ENDT: RETI ;中断返回
42:
43: END
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
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
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
DPH DATA 83
DPL DATA 82
EA BIT AF
ENDT CODE 0145 41
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
LOOP CODE 0122 22
LOOP1 CODE 012E 28
LOOP2 CODE 0132 30
LOOP3 CODE 0138 33
MAIN CODE 0100 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
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
SBUF DATA 99
SCON DATA 98
SERVE2 CODE 011B 19
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 + -