📄 congji3.lst
字号:
A51 MACRO ASSEMBLER CONGJI3 01/24/2008 09:20:27 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN congji3.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE congji3.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00B7 1 T_RSTATE EQU P3.7
0000 2 ORG 0000H
0000 020100 3 LJMP START
0023 4 ORG 0023H
0023 02011A 5 LJMP SERIAL_INTERRUPT
0100 6 ORG 0100H
7 ;****************************************************
8 ;
9 ;程序初始化
10 ;
11 ;****************************************************
0100 753003 12 START:MOV 30H,#03H;设置从机号
0103 758920 13 MOV TMOD,#20H
0106 758DFD 14 MOV TH1,#0FDH
0109 758BFD 15 MOV TL1,#0FDH
010C D28E 16 SETB TR1
010E 7598F0 17 MOV SCON,#0F0H
0111 758780 18 MOV PCON,#80H
0114 D2AC 19 SETB ES;开串口中断使能
0116 D2AF 20 SETB EA;开全局中断使能
0118 80FE 21 SJMP $
22 ;****************************************************
23 ;
24 ;中断服务程序,按照通讯协议与主机之间交换数据
25 ;
26 ;****************************************************
011A 27 SERIAL_INTERRUPT:
011A C298 28 CLR RI
011C C2AC 29 CLR ES
011E A999 30 MOV R1,SBUF
0120 E9 31 MOV A,R1
0121 B53022 32 CJNE A,30H,COMM_END;与存储在30H中的从机号进行比较
0124 C29D 33 CLR SM2
0126 D2B7 34 SETB T_RSTATE;将MAX485设置为发送状态
0128 853099 35 MOV SBUF,30H
012B 3099FD 36 JNB TI,$;等待串口数据发送结束
012E C299 37 CLR TI
0130 C2B7 38 CLR T_RSTATE;将MAX485设置为接收状态
0132 3098FD 39 JNB RI,$
0135 C298 40 CLR RI
0137 209A0C 41 JB RB8,COMM_END
013A D2B7 42 SETB T_RSTATE
013C 859099 43 MOV SBUF,P1
013F 3099FD 44 JNB TI,$;等待发送完毕
0142 C299 45 CLR TI
0144 C2B7 46 CLR T_RSTATE;将MAX485设置为输入状态
0146 47 COMM_END:
0146 D29D 48 SETB SM2
0148 D2AC 49 SETB ES
014A 32 50 RETI
51 END
A51 MACRO ASSEMBLER CONGJI3 01/24/2008 09:20:27 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
COMM_END . . . . . C ADDR 0146H A
EA . . . . . . . . B ADDR 00A8H.7 A
ES . . . . . . . . B ADDR 00A8H.4 A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
PCON . . . . . . . D ADDR 0087H A
RB8. . . . . . . . B ADDR 0098H.2 A
RI . . . . . . . . B ADDR 0098H.0 A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SERIAL_INTERRUPT . C ADDR 011AH A
SM2. . . . . . . . B ADDR 0098H.5 A
START. . . . . . . C ADDR 0100H A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR1. . . . . . . . B ADDR 0088H.6 A
T_RSTATE . . . . . B ADDR 00B0H.7 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -