📄 iic.lst
字号:
IIC_Stop();
}
while(bNoAck && count < 10);
}
#endif
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 23
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION L?0068 (BEGIN)
0000 E0 MOVX A,@DPTR
0001 04 INC A
0002 F0 MOVX @DPTR,A
0003 L?0069:
0003 E4 CLR A
0004 900000 E MOV DPTR,#byMTV_IIC_CTR
0007 F0 MOVX @DPTR,A
0008 7402 MOV A,#02H
000A F0 MOVX @DPTR,A
000B 7F14 MOV R7,#014H
; FUNCTION _Short_Delay (BEGIN)
;---- Variable 'Time' assigned to Register 'R7' ----
; SOURCE LINE # 8
; SOURCE LINE # 9
000D ?C0001:
; SOURCE LINE # 10
000D AE07 MOV R6,AR7
000F 1F DEC R7
0010 EE MOV A,R6
0011 70FA JNZ ?C0001
; SOURCE LINE # 11
0013 ?C0003:
0013 22 RET
; FUNCTION _Short_Delay (END)
; FUNCTION _DoWait (BEGIN)
;---- Variable 'Time' assigned to Register 'R6/R7' ----
; SOURCE LINE # 13
; SOURCE LINE # 14
; SOURCE LINE # 17
0000 ?C0004:
0000 D3 SETB C
0001 EF MOV A,R7
0002 9400 SUBB A,#00H
0004 EE MOV A,R6
0005 9400 SUBB A,#00H
0007 400F JC ?C0011
; SOURCE LINE # 18
; SOURCE LINE # 19
;---- Variable 'Counter' assigned to Register 'R5' ----
0009 7DFA MOV R5,#0FAH
000B ?C0007:
; SOURCE LINE # 20
000B DDFE DJNZ R5,?C0007
000D ?C0008:
; SOURCE LINE # 22
000D 7DFA MOV R5,#0FAH
000F ?C0009:
; SOURCE LINE # 23
000F DDFE DJNZ R5,?C0009
; SOURCE LINE # 24
0011 ?C0006:
0011 EF MOV A,R7
0012 1F DEC R7
0013 70EB JNZ ?C0004
0015 1E DEC R6
0016 ?C0062:
0016 80E8 SJMP ?C0004
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 24
; SOURCE LINE # 25
0018 ?C0011:
0018 22 RET
; FUNCTION _DoWait (END)
; FUNCTION _DELAY10ms (BEGIN)
0000 900000 R MOV DPTR,#delay
0003 EE MOV A,R6
0004 F0 MOVX @DPTR,A
0005 A3 INC DPTR
0006 EF MOV A,R7
0007 F0 MOVX @DPTR,A
; SOURCE LINE # 27
; SOURCE LINE # 28
; SOURCE LINE # 30
;---- Variable 'i' assigned to Register 'R6/R7' ----
0008 E4 CLR A
0009 FF MOV R7,A
000A FE MOV R6,A
000B ?C0012:
000B D3 SETB C
000C 900000 R MOV DPTR,#delay+01H
000F E0 MOVX A,@DPTR
0010 9F SUBB A,R7
0011 900000 R MOV DPTR,#delay
0014 E0 MOVX A,@DPTR
0015 9E SUBB A,R6
0016 4024 JC ?C0021
; SOURCE LINE # 31
;---- Variable 'j' assigned to Register 'R4/R5' ----
0018 E4 CLR A
0019 FD MOV R5,A
001A FC MOV R4,A
001B ?C0015:
; SOURCE LINE # 32
;---- Variable 'k' assigned to Register 'R2/R3' ----
001B E4 CLR A
001C FB MOV R3,A
001D FA MOV R2,A
001E ?C0018:
; SOURCE LINE # 33
001E 00 NOP
001F 0B INC R3
0020 BB0001 CJNE R3,#00H,?C0063
0023 0A INC R2
0024 ?C0063:
0024 EB MOV A,R3
0025 64FA XRL A,#0FAH
0027 4A ORL A,R2
0028 70F4 JNZ ?C0018
002A ?C0017:
002A 0D INC R5
002B BD0001 CJNE R5,#00H,?C0064
002E 0C INC R4
002F ?C0064:
002F ED MOV A,R5
0030 6428 XRL A,#028H
0032 4C ORL A,R4
0033 70E6 JNZ ?C0015
0035 ?C0014:
0035 0F INC R7
0036 BF0001 CJNE R7,#00H,?C0065
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 25
0039 0E INC R6
003A ?C0065:
003A 80CF SJMP ?C0012
; SOURCE LINE # 34
003C ?C0021:
003C 22 RET
; FUNCTION _DELAY10ms (END)
; FUNCTION Initial_I2C (BEGIN)
; SOURCE LINE # 39
; SOURCE LINE # 40
; SOURCE LINE # 41
0000 E4 CLR A
0001 900000 R MOV DPTR,#EEP_Wait
0004 F0 MOVX @DPTR,A
; SOURCE LINE # 43
0005 900000 E MOV DPTR,#byMTV_IIC_CTR
0008 F0 MOVX @DPTR,A
; SOURCE LINE # 44
0009 7402 MOV A,#02H
000B F0 MOVX @DPTR,A
; SOURCE LINE # 45
000C 22 RET
; FUNCTION Initial_I2C (END)
; FUNCTION L?0070 (BEGIN)
0000 E0 MOVX A,@DPTR
0001 L?0071:
0001 900000 E MOV DPTR,#byMTV_IIC_MBUF
0004 L?0072:
0004 F0 MOVX @DPTR,A
0005 E4 CLR A
0006 900000 E MOV DPTR,#byMTV_IIC_CTR
0009 F0 MOVX @DPTR,A
000A 04 INC A
000B F0 MOVX @DPTR,A
; FUNCTION Wait_IIC_Ack (BEGIN)
; SOURCE LINE # 50
; SOURCE LINE # 51
; SOURCE LINE # 52
000C 7F0A MOV R7,#0AH
000E 120000 R LCALL _Short_Delay
; SOURCE LINE # 53
0011 900000 R MOV DPTR,#IIC_Timer
0014 7401 MOV A,#01H
0016 F0 MOVX @DPTR,A
0017 ?C0023:
; SOURCE LINE # 55
0017 900000 R MOV DPTR,#IIC_Timer
001A E0 MOVX A,@DPTR
001B D3 SETB C
001C 9400 SUBB A,#00H
001E 4007 JC ?C0024
0020 900000 E MOV DPTR,#byMTV_IIC_INTFLG
0023 E0 MOVX A,@DPTR
0024 30E0F0 JNB ACC.0,?C0023
0027 ?C0024:
; SOURCE LINE # 57
0027 900000 E MOV DPTR,#byMTV_IIC_STUS1
002A E0 MOVX A,@DPTR
002B 20E004 JB ACC.0,?C0025
; SOURCE LINE # 58
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 26
002E C200 R CLR bNoAck
0030 8002 SJMP ?C0026
0032 ?C0025:
; SOURCE LINE # 60
0032 D200 R SETB bNoAck
0034 ?C0026:
; SOURCE LINE # 70
0034 E4 CLR A
0035 900000 E MOV DPTR,#byMTV_IIC_INTFLG
0038 F0 MOVX @DPTR,A
; SOURCE LINE # 71
0039 22 RET
; FUNCTION Wait_IIC_Ack (END)
; FUNCTION _IIC_WriteByte (BEGIN)
;---- Variable 'id' assigned to Register 'R1' ----
0000 A907 MOV R1,AR7
;---- Variable 'addr' assigned to Register 'R5' ----
;---- Variable 'senddata' assigned to Register 'R3' ----
; SOURCE LINE # 73
; SOURCE LINE # 74
; SOURCE LINE # 75
;---- Variable 'count' assigned to Register 'R4' ----
0002 E4 CLR A
0003 FC MOV R4,A
0004 ?C0030:
; SOURCE LINE # 78
; SOURCE LINE # 79
0004 0C INC R4
; SOURCE LINE # 82
; SOURCE LINE # 83
; SOURCE LINE # 84
0005 120000 R LCALL L?0069
; SOURCE LINE # 86
0008 E4 CLR A
0009 900000 E MOV DPTR,#byMTV_IIC_INTFLG
000C F0 MOVX @DPTR,A
; SOURCE LINE # 89
000D 900000 E MOV DPTR,#byMTV_IIC_MBUF
0010 E9 MOV A,R1
; SOURCE LINE # 92
; SOURCE LINE # 93
; SOURCE LINE # 95
0011 120000 R LCALL L?0072
; SOURCE LINE # 97
0014 20001E R JB bNoAck,?C0028
; SOURCE LINE # 98
0017 ?C0031:
; SOURCE LINE # 101
0017 900000 E MOV DPTR,#byMTV_IIC_MBUF
001A ED MOV A,R5
001B F0 MOVX @DPTR,A
; SOURCE LINE # 103
001C 120000 R LCALL Wait_IIC_Ack
; SOURCE LINE # 105
001F 200013 R JB bNoAck,?C0028
; SOURCE LINE # 106
0022 ?C0032:
; SOURCE LINE # 109
0022 900000 E MOV DPTR,#byMTV_IIC_MBUF
0025 EB MOV A,R3
0026 F0 MOVX @DPTR,A
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 27
; SOURCE LINE # 111
0027 120000 R LCALL Wait_IIC_Ack
; SOURCE LINE # 113
002A 200008 R JB bNoAck,?C0028
; SOURCE LINE # 114
002D ?C0033:
; SOURCE LINE # 117
002D E4 CLR A
002E 900000 E MOV DPTR,#byMTV_IIC_CTR
0031 F0 MOVX @DPTR,A
; SOURCE LINE # 118
0032 7402 MOV A,#02H
0034 F0 MOVX @DPTR,A
; SOURCE LINE # 119
0035 ?C0028:
; SOURCE LINE # 120
0035 300006 R JNB bNoAck,?C0035
0038 EC MOV A,R4
0039 C3 CLR C
003A 940A SUBB A,#0AH
003C 40C6 JC ?C0030
; SOURCE LINE # 122
003E ?C0035:
003E 22 RET
; FUNCTION _IIC_WriteByte (END)
; FUNCTION _IIC_Write (BEGIN)
0000 900000 R MOV DPTR,#id
0003 EF MOV A,R7
0004 F0 MOVX @DPTR,A
0005 A3 INC DPTR
0006 ED MOV A,R5
0007 F0 MOVX @DPTR,A
0008 A3 INC DPTR
0009 EB MOV A,R3
000A F0 MOVX @DPTR,A
000B A3 INC DPTR
000C EA MOV A,R2
000D F0 MOVX @DPTR,A
000E A3 INC DPTR
000F E9 MOV A,R1
0010 F0 MOVX @DPTR,A
; SOURCE LINE # 127
; SOURCE LINE # 128
; SOURCE LINE # 130
0011 E4 CLR A
0012 900000 R MOV DPTR,#count
0015 F0 MOVX @DPTR,A
0016 ?C0038:
; SOURCE LINE # 133
; SOURCE LINE # 134
0016 900000 R MOV DPTR,#count
; SOURCE LINE # 137
; SOURCE LINE # 138
; SOURCE LINE # 139
0019 120000 R LCALL L?0068
; SOURCE LINE # 141
001C E4 CLR A
001D 900000 E MOV DPTR,#byMTV_IIC_INTFLG
0020 F0 MOVX @DPTR,A
; SOURCE LINE # 144
0021 900000 R MOV DPTR,#id
C51 COMPILER V6.10 IIC 12/02/2004 10:58:52 PAGE 28
; SOURCE LINE # 147
; SOURCE LINE # 148
; SOURCE LINE # 150
0024 120000 R LCALL L?0070
; SOURCE LINE # 152
0027 20004C R JB bNoAck,?C0036
; SOURCE LINE # 153
002A ?C0039:
; SOURCE LINE # 156
002A 900000 R MOV DPTR,#addr
002D E0 MOVX A,@DPTR
002E 900000 E MOV DPTR,#byMTV_IIC_MBUF
0031 F0 MOVX @DPTR,A
; SOURCE LINE # 158
0032 120000 R LCALL Wait_IIC_Ack
; SOURCE LINE # 160
0035 20003E R JB bNoAck,?C0036
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -