📄 i2c_intf.lst
字号:
0000 D293 SETB P1_3
; SOURCE LINE # 64
;---- Variable 'i' assigned to Register 'R6' ----
0002 E4 CLR A
0003 FE MOV R6,A
0004 ?C0045:
; SOURCE LINE # 65
0004 D292 SETB P1_2
0006 00 NOP
0007 00 NOP
; SOURCE LINE # 67
0008 EF MOV A,R7
; SOURCE LINE # 68
0009 25E0 ADD A,ACC
; SOURCE LINE # 69
C51 COMPILER V7.50 I2C_INTF 10/03/2008 17:53:12 PAGE 6
000B A293 MOV C,P1_3
000D 92E0 MOV ACC_0,C
; SOURCE LINE # 70
000F FF MOV R7,A
; SOURCE LINE # 71
0010 C292 CLR P1_2
0012 00 NOP
0013 00 NOP
; SOURCE LINE # 72
0014 0E INC R6
0015 EE MOV A,R6
0016 B408EB CJNE A,#08H,?C0045
0019 ?C0046:
; SOURCE LINE # 73
; SOURCE LINE # 74
0019 ?C0054:
0019 22 RET
; FUNCTION i2c_read_byte (END)
; FUNCTION L?0092 (BEGIN)
0000 120000 R LCALL i2c_send_start_bit
0003 900000 R MOV DPTR,#i2c_dev_addr
0006 E0 MOVX A,@DPTR
0007 L?0093:
0007 FF MOV R7,A
0008 120000 R LCALL _i2c_send_byte
; FUNCTION i2c_read_ack (BEGIN)
; SOURCE LINE # 76
; SOURCE LINE # 77
; SOURCE LINE # 80
000B D293 SETB P1_3
000D 00 NOP
000E 00 NOP
; SOURCE LINE # 81
000F D292 SETB P1_2
0011 00 NOP
0012 00 NOP
; SOURCE LINE # 82
0013 A293 MOV C,P1_3
0015 E4 CLR A
0016 33 RLC A
0017 FF MOV R7,A
;---- Variable 'result' assigned to Register 'R7' ----
; SOURCE LINE # 83
0018 C292 CLR P1_2
001A 00 NOP
001B 00 NOP
; SOURCE LINE # 84
001C D293 SETB P1_3
001E 00 NOP
001F 00 NOP
; SOURCE LINE # 85
; SOURCE LINE # 86
0020 ?C0067:
0020 22 RET
; FUNCTION i2c_read_ack (END)
; FUNCTION _i2c_send_ack (BEGIN)
; SOURCE LINE # 88
;---- Variable 'ack' assigned to Register 'R7' ----
; SOURCE LINE # 89
; SOURCE LINE # 90
C51 COMPILER V7.50 I2C_INTF 10/03/2008 17:53:12 PAGE 7
0000 EF MOV A,R7
0001 24FF ADD A,#0FFH
0003 9293 MOV P1_3,C
0005 00 NOP
0006 00 NOP
; SOURCE LINE # 91
0007 D292 SETB P1_2
0009 00 NOP
000A 00 NOP
; SOURCE LINE # 92
000B C292 CLR P1_2
000D 00 NOP
000E 00 NOP
; SOURCE LINE # 93
000F D293 SETB P1_3
0011 00 NOP
0012 00 NOP
; SOURCE LINE # 94
0013 22 RET
; FUNCTION _i2c_send_ack (END)
; FUNCTION _i2c_write_reg (BEGIN)
; SOURCE LINE # 97
;---- Variable 'd' assigned to Register 'R5' ----
;---- Variable 'offset' assigned to Register 'R4' ----
0000 AC07 MOV R4,AR7
; SOURCE LINE # 98
; SOURCE LINE # 99
; SOURCE LINE # 100
; SOURCE LINE # 101
0002 120000 R LCALL L?0092
0005 EF MOV A,R7
0006 6006 JZ ?C0081
; SOURCE LINE # 102
0008 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 103
000B 7F01 MOV R7,#01H
000D 22 RET
; SOURCE LINE # 104
000E ?C0081:
; SOURCE LINE # 105
000E AF04 MOV R7,AR4
0010 120000 R LCALL _i2c_send_byte
; SOURCE LINE # 106
0013 120000 R LCALL i2c_read_ack
0016 EF MOV A,R7
0017 6006 JZ ?C0083
; SOURCE LINE # 107
0019 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 108
001C 7F02 MOV R7,#02H
001E 22 RET
; SOURCE LINE # 109
001F ?C0083:
; SOURCE LINE # 110
001F AF05 MOV R7,AR5
0021 120000 R LCALL _i2c_send_byte
; SOURCE LINE # 111
0024 120000 R LCALL i2c_read_ack
; SOURCE LINE # 112
0027 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 113
C51 COMPILER V7.50 I2C_INTF 10/03/2008 17:53:12 PAGE 8
002A 7F00 MOV R7,#00H
; SOURCE LINE # 114
002C ?C0082:
002C 22 RET
; FUNCTION _i2c_write_reg (END)
; FUNCTION _i2c_write_p0_reg (BEGIN)
; SOURCE LINE # 116
;---- Variable 'd' assigned to Register 'R5' ----
;---- Variable 'offset' assigned to Register 'R7' ----
; SOURCE LINE # 117
; SOURCE LINE # 118
0000 900000 R MOV DPTR,#i2c_dev_addr
0003 7450 MOV A,#050H
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 119
0006 120000 R LCALL _i2c_write_reg
; SOURCE LINE # 120
0009 ?C0084:
0009 22 RET
; FUNCTION _i2c_write_p0_reg (END)
; FUNCTION _i2c_write_p1_reg (BEGIN)
; SOURCE LINE # 122
;---- Variable 'd' assigned to Register 'R5' ----
;---- Variable 'offset' assigned to Register 'R7' ----
; SOURCE LINE # 123
; SOURCE LINE # 124
0000 900000 R MOV DPTR,#i2c_dev_addr
0003 748C MOV A,#08CH
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 125
0006 120000 R LCALL _i2c_write_reg
; SOURCE LINE # 126
0009 ?C0085:
0009 22 RET
; FUNCTION _i2c_write_p1_reg (END)
; FUNCTION _i2c_read_reg (BEGIN)
; SOURCE LINE # 128
;---- Variable 'd' assigned to Register 'R1/R2/R3' ----
;---- Variable 'offset' assigned to Register 'R5' ----
0000 AD07 MOV R5,AR7
; SOURCE LINE # 129
; SOURCE LINE # 130
; SOURCE LINE # 131
; SOURCE LINE # 132
0002 120000 R LCALL L?0092
0005 EF MOV A,R7
0006 6006 JZ ?C0086
; SOURCE LINE # 133
0008 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 134
000B 7F01 MOV R7,#01H
000D 22 RET
; SOURCE LINE # 135
000E ?C0086:
; SOURCE LINE # 136
000E AF05 MOV R7,AR5
0010 120000 R LCALL _i2c_send_byte
; SOURCE LINE # 137
0013 120000 R LCALL i2c_read_ack
C51 COMPILER V7.50 I2C_INTF 10/03/2008 17:53:12 PAGE 9
0016 EF MOV A,R7
0017 6006 JZ ?C0088
; SOURCE LINE # 138
0019 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 139
001C 7F02 MOV R7,#02H
001E 22 RET
; SOURCE LINE # 140
001F ?C0088:
; SOURCE LINE # 141
001F 120000 R LCALL i2c_send_restart_bit
; SOURCE LINE # 142
0022 900000 R MOV DPTR,#i2c_dev_addr
0025 E0 MOVX A,@DPTR
0026 4401 ORL A,#01H
; SOURCE LINE # 143
0028 120000 R LCALL L?0093
002B EF MOV A,R7
002C 6003 JZ ?C0089
; SOURCE LINE # 144
002E 7F01 MOV R7,#01H
0030 22 RET
0031 ?C0089:
; SOURCE LINE # 145
0031 120000 R LCALL i2c_read_byte
0034 EF MOV A,R7
0035 120000 E LCALL ?C?CSTPTR
; SOURCE LINE # 146
0038 7F01 MOV R7,#01H
003A 120000 R LCALL _i2c_send_ack
; SOURCE LINE # 147
003D 120000 R LCALL i2c_send_stop_bit
; SOURCE LINE # 148
0040 1F DEC R7
; SOURCE LINE # 149
0041 ?C0087:
0041 22 RET
; FUNCTION _i2c_read_reg (END)
; FUNCTION _i2c_read_p0_reg (BEGIN)
; SOURCE LINE # 151
;---- Variable 'd' assigned to Register 'R1/R2/R3' ----
;---- Variable 'offset' assigned to Register 'R7' ----
; SOURCE LINE # 152
; SOURCE LINE # 153
0000 900000 R MOV DPTR,#i2c_dev_addr
0003 7450 MOV A,#050H
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 154
0006 120000 R LCALL _i2c_read_reg
; SOURCE LINE # 155
0009 ?C0090:
0009 22 RET
; FUNCTION _i2c_read_p0_reg (END)
; FUNCTION _i2c_read_p1_reg (BEGIN)
; SOURCE LINE # 157
;---- Variable 'd' assigned to Register 'R1/R2/R3' ----
;---- Variable 'offset' assigned to Register 'R7' ----
; SOURCE LINE # 158
; SOURCE LINE # 159
0000 900000 R MOV DPTR,#i2c_dev_addr
C51 COMPILER V7.50 I2C_INTF 10/03/2008 17:53:12 PAGE 10
0003 748C MOV A,#08CH
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 160
0006 120000 R LCALL _i2c_read_reg
; SOURCE LINE # 161
0009 ?C0091:
0009 22 RET
; FUNCTION _i2c_read_p1_reg (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 298 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 1 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -