📄 upsd_i2c.lst
字号:
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 + -