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

📄 upsd_i2c.lst

📁 Demo for I2C Master and Slave
💻 LST
📖 第 1 页 / 共 5 页
字号:
 620   3                      }
 621   2              }
 622   1      }
 623          
C51 COMPILER V7.20   UPSD_I2C                                                              07/21/2004 16:31:42 PAGE 12  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION L?0071 (BEGIN)
0000 7DE8              MOV     R5,#0E8H
0002 7C03              MOV     R4,#03H
             ; FUNCTION _upsd_i2c_Timeout (BEGIN)
                                           ; SOURCE LINE # 117
;---- Variable 'Max_time' assigned to Register 'R4/R5' ----
;---- Variable 'operation' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 118
                                           ; SOURCE LINE # 119
0004 E4                CLR     A
0005 F500        R     MOV     toggle,A
0007 F500        R     MOV     toggle+01H,A
0009         ?C0001:
                                           ; SOURCE LINE # 120
0009 E500        R     MOV     A,i2c_state
000B B50712            CJNE    A,AR7,?C0002
                                           ; SOURCE LINE # 121
                                           ; SOURCE LINE # 138
000E 0500        R     INC     toggle+01H
0010 E500        R     MOV     A,toggle+01H
0012 7002              JNZ     ?C0066
0014 0500        R     INC     toggle
0016         ?C0066:
                                           ; SOURCE LINE # 139
0016 C3                CLR     C
0017 9D                SUBB    A,R5
0018 E500        R     MOV     A,toggle
001A 9C                SUBB    A,R4
001B 40EC              JC      ?C0001
001D 7F01              MOV     R7,#01H
001F 22                RET     
                                           ; SOURCE LINE # 140
0020         ?C0002:
                                           ; SOURCE LINE # 141
0020 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 142
0022         ?C0004:
0022 22                RET     
             ; FUNCTION _upsd_i2c_Timeout (END)

             ; FUNCTION _upsd_i2c_Busycheck (BEGIN)
                                           ; SOURCE LINE # 153
;---- Variable 'Max_time' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 154
                                           ; SOURCE LINE # 156
;---- Variable 'count' assigned to Register 'R4/R5' ----
0000 E4                CLR     A
0001 FD                MOV     R5,A
0002 FC                MOV     R4,A
0003         ?C0005:
                                           ; SOURCE LINE # 157
0003 E5DD              MOV     A,S2STA
0005 30E30F            JNB     ACC.3,?C0006
                                           ; SOURCE LINE # 158
                                           ; SOURCE LINE # 159
0008 0D                INC     R5
0009 BD0001            CJNE    R5,#00H,?C0067
000C 0C                INC     R4
000D         ?C0067:
C51 COMPILER V7.20   UPSD_I2C                                                              07/21/2004 16:31:42 PAGE 13  

                                           ; SOURCE LINE # 160
000D C3                CLR     C
000E ED                MOV     A,R5
000F 9F                SUBB    A,R7
0010 EC                MOV     A,R4
0011 9E                SUBB    A,R6
0012 40EF              JC      ?C0005
0014 7F01              MOV     R7,#01H
0016 22                RET     
                                           ; SOURCE LINE # 161
0017         ?C0006:
                                           ; SOURCE LINE # 162
0017 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 163
0019         ?C0008:
0019 22                RET     
             ; FUNCTION _upsd_i2c_Busycheck (END)

             ; FUNCTION _upsd_i2c_init (BEGIN)
                                           ; SOURCE LINE # 184
0000 8D00        R     MOV     Slave_Addr,R5
;---- Variable 'Bus_Freq' assigned to Register 'R2/R3' ----
0002 AB07              MOV     R3,AR7
0004 AA06              MOV     R2,AR6
                                           ; SOURCE LINE # 186
                                           ; SOURCE LINE # 192
0006 D3                SETB    C
0007 EB                MOV     A,R3
0008 9441              SUBB    A,#041H
000A EA                MOV     A,R2
000B 9403              SUBB    A,#03H
000D 5009              JNC     ?C0010
000F C3                CLR     C
0010 EB                MOV     A,R3
0011 9406              SUBB    A,#06H
0013 EA                MOV     A,R2
0014 9400              SUBB    A,#00H
0016 5003              JNC     ?C0009
0018         ?C0010:
0018 7F01              MOV     R7,#01H
001A 22                RET     
001B         ?C0009:
                                           ; SOURCE LINE # 194
;---- Variable 'MCU_Freq_mem' assigned to Register 'R6/R7' ----
001B 7FA0              MOV     R7,#0A0H
001D 7E8C              MOV     R6,#08CH
                                           ; SOURCE LINE # 195
001F EE                MOV     A,R6
0020 C3                CLR     C
0021 13                RRC     A
0022 FE                MOV     R6,A
0023 EF                MOV     A,R7
0024 13                RRC     A
0025 FF                MOV     R7,A
                                           ; SOURCE LINE # 196
0026 AC02              MOV     R4,AR2
0028 AD03              MOV     R5,AR3
002A 120000      E     LCALL   ?C?UIDIV
;---- Variable 'divider' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 198
;---- Variable 'prescaler' assigned to Register 'R5' ----
002D E4                CLR     A
C51 COMPILER V7.20   UPSD_I2C                                                              07/21/2004 16:31:42 PAGE 14  

002E FD                MOV     R5,A
002F         ?C0012:
                                           ; SOURCE LINE # 199
002F ED                MOV     A,R5
0030 25E0              ADD     A,ACC
0032 2400        R     ADD     A,#LOW table
0034 F582              MOV     DPL,A
0036 E4                CLR     A
0037 3400        R     ADDC    A,#HIGH table
0039 F583              MOV     DPH,A
003B C3                CLR     C
003C 7401              MOV     A,#01H
003E 93                MOVC    A,@A+DPTR
003F 9F                SUBB    A,R7
0040 E4                CLR     A
0041 93                MOVC    A,@A+DPTR
0042 9E                SUBB    A,R6
0043 5003              JNC     ?C0013
0045 0D                INC     R5
0046 80E7              SJMP    ?C0012
0048         ?C0013:
                                           ; SOURCE LINE # 200
0048 ED                MOV     A,R5
0049 D3                SETB    C
004A 9407              SUBB    A,#07H
004C 4003              JC      ?C0014
004E 7F01              MOV     R7,#01H
0050 22                RET     
0051         ?C0014:
                                           ; SOURCE LINE # 202
0051 ED                MOV     A,R5
0052 C3                CLR     C
0053 9404              SUBB    A,#04H
0055 4004              JC      ?C0015
0057 ED                MOV     A,R5
0058 247C              ADD     A,#07CH
005A FD                MOV     R5,A
005B         ?C0015:
                                           ; SOURCE LINE # 203
005B ED                MOV     A,R5
005C 42DC              ORL     S2CON,A
                                           ; SOURCE LINE # 205
005E 4393C0            ORL     P3SFS,#0C0H
                                           ; SOURCE LINE # 208
0061 75D281            MOV     S2SETUP,#081H
                                           ; SOURCE LINE # 224
0064 43B702            ORL     IPA,#02H
                                           ; SOURCE LINE # 225
0067 43A702            ORL     IEA,#02H
                                           ; SOURCE LINE # 227
006A 8500DF      R     MOV     S2ADR,Slave_Addr
                                           ; SOURCE LINE # 229
006D C200        R     CLR     i2c_processing
                                           ; SOURCE LINE # 232
006F 43DC40            ORL     S2CON,#040H
                                           ; SOURCE LINE # 234
0072 53DCFB            ANL     S2CON,#0FBH
                                           ; SOURCE LINE # 235
0075 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 236
0077         ?C0011:
0077 22                RET     
C51 COMPILER V7.20   UPSD_I2C                                                              07/21/2004 16:31:42 PAGE 15  

             ; FUNCTION _upsd_i2c_init (END)

             ; FUNCTION _upsd_i2c_Master_Xmit (BEGIN)
                                           ; SOURCE LINE # 261
0000 8F00        R     MOV     Slave_Addr,R7
;---- Variable 'Data_Ptr' assigned to Register 'R1/R2/R3' ----
                                           ; SOURCE LINE # 263
                                           ; SOURCE LINE # 264
0002 C2AF              CLR     EA
                                           ; SOURCE LINE # 265
0004 D200        R     SETB    i2c_master
                                           ; SOURCE LINE # 266
0006 8B00        R     MOV     i2c_xmit_buf,R3
0008 8A00        R     MOV     i2c_xmit_buf+01H,R2
000A 8900        R     MOV     i2c_xmit_buf+02H,R1
                                           ; SOURCE LINE # 267
000C 7FE8              MOV     R7,#0E8H
000E 7E03              MOV     R6,#03H

⌨️ 快捷键说明

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