📄 int_trs.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_TRS.ASM
Object File: INT_TRS.HEX
List File: INT_TRS.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 36 LJMP SERVE1
5: N 0100 ORG 0100H
6: 0100 75 81 60 MAIN: MOV SP,#60h
7: 0103 78 40 MOV R0,#40H
8: 0105 74 00 MOV A,#00
9: 0107 7C 10 MOV R4,#10H
10: 0109 F6 LP: MOV @R0,A
11: 010A 08 INC R0
12: 010B 04 INC A
13: 010C DC FB DJNZ R4,LP
14: 010E 75 89 20 MOV TMOD, #20H ;将T1设为工作方式2
15: 0111 75 8D F3 MOV TH1, #0F3H ;fosc=6MHz时,BD=2400
16: 0114 75 8B F3 MOV TL1, #0F3H
17: 0117 D2 8E SETB TR1 ;启动T1
18: 0119 75 87 80 MOV PCON, #80H ;Smod=1
19: 011C 75 98 D0 MOV SCON, #0D0H ;串行口设为工作方式3, 允许接收
20: 011F 78 40 MOV R0, #40H ;数据块首地址
21: 0121 7C 10 MOV R4,#10H ;发送字节数
22: 0123 D2 AC SETB ES ;允许串行口中断
23: 0125 D2 AF SETB EA ;开中断
24: 0127 E6 MOV A, @R0 ;取发送数据
25: 0128 A2 D0 MOV C, P
26: 012A 92 9B MOV TB8,C ;奇偶标志送TB8
27: 012C F5 90 MOV P1,A
28: 012E 12 01 6C LCALL DELAY
29: 0131 F5 99 MOV SBUF,A ;发送数据
30: 0133 1C DEC R4
31: 0134 80 FE SJMP $ ;等待中断
32:
33: ;发送方单片机的中断服务程序:
34: 0136 C0 E0 SERVE1: PUSH ACC
35: 0138 C0 D0 PUSH PSW
36: 013A 10 98 04 JBC RI, LOOP ;是接收中断,清零RI,转入接收应答信息
37: 013D C2 99 CLR TI ;是发送中断,清零TI
38: 013F 80 26 SJMP ENDT
39: 0141 E5 99 LOOP: MOV A, SBUF ;取应答信息
40: 0143 C3 CLR C
41: 0144 94 01 SUBB A,#01H ;判断应答信息是#00H吗?
42: 0146 40 0E JC LOOP1 ;是#00H,发送正确
43: 0148 E6 MOV A, @R0 ;否则重发原来数据
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0149 A2 D0 MOV C, P
45: 014B 92 9B MOV TB8, C
46: 014D F5 99 MOV SBUF, A
47: 014F F5 90 MOV P1,A
48: 0151 12 01 6C LCALL DELAY
49: 0154 80 11 SJMP ENDT
50: 0156 08 LOOP1: INC R0 ;修改地址指针,准备发送下一个数据
51: 0157 E6 MOV A, @R0
52: 0158 A2 D0 MOV C, P
53: 015A 92 9B MOV TB8, C
54: 015C F5 99 MOV SBUF, A ;发送数据
55: 015E F5 90 MOV P1,A
56: 0160 12 01 6C LCALL DELAY
57: 0163 DC 02 DJNZ R4, ENDT ;数据未发送完,继续
58: 0165 C2 AC CLR ES ;数据全部发送完毕,禁止串行口中断
59: 0167 D0 D0 ENDT: POP PSW
60: 0169 D0 E0 POP ACC
61: 016B 32 RETI ;中断返回
62:
63: 016C 7F 03 DELAY: MOV R7,#3
64: 016E 7E FF DD1: MOV R6,#0FFH
65: 0170 7D FF DD2: MOV R5,#0FFH
66: 0172 DD FE DJNZ R5,$
67: 0174 DE FA DJNZ R6,DD2
68: 0176 DF F6 DJNZ R7,DD1
69: 0178 22 RET
70: 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
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
DD1 CODE 016E 64
DD2 CODE 0170 65
DELAY CODE 016C 63
DPH DATA 83
DPL DATA 82
EA BIT AF
ENDT CODE 0167 59
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 0141 39
LOOP1 CODE 0156 50
LP CODE 0109 10
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
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SERVE1 CODE 0136 34
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 + -