📄 i2c.lst
字号:
188 { I2CON = RELEASE_BUS_ACK; // 接收一字节数据并发送应答位
189 while( SI==0 ); // 等待接收数据
190 if( I2STAT!=0X50 )
191 { I2CON = GENERATE_STOP;
192 return(0);
193 }
194 *s = I2DAT; // 读取数据
195 s++;
196 }
197 I2CON = RELEASE_BUS_NOACK; // 接收最后一字节数据并发送非应答位
198 while( SI==0 );
199 *s = I2DAT;
200 I2CON = GENERATE_STOP; // 结束总线
201 return(1);
202 }
203 */
C51 COMPILER V3.96, SN-83203013 I2C 09/12/05 17:49:31 PAGE 5
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION GetBus (BEGIN)
; SOURCE LINE # 35
; SOURCE LINE # 36
; SOURCE LINE # 37
0000 75DD0F MOV I2SCLH,#0FH
; SOURCE LINE # 38
0003 75DC0F MOV I2SCLL,#0FH
; SOURCE LINE # 40
0006 75D864 MOV I2CON,#064H
0009 ?C0001:
; SOURCE LINE # 41
0009 30DBFD JNB SI,?C0001
; SOURCE LINE # 42
000C ?C0003:
000C 22 RET
; FUNCTION GetBus (END)
; FUNCTION _SendByte (BEGIN)
;---- Variable 'c' assigned to Register 'R7' ----
; SOURCE LINE # 50
; SOURCE LINE # 51
; SOURCE LINE # 52
0000 8FDA MOV I2DAT,R7
; SOURCE LINE # 53
0002 75D844 MOV I2CON,#044H
0005 ?C0004:
; SOURCE LINE # 54
0005 30DBFD JNB SI,?C0004
; SOURCE LINE # 55
0008 ?C0006:
0008 22 RET
; FUNCTION _SendByte (END)
; FUNCTION _ISendByte (BEGIN)
;---- Variable 'sla' assigned to Register 'R6' ----
0000 AE07 MOV R6,AR7
;---- Variable 'c' assigned to Register 'R5' ----
; SOURCE LINE # 66
; SOURCE LINE # 67
; SOURCE LINE # 68
0002 120000 R LCALL GetBus
; SOURCE LINE # 69
0005 120000 R LCALL _SendByte
; SOURCE LINE # 70
0008 E5D9 MOV A,I2STAT
000A 6418 XRL A,#018H
000C 6005 JZ ?C0007
; SOURCE LINE # 71
000E 75D854 MOV I2CON,#054H
; SOURCE LINE # 72
0011 C3 CLR C
0012 22 RET
; SOURCE LINE # 73
0013 ?C0007:
; SOURCE LINE # 75
0013 AF05 MOV R7,AR5
0015 120000 R LCALL _SendByte
; SOURCE LINE # 76
0018 E5D9 MOV A,I2STAT
C51 COMPILER V3.96, SN-83203013 I2C 09/12/05 17:49:31 PAGE 6
001A 6428 XRL A,#028H
001C 6005 JZ ?C0009
; SOURCE LINE # 77
001E 75D854 MOV I2CON,#054H
; SOURCE LINE # 78
0021 C3 CLR C
0022 22 RET
; SOURCE LINE # 79
0023 ?C0009:
; SOURCE LINE # 80
0023 75D854 MOV I2CON,#054H
; SOURCE LINE # 81
0026 D3 SETB C
; SOURCE LINE # 82
0027 ?C0008:
0027 22 RET
; FUNCTION _ISendByte (END)
; FUNCTION _ISendStr (BEGIN)
0000 8B00 R MOV s,R3
0002 8A00 R MOV s+01H,R2
0004 8900 R MOV s+02H,R1
;---- Variable 'sla' assigned to Register 'R6' ----
0006 AE07 MOV R6,AR7
;---- Variable 'suba' assigned to Register 'R5' ----
; SOURCE LINE # 95
; SOURCE LINE # 96
; SOURCE LINE # 99
0008 120000 R LCALL GetBus
; SOURCE LINE # 100
000B 120000 R LCALL _SendByte
; SOURCE LINE # 101
000E E5D9 MOV A,I2STAT
0010 6418 XRL A,#018H
0012 6005 JZ ?C0010
; SOURCE LINE # 102
0014 75D854 MOV I2CON,#054H
; SOURCE LINE # 103
0017 C3 CLR C
0018 22 RET
; SOURCE LINE # 104
0019 ?C0010:
; SOURCE LINE # 106
0019 AF05 MOV R7,AR5
001B 120000 R LCALL _SendByte
; SOURCE LINE # 107
001E E5D9 MOV A,I2STAT
0020 6428 XRL A,#028H
0022 6005 JZ ?C0012
; SOURCE LINE # 108
0024 75D854 MOV I2CON,#054H
; SOURCE LINE # 109
0027 C3 CLR C
0028 22 RET
; SOURCE LINE # 110
0029 ?C0012:
; SOURCE LINE # 112
;---- Variable 'i' assigned to Register 'R6' ----
0029 E4 CLR A
002A FE MOV R6,A
002B ?C0013:
002B EE MOV A,R6
C51 COMPILER V3.96, SN-83203013 I2C 09/12/05 17:49:31 PAGE 7
002C C3 CLR C
002D 9500 R SUBB A,no
002F 5026 JNC ?C0014
; SOURCE LINE # 113
0031 AB00 R MOV R3,s
0033 AA00 R MOV R2,s+01H
0035 A900 R MOV R1,s+02H
0037 120000 E LCALL ?C_CLDPTR
003A FF MOV R7,A
003B 120000 R LCALL _SendByte
; SOURCE LINE # 114
003E E5D9 MOV A,I2STAT
0040 6428 XRL A,#028H
0042 6005 JZ ?C0016
; SOURCE LINE # 115
0044 75D854 MOV I2CON,#054H
; SOURCE LINE # 116
0047 C3 CLR C
0048 22 RET
; SOURCE LINE # 117
0049 ?C0016:
; SOURCE LINE # 118
0049 7401 MOV A,#01H
004B 2500 R ADD A,s+02H
004D F500 R MOV s+02H,A
004F E4 CLR A
0050 3500 R ADDC A,s+01H
0052 F500 R MOV s+01H,A
; SOURCE LINE # 119
0054 0E INC R6
0055 80D4 SJMP ?C0013
0057 ?C0014:
; SOURCE LINE # 121
0057 75D854 MOV I2CON,#054H
; SOURCE LINE # 122
005A D3 SETB C
; SOURCE LINE # 123
005B ?C0011:
005B 22 RET
; FUNCTION _ISendStr (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 154 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -