⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 access.ls1

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0038 758300          667             MOV     DPH,#00H
003B 120000   F      668             LCALL   ?C?CLDOPTR
003E FF              669             MOV     R7,A
003F 120000   F      670             LCALL   _I2CSendByte
0042 0500     F      671             INC     n?245
0044 80E2            672             SJMP    ?C0008
0046                 673     ?C0009:
                     674     ; 
                     675     ;         I2CSendStop();
                     676                             ; SOURCE LINE # 154
0046 120000   F      677             LCALL   I2CSendStop
                     678     ;     }
                     679                             ; SOURCE LINE # 155
                     680     ; }
                     681                             ; SOURCE LINE # 156
0049                 682     ?C0011:
0049 22              683             RET     
                     684     ; END OF _I2CWrite
                     685     
                     686     ; 
                     687     ; 
                     688     ; unsigned char I2CGetByte(unsigned char ack) 
                     689     
----                 690             RSEG  ?PR?_I2CGetByte?ACCESS
0000                 691     _I2CGetByte:
                     692             USING   0
                     693                             ; SOURCE LINE # 159
                     694     ;---- Variable 'ack?347' assigned to Register 'R7' ----
                     695     ; {
                     696                             ; SOURCE LINE # 160
                     697     ;     unsigned char   r, m;
                     698     ; 
                     699     ;     r = 0;
                     700                             ; SOURCE LINE # 163
                     701     ;---- Variable 'r?348' assigned to Register 'R6' ----
0000 E4              702             CLR     A
0001 FE              703             MOV     R6,A
                     704     ; 
                     705     ; #if (MCU_TYPE == MCU_STD8052)
                     706     ;     for (m = 0; m < 8; m++)         // Each bit at a time, MSB first
                     707                             ; SOURCE LINE # 166
                     708     ;---- Variable 'm?349' assigned to Register 'R5' ----
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE    12

0002 FD              709             MOV     R5,A
0003                 710     ?C0012:
                     711     ;     {
                     712                             ; SOURCE LINE # 167
                     713     ;         bIIC_SCL    = 1;
                     714                             ; SOURCE LINE # 168
0003 D292            715             SETB    bIIC_SCL
                     716     ;         BitDly();                   // Delay
                     717                             ; SOURCE LINE # 169
0005 120000   F      718             LCALL   BitDly
                     719     ; 
                     720     ;         r   = (r << 1) | bIIC_SDA;
                     721                             ; SOURCE LINE # 171
0008 EE              722             MOV     A,R6
0009 25E0            723             ADD     A,ACC
000B FC              724             MOV     R4,A
000C A293            725             MOV     C,bIIC_SDA
000E E4              726             CLR     A
000F 33              727             RLC     A
0010 4C              728             ORL     A,R4
0011 FE              729             MOV     R6,A
                     730     ; 
                     731     ;         bIIC_SCL    = 0;
                     732                             ; SOURCE LINE # 173
0012 C292            733             CLR     bIIC_SCL
                     734     ;         BitDly();                   // Delay
                     735                             ; SOURCE LINE # 174
0014 120000   F      736             LCALL   BitDly
                     737     ;     }  
                     738                             ; SOURCE LINE # 175
0017 0D              739             INC     R5
0018 BD08E8          740             CJNE    R5,#08H,?C0012
001B                 741     ?C0013:
                     742     ; 
                     743     ;     // Send ACK according to 'ack'
                     744     ;     bIIC_SDA    = (bit)(ack & 0x01);
                     745                             ; SOURCE LINE # 178
001B EF              746             MOV     A,R7
001C 13              747             RRC     A
                     748     ;     BitDly();                       // Delay
                     749                             ; SOURCE LINE # 179
                     750     ;     
                     751     ;     bIIC_SCL    = 1; 
                     752                             ; SOURCE LINE # 181
                     753     ;     BitDly();                       // Delay
                     754                             ; SOURCE LINE # 182
                     755     ;     
                     756     ;     bIIC_SCL    = 0; 
                     757                             ; SOURCE LINE # 184
001D 120000   F      758             LCALL   L?0159
                     759     ;     BitDly();                       // Delay
                     760                             ; SOURCE LINE # 185
0020 120000   F      761             LCALL   BitDly
                     762     ;     
                     763     ;     bIIC_SDA    = 1;
                     764                             ; SOURCE LINE # 187
0023 D293            765             SETB    bIIC_SDA
                     766     ; 
                     767     ; #else
                     768     ;    
                     769     ;     for (m = 0; m < 8; m++)         // Each bit at a time, MSB first
                     770     ;     {
                     771     ;         MCU_WriteI2cScl(_HIGH);
                     772     ;         BitDly();                   // Delay
                     773     ;         r   = (r << 1) | MCU_ReadI2cSda();
                     774     ;         MCU_WriteI2cScl(_LOW);
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE    13

                     775     ;         BitDly();                   // Delay
                     776     ;     }  
                     777     ;     // Send ACK according to 'ack'
                     778     ;     MCU_WriteI2cSda((bit)(ack & 0x01));
                     779     ;     BitDly();                       // Delay
                     780     ;     MCU_WriteI2cScl(_HIGH);
                     781     ;     BitDly();                       // Delay
                     782     ;     MCU_WriteI2cScl(_LOW);
                     783     ;     BitDly();                       // Delay
                     784     ;     MCU_WriteI2cSda(_HIGH);
                     785     ; 
                     786     ; #endif
                     787     ; 
                     788     ;     return (r);
                     789                             ; SOURCE LINE # 210
0025 AF06            790             MOV     R7,AR6
                     791     ; }
                     792                             ; SOURCE LINE # 211
0027                 793     ?C0015:
0027 22              794             RET     
                     795     ; END OF _I2CGetByte
                     796     
                     797     ; 
                     798     ; void I2CSendByte(unsigned char send)
                     799     
----                 800             RSEG  ?PR?_I2CSendByte?ACCESS
0000                 801     _I2CSendByte:
                     802             USING   0
                     803                             ; SOURCE LINE # 213
                     804     ;---- Variable 'send?450' assigned to Register 'R7' ----
                     805     ; {
                     806                             ; SOURCE LINE # 214
                     807     ;     unsigned char   m;
                     808     ; 
                     809     ; #if (MCU_TYPE == MCU_STD8052)
                     810     ; 
                     811     ;     for (m = 0; m < 8; m++)
                     812                             ; SOURCE LINE # 219
                     813     ;---- Variable 'm?451' assigned to Register 'R6' ----
0000 E4              814             CLR     A
0001 FE              815             MOV     R6,A
0002                 816     ?C0016:
                     817     ;     {
                     818                             ; SOURCE LINE # 220
                     819     ;         bIIC_SDA    = (bit)(send & 0x80);   // Send each bit, MSB first
                     820                             ; SOURCE LINE # 221
0002 EF              821             MOV     A,R7
0003 33              822             RLC     A
                     823     ;         BitDly();
                     824                             ; SOURCE LINE # 222
                     825     ; 
                     826     ;         bIIC_SCL    = 1;
                     827                             ; SOURCE LINE # 224
                     828     ;         BitDly();
                     829                             ; SOURCE LINE # 225
                     830     ; 
                     831     ;         bIIC_SCL    = 0;
                     832                             ; SOURCE LINE # 227
0004 120000   F      833             LCALL   L?0159
                     834     ; 
                     835     ;         send    = send << 1;
                     836                             ; SOURCE LINE # 229
0007 EF              837             MOV     A,R7
0008 25E0            838             ADD     A,ACC
000A FF              839             MOV     R7,A
                     840     ;     }
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE    14

                     841                             ; SOURCE LINE # 230
000B 0E              842             INC     R6
000C BE08F3          843             CJNE    R6,#08H,?C0016
000F                 844     ?C0017:
                     845     ; 
                     846     ;     bIIC_SDA    = 1;
                     847                             ; SOURCE LINE # 232
000F D293            848             SETB    bIIC_SDA
                     849     ;     bIIC_SCL    = 1;
                     850                             ; SOURCE LINE # 233
                     851     ;     BitDly();
                     852                             ; SOURCE LINE # 234
                     853     ; 
                     854     ;     bIIC_SCL    = 0;
                     855                             ; SOURCE LINE # 236
0011 120000   F      856             LCALL   L?0160
                     857     ;     BitDly();
                     858                             ; SOURCE LINE # 237
0014 020000   F      859             LJMP    BitDly
                     860     ; END OF _I2CSendByte
                     861     
                     862     ; 
                     863     ; #else
                     864     ; 
                     865     ;     for (m = 0; m < 8; m++)
                     866     ;     {
                     867     ;         MCU_WriteI2cSda((bit)(send & 0x80));   // Send each bit, MSB first
                     868     ;         BitDly();
                     869     ;         MCU_WriteI2cScl(_HIGH);
                     870     ;         BitDly();
                     871     ;         MCU_WriteI2cScl(_LOW);;
                     872     ;         send    = send << 1;
                     873     ;     }
                     874     ;     MCU_WriteI2cSda(_HIGH);
                     875     ;     MCU_WriteI2cScl(_HIGH);
                     876     ;     BitDly();
                     877     ;     MCU_WriteI2cScl(_LOW);;
                     878     ;     BitDly();
                     879     ; 
                     880     ; #endif
                     881     ; } 
                     882     ; 
                     883     ; void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
                     884     
----                 885             RSEG  ?PR?_I2CSendAddr?ACCESS
0000                 886     _I2CSendAddr:
                     887             USING   0
                     888                             ; SOURCE LINE # 259
                     889     ;---- Variable 'addr?552' assigned to Register 'R6' ----
0000 AE07            890             MOV     R6,AR7
                     891     ;---- Variable 'rd?554' assigned to Register 'R3' ----
                     892     ;---- Variable 'index?553' assigned to Register 'R5' ----
                     893     ; {         
                     894                             ; SOURCE LINE # 260
                     895     ; #if (MCU_TYPE == MCU_STD8052)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -