📄 2402.lst
字号:
160 USING 0
161 ; SOURCE LINE # 44
0000 8F00 F 162 MOV sla?145,R7
0002 8D00 F 163 MOV suba?146,R5
0004 8B00 F 164 MOV s?147,R3
0006 8A00 F 165 MOV s?147+01H,R2
0008 8900 F 166 MOV s?147+02H,R1
167 ; {
168 ; SOURCE LINE # 45
169 ; unsigned char i;
170 ;
171 ; Start_I2c(); /*启动总线*/
172 ; SOURCE LINE # 48
000A 120000 F 173 LCALL Start_I2c
174 ; SendByte(sla); /*发送器件地址*/
175 ; SOURCE LINE # 49
000D AF00 F 176 MOV R7,sla?145
000F 120000 F 177 LCALL _SendByte
178 ; if(ack==0)return(0);
179 ; SOURCE LINE # 50
0012 200002 F 180 JB ack,?C0008
0015 C3 181 CLR C
0016 22 182 RET
0017 183 ?C0008:
184 ; SendByte(suba); /*发送器件子地址*/
185 ; SOURCE LINE # 51
0017 AF00 F 186 MOV R7,suba?146
0019 120000 F 187 LCALL _SendByte
188 ; if(ack==0)return(0);
189 ; SOURCE LINE # 52
A51 MACRO ASSEMBLER 2402 09/16/2009 23:41:27 PAGE 4
001C 200002 F 190 JB ack,?C0010
001F C3 191 CLR C
0020 22 192 RET
0021 193 ?C0010:
194 ;
195 ; Start_I2c(); /*重新启动总线*/
196 ; SOURCE LINE # 54
0021 120000 F 197 LCALL Start_I2c
198 ; SendByte(sla+1);
199 ; SOURCE LINE # 55
0024 E500 F 200 MOV A,sla?145
0026 04 201 INC A
0027 FF 202 MOV R7,A
0028 120000 F 203 LCALL _SendByte
204 ; if(ack==0)return(0);
205 ; SOURCE LINE # 56
002B 200002 F 206 JB ack,?C0011
002E C3 207 CLR C
002F 22 208 RET
0030 209 ?C0011:
210 ; for(i=0;i<no-1;i++)
211 ; SOURCE LINE # 57
0030 E4 212 CLR A
0031 F500 F 213 MOV i?149,A
0033 214 ?C0012:
0033 E500 F 215 MOV A,no?148
0035 14 216 DEC A
0036 FF 217 MOV R7,A
0037 E500 F 218 MOV A,i?149
0039 C3 219 CLR C
003A 9F 220 SUBB A,R7
003B 5021 221 JNC ?C0013
222 ; {
223 ; SOURCE LINE # 58
224 ; *s=RcvByte(); /*发送数据*/
225 ; SOURCE LINE # 59
003D 120000 F 226 LCALL RcvByte
0040 AB00 F 227 MOV R3,s?147
0042 AA00 F 228 MOV R2,s?147+01H
0044 A900 F 229 MOV R1,s?147+02H
0046 EF 230 MOV A,R7
0047 120000 F 231 LCALL ?C?CSTPTR
232 ; Ack_I2c(0); /*发送就答位*/
233 ; SOURCE LINE # 60
004A C200 F 234 CLR ?Ack_I2c?BIT
004C 120000 F 235 LCALL Ack_I2c
236 ; s++;
237 ; SOURCE LINE # 61
004F 7401 238 MOV A,#01H
0051 2500 F 239 ADD A,s?147+02H
0053 F500 F 240 MOV s?147+02H,A
0055 E4 241 CLR A
0056 3500 F 242 ADDC A,s?147+01H
0058 F500 F 243 MOV s?147+01H,A
244 ; }
245 ; SOURCE LINE # 62
005A 0500 F 246 INC i?149
005C 80D5 247 SJMP ?C0012
005E 248 ?C0013:
249 ; *s=RcvByte();
250 ; SOURCE LINE # 63
005E 120000 F 251 LCALL RcvByte
0061 AB00 F 252 MOV R3,s?147
0063 AA00 F 253 MOV R2,s?147+01H
0065 A900 F 254 MOV R1,s?147+02H
0067 EF 255 MOV A,R7
A51 MACRO ASSEMBLER 2402 09/16/2009 23:41:27 PAGE 5
0068 120000 F 256 LCALL ?C?CSTPTR
257 ; Ack_I2c(1); /*发送非应位*/
258 ; SOURCE LINE # 64
006B D200 F 259 SETB ?Ack_I2c?BIT
006D 120000 F 260 LCALL Ack_I2c
261 ; Stop_I2c(); /*结束总线*/
262 ; SOURCE LINE # 65
0070 120000 F 263 LCALL Stop_I2c
264 ; return(1);
265 ; SOURCE LINE # 66
0073 D3 266 SETB C
267 ; }
268 ; SOURCE LINE # 67
0074 269 ?C0009:
0074 22 270 RET
271 ; END OF _IRcvStr
272
273 END
A51 MACRO ASSEMBLER 2402 09/16/2009 23:41:27 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?ACK_I2C?BIT . . . B ADDR ----- EXT
?C0001 . . . . . . C ADDR 0017H R SEG=?PR?_ISENDSTR?2402
?C0002 . . . . . . C ADDR 0050H R SEG=?PR?_ISENDSTR?2402
?C0003 . . . . . . C ADDR 0021H R SEG=?PR?_ISENDSTR?2402
?C0004 . . . . . . C ADDR 0024H R SEG=?PR?_ISENDSTR?2402
?C0005 . . . . . . C ADDR 004CH R SEG=?PR?_ISENDSTR?2402
?C0007 . . . . . . C ADDR 003DH R SEG=?PR?_ISENDSTR?2402
?C0008 . . . . . . C ADDR 0017H R SEG=?PR?_IRCVSTR?2402
?C0009 . . . . . . C ADDR 0074H R SEG=?PR?_IRCVSTR?2402
?C0010 . . . . . . C ADDR 0021H R SEG=?PR?_IRCVSTR?2402
?C0011 . . . . . . C ADDR 0030H R SEG=?PR?_IRCVSTR?2402
?C0012 . . . . . . C ADDR 0033H R SEG=?PR?_IRCVSTR?2402
?C0013 . . . . . . C ADDR 005EH R SEG=?PR?_IRCVSTR?2402
?C?CLDPTR. . . . . C ADDR ----- EXT
?C?CSTPTR. . . . . C ADDR ----- EXT
?DT?_IRCVSTR?2402. D SEG 0007H REL=UNIT
?DT?_ISENDSTR?2402 D SEG 0007H REL=UNIT
?PR?_IRCVSTR?2402. C SEG 0075H REL=UNIT
?PR?_ISENDSTR?2402 C SEG 0051H REL=UNIT
?_IRCVSTR?BYTE . . D ADDR 0000H R SEG=?DT?_IRCVSTR?2402
?_ISENDSTR?BYTE. . D ADDR 0000H R SEG=?DT?_ISENDSTR?2402
ACK. . . . . . . . B ADDR ----- EXT
ACK_I2C. . . . . . C ADDR ----- EXT
I?044. . . . . . . D ADDR 0006H R SEG=?DT?_ISENDSTR?2402
I?149. . . . . . . D ADDR 0006H R SEG=?DT?_IRCVSTR?2402
NO?043 . . . . . . D ADDR 0005H R SEG=?DT?_ISENDSTR?2402
NO?148 . . . . . . D ADDR 0005H R SEG=?DT?_IRCVSTR?2402
RCVBYTE. . . . . . C ADDR ----- EXT
S?042. . . . . . . D ADDR 0002H R SEG=?DT?_ISENDSTR?2402
S?147. . . . . . . D ADDR 0002H R SEG=?DT?_IRCVSTR?2402
SLA?040. . . . . . D ADDR 0000H R SEG=?DT?_ISENDSTR?2402
SLA?145. . . . . . D ADDR 0000H R SEG=?DT?_IRCVSTR?2402
START_I2C. . . . . C ADDR ----- EXT
STOP_I2C . . . . . C ADDR ----- EXT
SUBA?041 . . . . . D ADDR 0001H R SEG=?DT?_ISENDSTR?2402
SUBA?146 . . . . . D ADDR 0001H R SEG=?DT?_IRCVSTR?2402
_2402. . . . . . . N NUMB -----
_IRCVSTR . . . . . C ADDR 0000H R SEG=?PR?_IRCVSTR?2402
_ISENDSTR. . . . . C ADDR 0000H R SEG=?PR?_ISENDSTR?2402
_SENDBYTE. . . . . C ADDR ----- EXT
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -