📄 bus.ls1
字号:
271 ; if (SDAPin) NoAck = 1;
272 ;
273 ; SCLPin = 0;
274 ;
275 ; #endif
276 ;
277 ; }
278 ; SOURCE LINE # 105
0020 22 279 RET
280 ; END OF _SendI2CByte
281
282 ;
283 ;
284 ;
285 ; /*********************************************
286 ; * Receive byte of data from an I2C device *
287 ; **********************************************/
288 ; unsigned char RcvI2CByte(unsigned char cnt)
289
---- 290 RSEG ?PR?_RcvI2CByte?BUS
0000 291 _RcvI2CByte:
292 USING 0
293 ; SOURCE LINE # 112
294 ;---- Variable 'cnt?242' assigned to Register 'R7' ----
295 ; {
296 ; SOURCE LINE # 113
297 ; #if USE_ASM
298 ;
299 ; B = cnt;
300 ; SOURCE LINE # 116
0000 8FF0 301 MOV B,R7
302 ; #pragma asm
303 ;
304
305 ; MOV R7,#8
0002 7F08 306 MOV R7,#8
307 ;
308
309 ; RcvByte1:
0004 310 RcvByte1:
311 ; SETB SCLPin
0004 D2A6 312 SETB SCLPin
313 ; JNB SCLPin,$
0006 30A6FD 314 JNB SCLPin,$
315 ; MOV C,SDAPin
0009 A2A7 316 MOV C,SDAPin
317 ; RLC A
000B 33 318 RLC A
319 ; CLR SCLPin
000C C2A6 320 CLR SCLPin
321 ; DJNZ R7,RcvByte1
000E DFF4 322 DJNZ R7,RcvByte1
A51 MACRO ASSEMBLER BUS 09/10/2004 16:09:02 PAGE 6
323 ;
324
325 ; PUSH ACC
0010 C0E0 326 PUSH ACC
327 ; MOV A,B
0012 E5F0 328 MOV A,B
329 ; CJNE A,#1,RcvByte2
0014 B40104 330 CJNE A,#1,RcvByte2
331 ; SETB SDAPin
0017 D2A7 332 SETB SDAPin
333 ; SJMP RcvByte3
0019 8003 334 SJMP RcvByte3
335 ;
336
337 ; RcvByte2:
001B 338 RcvByte2:
339 ; CLR SDAPin
001B C2A7 340 CLR SDAPin
341 ; NOP
001D 00 342 NOP
343 ; RcvByte3:
001E 344 RcvByte3:
345 ; SETB SCLPin
001E D2A6 346 SETB SCLPin
347 ; JNB SCLPin,$
0020 30A6FD 348 JNB SCLPin,$
349 ; NOP
0023 00 350 NOP
351 ; CLR SCLPin
0024 C2A6 352 CLR SCLPin
353 ; NOP
0026 00 354 NOP
355 ; SETB SDAPin
0027 D2A7 356 SETB SDAPin
357 ; POP ACC
0029 D0E0 358 POP ACC
359 ;
360
361 ; #pragma endasm
362 ;
363 ; return ACC;
364 ; SOURCE LINE # 149
002B FF 365 MOV R7,A
366 ;
367 ; #else
368 ;
369 ; unsigned char bval = 0, b;
370 ;
371 ; for(b=0; b < 8; b++) {
372 ; SCLHigh();
373 ; bval <<= 1;
374 ; bval |= SDAPin;
375 ; SCLPin = 0;
376 ; }
377 ;
378 ; SDAPin = (cnt==1) ? 1 : 0;
379 ; SCLHigh();
380 ; SCLPin = 0;
381 ; SDAPin = 1; //Clear acknowledge bit.
382 ; return bval;
383 ; #endif
384 ; }
385 ; SOURCE LINE # 168
002C 386 ?C0008:
002C 22 387 RET
388 ; END OF _RcvI2CByte
A51 MACRO ASSEMBLER BUS 09/10/2004 16:09:02 PAGE 7
389
390 ;
391 ; /*************************************
392 ; * Send I2C STOP, release bus *
393 ; **************************************/
394 ; void SendI2CStop(void)
395
---- 396 RSEG ?PR?SendI2CStop?BUS
0000 397 SendI2CStop:
398 ; SOURCE LINE # 173
399 ; {
400 ; SOURCE LINE # 174
401 ; SDAPin = 0;
402 ; SOURCE LINE # 175
0000 C2A7 403 CLR SDAPin
404 ; _nop_();
405 ; SOURCE LINE # 176
0002 00 406 NOP
407 ; SCLHigh();
408 ; SOURCE LINE # 177
0003 D2A6 409 SETB SCLPin
0005 410 ?C0009:
0005 30A6FD 411 JNB SCLPin,?C0009
0008 412 ?C0010:
413 ; _nop_();
414 ; SOURCE LINE # 178
0008 00 415 NOP
416 ; SDAPin = 1;
417 ; SOURCE LINE # 179
0009 D2A7 418 SETB SDAPin
419 ; _nop_();
420 ; SOURCE LINE # 180
000B 00 421 NOP
422 ; BusBusy = 0;
423 ; SOURCE LINE # 181
000C C200 F 424 CLR BusBusy
425 ; }
426 ; SOURCE LINE # 182
000E 22 427 RET
428 ; END OF SendI2CStop
429
430 END
A51 MACRO ASSEMBLER BUS 09/10/2004 16:09:02 PAGE 8
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C0001 . . . . . . . C ADDR 000AH R SEG=?PR?_GOI2CMASTER?BUS
?C0002 . . . . . . . C ADDR 0007H R SEG=?PR?_GOI2CMASTER?BUS
?C0004 . . . . . . . C ADDR 001EH R SEG=?PR?_GOI2CMASTER?BUS
?C0006 . . . . . . . C ADDR 0020H R SEG=?PR?_GOI2CMASTER?BUS
?C0008 . . . . . . . C ADDR 002CH R SEG=?PR?_RCVI2CBYTE?BUS
?C0009 . . . . . . . C ADDR 0005H R SEG=?PR?SENDI2CSTOP?BUS
?C0010 . . . . . . . C ADDR 0008H R SEG=?PR?SENDI2CSTOP?BUS
?PR?SENDI2CSTOP?BUS. C SEG 000FH REL=UNIT
?PR?_GOI2CMASTER?BUS C SEG 0021H REL=UNIT
?PR?_RCVI2CBYTE?BUS. C SEG 002DH REL=UNIT
?PR?_SENDI2CBYTE?BUS C SEG 0021H REL=UNIT
AC . . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . . D ADDR 00E0H A
AUDIO_MUTE_PIN . . . B ADDR 0080H.4 A
AUDIO_STBY_PIN . . . B ADDR 0080H.6 A
AUTO_BUT_PIN . . . . B ADDR 0090H.0 A
B. . . . . . . . . . D ADDR 00F0H A
BRIGHTNESSPIN. . . . B ADDR 00B0H.5 A
BUS. . . . . . . . . N NUMB -----
BUSBUSY. . . . . . . B ADDR ----- EXT
BUSFAULT . . . . . . B ADDR ----- EXT
CY . . . . . . . . . B ADDR 00D0H.7 A
DPH. . . . . . . . . D ADDR 0083H A
DPL. . . . . . . . . D ADDR 0082H A
EA . . . . . . . . . B ADDR 00A8H.7 A
ES . . . . . . . . . B ADDR 00A8H.4 A
ET0. . . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . . B ADDR 00A8H.3 A
EX0. . . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . . B ADDR 00A8H.2 A
F0 . . . . . . . . . B ADDR 00D0H.5 A
IE . . . . . . . . . D ADDR 00A8H A
IE0. . . . . . . . . B ADDR 0088H.1 A
IE1. . . . . . . . . B ADDR 0088H.3 A
INT0 . . . . . . . . B ADDR 00B0H.2 A
INT1 . . . . . . . . B ADDR 00B0H.3 A
IP . . . . . . . . . D ADDR 00B8H A
IT0. . . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . . B ADDR 0088H.2 A
LED_G_PIN. . . . . . B ADDR 0080H.1 A
LED_O_PIN. . . . . . B ADDR 0080H.0 A
LEFT_BUT_PIN . . . . B ADDR 0090H.1 A
MENU_BUT_PIN . . . . B ADDR 0090H.4 A
NOACK. . . . . . . . B ADDR ----- EXT
OV . . . . . . . . . B ADDR 00D0H.2 A
P. . . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . . D ADDR 00B0H A
PANEL_BKL_PIN. . . . B ADDR 00A0H.3 A
PANEL_VCC_PIN. . . . B ADDR 00A0H.2 A
PCON . . . . . . . . D ADDR 0087H A
POWER_BUT_PIN. . . . B ADDR 0090H.3 A
PS . . . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . . D ADDR 00D0H A
PT0. . . . . . . . . B ADDR 00B8H.1 A
PT1. . . . . . . . . B ADDR 00B8H.3 A
PX0. . . . . . . . . B ADDR 00B8H.0 A
PX1. . . . . . . . . B ADDR 00B8H.2 A
A51 MACRO ASSEMBLER BUS 09/10/2004 16:09:02 PAGE 9
RB8. . . . . . . . . B ADDR 0098H.2 A
RCVBYTE1 . . . . . . C ADDR 0004H R SEG=?PR?_RCVI2CBYTE?BUS
RCVBYTE2 . . . . . . C ADDR 001BH R SEG=?PR?_RCVI2CBYTE?BUS
RCVBYTE3 . . . . . . C ADDR 001EH R SEG=?PR?_RCVI2CBYTE?BUS
RD . . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . . B ADDR 0098H.4 A
RESETPIN . . . . . . B ADDR 00A0H.0 A
RI . . . . . . . . . B ADDR 0098H.0 A
RIGHT_BUT_PIN. . . . B ADDR 0090H.2 A
RS0. . . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . . B ADDR 00B0H.0 A
SBUF . . . . . . . . D ADDR 0099H A
SCLPIN . . . . . . . B ADDR 00A0H.6 A
SCON . . . . . . . . D ADDR 0098H A
SDAPIN . . . . . . . B ADDR 00A0H.7 A
SENDBYTE1. . . . . . C ADDR 0003H R SEG=?PR?_SENDI2CBYTE?BUS
SENDBYTE2. . . . . . C ADDR 001EH R SEG=?PR?_SENDI2CBYTE?BUS
SENDI2CSTOP. . . . . C ADDR 0000H R SEG=?PR?SENDI2CSTOP?BUS
SHUTTLE_PIN. . . . . B ADDR 00B0H.5 A
SM0. . . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . . D ADDR 0081H A
T0 . . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . . B ADDR 00B0H.5 A
TB8. . . . . . . . . B ADDR 0098H.3 A
TCON . . . . . . . . D ADDR 0088H A
TF0. . . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . . B ADDR 0088H.7 A
TH0. . . . . . . . . D ADDR 008CH A
TH1. . . . . . . . . D ADDR 008DH A
TI . . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . . D ADDR 008AH A
TL1. . . . . . . . . D ADDR 008BH A
TMOD . . . . . . . . D ADDR 0089H A
TR0. . . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . . B ADDR 0088H.6 A
TXD. . . . . . . . . B ADDR 00B0H.1 A
VGA_CON_PIN. . . . . B ADDR 00A0H.5 A
WPPIN. . . . . . . . B ADDR 00A0H.4 A
WR . . . . . . . . . B ADDR 00B0H.6 A
_GOI2CMASTER . . . . C ADDR 0000H R SEG=?PR?_GOI2CMASTER?BUS
_RCVI2CBYTE. . . . . C ADDR 0000H R SEG=?PR?_RCVI2CBYTE?BUS
_SENDI2CBYTE . . . . C ADDR 0000H R SEG=?PR?_SENDI2CBYTE?BUS
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -