📄 i2c.lst
字号:
0014 FF 448 MOV R7,A
449 ; if(SDA==1)retc=retc+1; /*读数据位,接收的数据位放入retc中 */
450 ; SOURCE LINE # 133
0015 30A101 451 JNB SDA,?C0014
0018 0F 452 INC R7
0019 453 ?C0014:
454 ; _Nop();
A51 MACRO ASSEMBLER I2C 09/13/2009 23:31:56 PAGE 8
455 ; SOURCE LINE # 134
0019 00 456 NOP
457 ; _Nop();
458 ; SOURCE LINE # 135
001A 00 459 NOP
460 ; }
461 ; SOURCE LINE # 136
001B 0E 462 INC R6
001C BE08E6 463 CJNE R6,#08H,?C0011
001F 464 ?C0012:
465 ; SCL=0;
466 ; SOURCE LINE # 137
001F C2A0 467 CLR SCL
468 ; _Nop();
469 ; SOURCE LINE # 138
0021 00 470 NOP
471 ; _Nop();
472 ; SOURCE LINE # 139
0022 00 473 NOP
474 ; return(retc);
475 ; SOURCE LINE # 140
476 ; }
477 ; SOURCE LINE # 141
0023 478 ?C0015:
0023 22 479 RET
480 ; END OF RcvByte
481
482 ;
483 ; /********************************************************************
484 ; 应答子函数
485 ; 函数原型: void Ack_I2c(bit a);
486 ; 功能: 主控器进行应答信号(可以是应答或非应答信号,由位参数a决定)
487 ; ********************************************************************/
488 ; void Ack_I2c(bit a)
489
---- 490 RSEG ?PR?Ack_I2c?I2C
0000 491 Ack_I2c:
492 ; SOURCE LINE # 148
493 ; {
494 ; SOURCE LINE # 149
495 ;
496 ; if(a==0)SDA=0; /*在此发出应答或非应答信号 */
497 ; SOURCE LINE # 151
0000 200004 F 498 JB a?444,?C0016
0003 C2A1 499 CLR SDA
0005 8002 500 SJMP ?C0017
0007 501 ?C0016:
502 ; else SDA=1;
503 ; SOURCE LINE # 152
0007 D2A1 504 SETB SDA
0009 505 ?C0017:
506 ; _Nop();
507 ; SOURCE LINE # 153
0009 00 508 NOP
509 ; _Nop();
510 ; SOURCE LINE # 154
000A 00 511 NOP
512 ; _Nop();
513 ; SOURCE LINE # 155
000B 00 514 NOP
515 ; SCL=1;
516 ; SOURCE LINE # 156
000C D2A0 517 SETB SCL
518 ; _Nop();
519 ; SOURCE LINE # 157
000E 00 520 NOP
A51 MACRO ASSEMBLER I2C 09/13/2009 23:31:56 PAGE 9
521 ; _Nop(); /*时钟低电平周期大于4μs*/
522 ; SOURCE LINE # 158
000F 00 523 NOP
524 ; _Nop();
525 ; SOURCE LINE # 159
0010 00 526 NOP
527 ; _Nop();
528 ; SOURCE LINE # 160
0011 00 529 NOP
530 ; _Nop();
531 ; SOURCE LINE # 161
0012 00 532 NOP
533 ; SCL=0; /*清时钟线,钳住I2C总线以便继续接收*/
534 ; SOURCE LINE # 162
0013 C2A0 535 CLR SCL
536 ; _Nop();
537 ; SOURCE LINE # 163
0015 00 538 NOP
539 ; _Nop();
540 ; SOURCE LINE # 164
0016 00 541 NOP
542 ; }
543 ; SOURCE LINE # 165
0017 22 544 RET
545 ; END OF Ack_I2c
546
547 END
A51 MACRO ASSEMBLER I2C 09/13/2009 23:31:56 PAGE 10
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?ACK_I2C?BIT . . . B ADDR 0000H.0 R SEG=?BI?ACK_I2C?I2C
?BI?ACK_I2C?I2C. . B SEG 0001H REL=UNIT
?BI?I2C. . . . . . B SEG 0001H REL=UNIT
?C0003 . . . . . . C ADDR 0002H R SEG=?PR?_SENDBYTE?I2C
?C0004 . . . . . . C ADDR 0023H R SEG=?PR?_SENDBYTE?I2C
?C0006 . . . . . . C ADDR 0013H R SEG=?PR?_SENDBYTE?I2C
?C0007 . . . . . . C ADDR 0015H R SEG=?PR?_SENDBYTE?I2C
?C0008 . . . . . . C ADDR 0035H R SEG=?PR?_SENDBYTE?I2C
?C0009 . . . . . . C ADDR 0037H R SEG=?PR?_SENDBYTE?I2C
?C0011 . . . . . . C ADDR 0005H R SEG=?PR?RCVBYTE?I2C
?C0012 . . . . . . C ADDR 001FH R SEG=?PR?RCVBYTE?I2C
?C0014 . . . . . . C ADDR 0019H R SEG=?PR?RCVBYTE?I2C
?C0015 . . . . . . C ADDR 0023H R SEG=?PR?RCVBYTE?I2C
?C0016 . . . . . . C ADDR 0007H R SEG=?PR?ACK_I2C?I2C
?C0017 . . . . . . C ADDR 0009H R SEG=?PR?ACK_I2C?I2C
?C0019 . . . . . . C ADDR 0008H R SEG=?PR?_SENDBYTE?I2C
?C0020 . . . . . . C ADDR 000AH R SEG=?PR?_SENDBYTE?I2C
?PR?ACK_I2C?I2C. . C SEG 0018H REL=UNIT
?PR?RCVBYTE?I2C. . C SEG 0024H REL=UNIT
?PR?START_I2C?I2C. C SEG 0016H REL=UNIT
?PR?STOP_I2C?I2C . C SEG 0011H REL=UNIT
?PR?_SENDBYTE?I2C. C SEG 003CH REL=UNIT
A?444. . . . . . . B ADDR 0000H.0 R SEG=?BI?ACK_I2C?I2C
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
ACK. . . . . . . . B ADDR 0000H.0 R SEG=?BI?I2C
ACK_I2C. . . . . . C ADDR 0000H R SEG=?PR?ACK_I2C?I2C
AR6. . . . . . . . D ADDR 0006H A
B. . . . . . . . . D ADDR 00F0H A
CP_RL2 . . . . . . B ADDR 00C8H.0 A
CY . . . . . . . . B ADDR 00D0H.7 A
C_T2 . . . . . . . B ADDR 00C8H.1 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
ET2. . . . . . . . B ADDR 00A8H.5 A
EX0. . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . B ADDR 00A8H.2 A
EXEN2. . . . . . . B ADDR 00C8H.3 A
EXF2 . . . . . . . B ADDR 00C8H.6 A
F0 . . . . . . . . B ADDR 00D0H.5 A
I2C. . . . . . . . N NUMB -----
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
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
PCON . . . . . . . D ADDR 0087H A
A51 MACRO ASSEMBLER I2C 09/13/2009 23:31:56 PAGE 11
PS . . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . D ADDR 00D0H A
PT0. . . . . . . . B ADDR 00B8H.1 A
PT1. . . . . . . . B ADDR 00B8H.3 A
PT2. . . . . . . . B ADDR 00B8H.5 A
PX0. . . . . . . . B ADDR 00B8H.0 A
PX1. . . . . . . . B ADDR 00B8H.2 A
RB8. . . . . . . . B ADDR 0098H.2 A
RCAP2H . . . . . . D ADDR 00CBH A
RCAP2L . . . . . . D ADDR 00CAH A
RCLK . . . . . . . B ADDR 00C8H.5 A
RCVBYTE. . . . . . C ADDR 0000H R SEG=?PR?RCVBYTE?I2C
RD . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . B ADDR 0098H.4 A
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . B ADDR 00B0H.0 A
SBUF . . . . . . . D ADDR 0099H A
SCL. . . . . . . . B ADDR 00A0H.0 A
SCON . . . . . . . D ADDR 0098H A
SDA. . . . . . . . B ADDR 00A0H.1 A
SM0. . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . D ADDR 0081H A
START_I2C. . . . . C ADDR 0000H R SEG=?PR?START_I2C?I2C
STOP_I2C . . . . . C ADDR 0000H R SEG=?PR?STOP_I2C?I2C
T0 . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . B ADDR 00B0H.5 A
T2 . . . . . . . . B ADDR 0090H.0 A
T2CON. . . . . . . D ADDR 00C8H A
T2EX . . . . . . . B ADDR 0090H.1 A
TB8. . . . . . . . B ADDR 0098H.3 A
TCLK . . . . . . . B ADDR 00C8H.4 A
TCON . . . . . . . D ADDR 0088H A
TF0. . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . B ADDR 0088H.7 A
TF2. . . . . . . . B ADDR 00C8H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TH2. . . . . . . . D ADDR 00CDH A
TI . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TL2. . . . . . . . D ADDR 00CCH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
TR2. . . . . . . . B ADDR 00C8H.2 A
TXD. . . . . . . . B ADDR 00B0H.1 A
WR . . . . . . . . B ADDR 00B0H.6 A
_SENDBYTE. . . . . C ADDR 0000H R SEG=?PR?_SENDBYTE?I2C
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -