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

📄 i2c.lst

📁 系统采用51单片机
💻 LST
📖 第 1 页 / 共 4 页
字号:

                                           ; SOURCE LINE # 183
;---- Variable 'SlaveAddr' assigned to Register 'R6' ----
0000 AE07              MOV     R6,AR7
;---- Variable 'SubAddr' assigned to Register 'R5' ----
;---- Variable 'Size' assigned to Register 'R4' ----
0002 AC03              MOV     R4,AR3
                                           ; SOURCE LINE # 184
                                           ; SOURCE LINE # 186
0004 EC                MOV     A,R4
0005 7002              JNZ     ?C0055
0007 C3                CLR     C
0008 22                RET     
0009         ?C0055:
                                           ; SOURCE LINE # 188
                                           ; SOURCE LINE # 190
                                           ; SOURCE LINE # 192
                                           ; SOURCE LINE # 193
0009 120000      R     LCALL   L?0084
000C 5002              JNC     ?C0057
                                           ; SOURCE LINE # 194
                                           ; SOURCE LINE # 195
                                           ; SOURCE LINE # 196
000E 8026              SJMP    ?C0080
                                           ; SOURCE LINE # 197
0010         ?C0057:
                                           ; SOURCE LINE # 199
0010 AF05              MOV     R7,AR5
0012 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 200
0015 120000      R     LCALL   I2C_GetAck
0018 5002              JNC     ?C0061
                                           ; SOURCE LINE # 201
                                           ; SOURCE LINE # 202
001A         ?C0079:
                                           ; SOURCE LINE # 203
001A 801A              SJMP    ?C0080
                                           ; SOURCE LINE # 204
001C         ?C0061:
                                           ; SOURCE LINE # 207
                                           ; SOURCE LINE # 208
001C AB00        R     MOV     R3,dat
001E 0500        R     INC     dat+02H
0020 E500        R     MOV     A,dat+02H
0022 AA00        R     MOV     R2,dat+01H
0024 7002              JNZ     ?C0077
0026 0500        R     INC     dat+01H
0028         ?C0077:
0028 14                DEC     A
0029 F9                MOV     R1,A
002A 120000      E     LCALL   ?C?CLDPTR
002D FF                MOV     R7,A
002E 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 209
0031 120000      R     LCALL   I2C_GetAck
0034 5003              JNC     ?C0059
                                           ; SOURCE LINE # 210
                                           ; SOURCE LINE # 211
0036         ?C0080:
0036 020000      R     LJMP    I2C_Stop
                                           ; SOURCE LINE # 212
                                           ; SOURCE LINE # 213
                                           ; SOURCE LINE # 214
C51 COMPILER V8.16   I2C                                                                   10/04/2008 14:53:01 PAGE 17  

0039         ?C0059:
0039 DCE1              DJNZ    R4,?C0061
                                           ; SOURCE LINE # 216
003B 120000      R     LCALL   I2C_Stop
                                           ; SOURCE LINE # 217
003E C3                CLR     C
                                           ; SOURCE LINE # 218
003F         ?C0056:
003F 22                RET     
             ; FUNCTION _I2C_Puts (END)

             ; FUNCTION _I2C_Puts_s (BEGIN)
                                           ; SOURCE LINE # 220
;---- Variable 'SlaveAddr' assigned to Register 'R6' ----
0000 AE07              MOV     R6,AR7
;---- Variable 'SubAddr' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 221
                                           ; SOURCE LINE # 225
                                           ; SOURCE LINE # 227
                                           ; SOURCE LINE # 229
                                           ; SOURCE LINE # 230
0002 120000      R     LCALL   L?0084
0005 5002              JNC     ?C0063
                                           ; SOURCE LINE # 231
                                           ; SOURCE LINE # 232
                                           ; SOURCE LINE # 233
0007 800A              SJMP    ?C0081
                                           ; SOURCE LINE # 234
0009         ?C0063:
                                           ; SOURCE LINE # 236
0009 AF05              MOV     R7,AR5
000B 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 237
000E 120000      R     LCALL   I2C_GetAck
0011 5003              JNC     ?C0064
                                           ; SOURCE LINE # 238
                                           ; SOURCE LINE # 239
0013         ?C0081:
0013 120000      R     LCALL   I2C_Stop
                                           ; SOURCE LINE # 240
                                           ; SOURCE LINE # 241
                                           ; SOURCE LINE # 257
0016         ?C0064:
0016 22                RET     
             ; FUNCTION _I2C_Puts_s (END)

             ; FUNCTION _I2C_Put (BEGIN)
                                           ; SOURCE LINE # 269
0000 8B00        R     MOV     dat,R3
;---- Variable 'SubAddr' assigned to Register 'R5' ----
;---- Variable 'SlaveAddr' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 270
                                           ; SOURCE LINE # 271
0002 750000      R     MOV     ?_I2C_Puts?BYTE+03H,#00H
0005 750000      R     MOV     ?_I2C_Puts?BYTE+04H,#HIGH dat
0008 750000      R     MOV     ?_I2C_Puts?BYTE+05H,#LOW dat
000B 7B01              MOV     R3,#01H
000D 120000      R     LCALL   _I2C_Puts
                                           ; SOURCE LINE # 272
0010         ?C0066:
0010 22                RET     
             ; FUNCTION _I2C_Put (END)
C51 COMPILER V8.16   I2C                                                                   10/04/2008 14:53:01 PAGE 18  


             ; FUNCTION _I2C_Gets (BEGIN)
                                           ; SOURCE LINE # 287
;---- Variable 'SlaveAddr' assigned to Register 'R4' ----
0000 AC07              MOV     R4,AR7
;---- Variable 'SubAddr' assigned to Register 'R2' ----
0002 AA05              MOV     R2,AR5
;---- Variable 'Size' assigned to Register 'R5' ----
0004 AD03              MOV     R5,AR3
                                           ; SOURCE LINE # 288
                                           ; SOURCE LINE # 290
0006 ED                MOV     A,R5
0007 7002              JNZ     ?C0067
0009 C3                CLR     C
000A 22                RET     
000B         ?C0067:
                                           ; SOURCE LINE # 292
000B 5304FE            ANL     AR4,#0FEH
                                           ; SOURCE LINE # 294
000E 120000      R     LCALL   I2C_Start
                                           ; SOURCE LINE # 296
0011 AF04              MOV     R7,AR4
0013 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 297
0016 120000      R     LCALL   I2C_GetAck
0019 5002              JNC     ?C0069
                                           ; SOURCE LINE # 298
                                           ; SOURCE LINE # 299
                                           ; SOURCE LINE # 300
001B 801C              SJMP    ?C0083
                                           ; SOURCE LINE # 301
001D         ?C0069:
                                           ; SOURCE LINE # 303
001D AF02              MOV     R7,AR2
001F 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 304
0022 120000      R     LCALL   I2C_GetAck
0025 5002              JNC     ?C0070
                                           ; SOURCE LINE # 305
                                           ; SOURCE LINE # 306
0027         ?C0082:
                                           ; SOURCE LINE # 307
0027 8010              SJMP    ?C0083
                                           ; SOURCE LINE # 308
0029         ?C0070:
                                           ; SOURCE LINE # 310
0029 120000      R     LCALL   I2C_Start
                                           ; SOURCE LINE # 312
002C 430401            ORL     AR4,#01H
                                           ; SOURCE LINE # 313
002F AF04              MOV     R7,AR4
0031 120000      R     LCALL   _I2C_Write
                                           ; SOURCE LINE # 314
0034 120000      R     LCALL   I2C_GetAck
0037 5003              JNC     ?C0072
                                           ; SOURCE LINE # 315
                                           ; SOURCE LINE # 316
0039         ?C0083:
0039 020000      R     LJMP    I2C_Stop
                                           ; SOURCE LINE # 317
                                           ; SOURCE LINE # 318
                                           ; SOURCE LINE # 320
C51 COMPILER V8.16   I2C                                                                   10/04/2008 14:53:01 PAGE 19  

003C         ?C0072:
                                           ; SOURCE LINE # 321
                                           ; SOURCE LINE # 322
003C 120000      R     LCALL   I2C_Read
003F AB00        R     MOV     R3,dat
0041 0500        R     INC     dat+02H
0043 E500        R     MOV     A,dat+02H
0045 AA00        R     MOV     R2,dat+01H
0047 7002              JNZ     ?C0078
0049 0500        R     INC     dat+01H
004B         ?C0078:
004B 14                DEC     A
004C F9                MOV     R1,A
004D EF                MOV     A,R7
004E 120000      E     LCALL   ?C?CSTPTR
                                           ; SOURCE LINE # 323
0051 DD07              DJNZ    R5,?C0074
                                           ; SOURCE LINE # 324
                                           ; SOURCE LINE # 325
0053 D200        R     SETB    ?I2C_PutAck?BIT
0055 120000      R     LCALL   I2C_PutAck
                                           ; SOURCE LINE # 326
0058 8007              SJMP    ?C0073
                                           ; SOURCE LINE # 327
005A         ?C0074:
                                           ; SOURCE LINE # 328
005A C200        R     CLR     ?I2C_PutAck?BIT
005C 120000      R     LCALL   I2C_PutAck
                                           ; SOURCE LINE # 329
005F 80DB              SJMP    ?C0072
0061         ?C0073:
                                           ; SOURCE LINE # 331
0061 120000      R     LCALL   I2C_Stop
                                           ; SOURCE LINE # 332
0064 C3                CLR     C
                                           ; SOURCE LINE # 333
0065         ?C0068:
0065 22                RET     
             ; FUNCTION _I2C_Gets (END)

             ; FUNCTION _I2C_Get (BEGIN)
                                           ; SOURCE LINE # 347
0000 8B00        R     MOV     dat,R3
0002 8A00        R     MOV     dat+01H,R2
0004 8900        R     MOV     dat+02H,R1
;---- Variable 'SubAddr' assigned to Register 'R5' ----
;---- Variable 'SlaveAddr' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 348
                                           ; SOURCE LINE # 349
0006 8B00        R     MOV     ?_I2C_Gets?BYTE+03H,R3
0008 8A00        R     MOV     ?_I2C_Gets?BYTE+04H,R2
000A 8900        R     MOV     ?_I2C_Gets?BYTE+05H,R1
000C 7B01              MOV     R3,#01H
000E 120000      R     LCALL   _I2C_Gets
                                           ; SOURCE LINE # 350
0011         ?C0075:
0011 22                RET     
             ; FUNCTION _I2C_Get (END)

C51 COMPILER V8.16   I2C                                                                   10/04/2008 14:53:01 PAGE 20  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


I2C_SCL. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
I2C_Read . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dat. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  t. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_I2C_Puts_s. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  SlaveAddr. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  SubAddr. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_I2C_Write . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dat. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  t. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
I2C_Start. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_I2C_Gets. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  SlaveAddr. . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  SubAddr. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  Size . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0005H  1
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0003H  3
I2C_Init . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_I2C_Get . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  SlaveAddr. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  SubAddr. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
I2C_Stop . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  t. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
_I2C_Puts. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  SlaveAddr. . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0006H  1
  SubAddr. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0005H  1
  Size . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0003H  3
I2C_GetAck . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     000BH  -----
  ack. . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
_I2C_Put . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  SlaveAddr. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  SubAddr. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   CHAR     0000H  1
I2C_Delay_t. . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
I2C_PutAck . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ack. . . . . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
I2C_SDA. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    443    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      16
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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