📄 func.lst
字号:
文件:FUNC.c 盛群编译器版本 2.86 页次1
; 26: {
26 0000 __acsr EQU [023H]
26 0000 __adcr EQU [022H]
26 0000 __adrh EQU [021H]
26 0000 __adrl EQU [020H]
26 0000 __pwm EQU [01aH]
26 0000 __pdc EQU [019H]
26 0000 __pd EQU [018H]
26 0000 __pbc EQU [015H]
26 0000 __pb EQU [014H]
26 0000 __pac EQU [013H]
26 0000 __pa EQU [012H]
26 0000 __tmrc EQU [0eH]
26 0000 __tmr EQU [0dH]
26 0000 __intc EQU [0bH]
26 0000 __status EQU [0aH]
26 0000 __tblh EQU [08H]
26 0000 __tblp EQU [07H]
26 0000 __pcl EQU [06H]
26 0000 __acc EQU [05H]
26 0000 __mp EQU [01H]
26 0000 __iar EQU [00H]
26 0000 @I2C_Start .SECTION 'CODE'
26 0000 PUBLIC _I2C_Start
26 0000 _I2C_Start PROC
; 27: SCL_OUT(); /*设置SCL和SDA为输出端口*/
27 0000 3595 CLR __pbc.3
; 28: SDA_OUT();
28 0001 3419 CLR __pdc.0
; 29: I2C_SDA = 1;
29 0002 3018 SET [018H].0
; 30: I2C_SCL = 1;
30 0003 3194 SET [014H].3
; 31: _delay(DLY_TIME); /*延时*/
31 0004 0F01 MOV A,01H
31 0005 2000 E CALL __DELAYX2
; 32: I2C_SDA = 0;
32 0006 3418 CLR [018H].0
; 33: _delay(DLY_TIME);
33 0007 0F01 MOV A,01H
33 0008 2000 E CALL __DELAYX2
; 34: I2C_SCL = 0;
34 0009 3594 CLR [014H].3
; 35: _delay(DLY_TIME);
35 000A 0F01 MOV A,01H
35 000B 2000 E CALL __DELAYX2
35 000C L1:
35 000C 0003 RET
文件:FUNC.c 盛群编译器版本 2.86 页次2
35 000D _I2C_Start ENDP
; 48: {
48 0000 @I2C_Stop .SECTION 'CODE'
48 0000 PUBLIC _I2C_Stop
48 0000 _I2C_Stop PROC
; 49: SCL_OUT(); /*设置SCL和SDA为输出端口*/
49 0000 3595 CLR __pbc.3
文件:FUNC.C 盛群编译器版本 2.86 页次2
; 50: SDA_OUT();
50 0001 3419 CLR __pdc.0
; 51: I2C_SDA = 0;
51 0002 3418 CLR [018H].0
; 52: I2C_SCL = 1;
52 0003 3194 SET [014H].3
; 53: _delay(DLY_TIME); /*延时*/
53 0004 0F01 MOV A,01H
53 0005 2000 E CALL __DELAYX2
; 54: I2C_SDA = 1;
54 0006 3018 SET [018H].0
; 55: _delay(DLY_TIME);
55 0007 0F01 MOV A,01H
55 0008 2000 E CALL __DELAYX2
; 56: I2C_SCL = 0;
56 0009 3594 CLR [014H].3
; 57: _delay(DLY_TIME); /*延时50ms*/
57 000A 0F01 MOV A,01H
57 000B 2000 E CALL __DELAYX2
57 000C L2:
57 000C 0003 RET
57 000D _I2C_Stop ENDP
; 70: {
70 0000 @I2C_Write_Bit .SECTION 'CODE'
70 0000 PUBLIC _I2C_Write_Bit
70 0000 _I2C_Write_Bit PROC
; 69: void I2C_Write_Bit(bit dat)
69 0000 PUBLIC I2C_Write_Bit0
69 0000 00 LOCAL I2C_Write_Bit0 DBIT ; dat
; 71: SCL_OUT(); /*设置SCL和SDA为输出端口*/
71 0000 3595 CLR __pbc.3
; 72: SDA_OUT();
72 0001 3419 CLR __pdc.0
; 73: I2C_SDA = dat;
73 0002 0718 MOV A,[018H]
73 0003 3405 CLR [05H].0
文件:FUNC.c 盛群编译器版本 2.86 页次3
73 0004 3C00 R SZ I2C_Write_Bit0
73 0005 3005 SET [05H].0
73 0006 0098 MOV [018H],A
; 74: I2C_SCL = 1;
74 0007 3194 SET [014H].3
; 75: _delay(DLY_TIME);
75 0008 0F01 MOV A,01H
75 0009 2000 E CALL __DELAYX2
; 76: I2C_SCL = 0;
76 000A 3594 CLR [014H].3
; 77: _delay(DLY_TIME);
77 000B 0F01 MOV A,01H
77 000C 2000 E CALL __DELAYX2
77 000D L3:
77 000D 0003 RET
77 000E _I2C_Write_Bit ENDP
; 90: {
90 0000 @I2C_Write_Byte .SECTION 'CODE'
90 0000 PUBLIC _I2C_Write_Byte
90 0000 _I2C_Write_Byte PROC
文件:FUNC.C 盛群编译器版本 2.86 页次3
; 89: void I2C_Write_Byte(uint8 dat)
89 0000 PUBLIC I2C_Write_Byte0
89 0000 00 LOCAL I2C_Write_Byte0 DB ? ; dat
; 93: for(i = 0; i<8;i++) /*发送8位数据*/
93 0000 1F00 R CLR CR1
93 0001 2800 R JMP L8
93 0002 L5:
; 95: if((dat&0x80) == 0x80)
95 0002 3800 R SNZ I2C_Write_Byte0.7
95 0003 2800 R JMP L9
; 97: tmp = 1;
97 0004 3000 R SET CR2
; 98: }
98 0005 2800 R JMP L10
98 0006 L9:
; 99: else if((dat&0x80) == 0x00)
99 0006 3C00 R SZ I2C_Write_Byte0.7
99 0007 2800 R JMP L11
; 101: tmp = 0;
101 0008 3400 R CLR CR2
101 0009 L11:
101 0009 L10:
; 103: I2C_Write_Bit(tmp);
103 0009 3400 R CLR I2C_Write_Bit0
103 000A 3C00 R SZ CR2
文件:FUNC.c 盛群编译器版本 2.86 页次4
103 000B 3000 R SET I2C_Write_Bit0
103 000C 2000 R CALL _I2C_Write_Bit
; 104: dat <<= 1;
104 000D 340A CLR [0AH].0
104 000E 1A80 R RLC I2C_Write_Byte0
104 000F L6:
; 93: for(i = 0; i<8;i++) /*发送8位数据*/
93 000F 1480 R INC CR1
93 0010 L8:
93 0010 0700 R MOV A,CR1
93 0011 0A08 SUB A,08h
93 0012 380A SNZ [0ah].0
93 0013 2800 R JMP L5
93 0014 L4:
93 0014 0003 RET
; 91: uint8 i;
91 0001 00 LOCAL CR1 DB ? ; i
; 92: bit tmp;
92 0002 00 LOCAL CR2 DBIT ; tmp
92 0015 _I2C_Write_Byte ENDP
; 118: {
118 0000 @I2C_Read_Bit .SECTION 'CODE'
118 0000 PUBLIC _I2C_Read_Bit
文件:FUNC.C 盛群编译器版本 2.86 页次4
118 0000 _I2C_Read_Bit PROC
; 120: SCL_OUT(); /*设置SCL和SDA为输出端口*/
120 0000 3595 CLR __pbc.3
; 121: SDA_OUT();
121 0001 3419 CLR __pdc.0
; 122: I2C_SDA = 1;
122 0002 3018 SET [018H].0
; 123: I2C_SCL = 1;
123 0003 3194 SET [014H].3
; 124: _delay(DLY_TIME);
124 0004 0F01 MOV A,01H
124 0005 2000 E CALL __DELAYX2
; 125: SDA_IN(); /*设置SDA为输入*/
125 0006 3019 SET __pdc.0
; 126: dat = I2C_SDA;
126 0007 3400 R CLR CR4
126 0008 3C18 SZ [018H].0
126 0009 3000 R SET CR4
; 127: _delay(DLY_TIME);
127 000A 0F01 MOV A,01H
127 000B 2000 E CALL __DELAYX2
; 128: I2C_SCL = 0;
文件:FUNC.c 盛群编译器版本 2.86 页次5
128 000C 3594 CLR [014H].3
; 129: return dat;
129 000D 1F00 R CLR b0_5
129 000E 3C00 R SZ CR4
129 000F 3000 R SET b0_5.0
129 0010 0700 R MOV A,b0_5
129 0011 L13:
129 0011 0003 RET
129 0000 00 LOCAL b0_5 DB ?
; 119: bit dat;
119 0001 00 LOCAL CR4 DBIT ; dat
119 0012 _I2C_Read_Bit ENDP
; 141: {
141 0000 @I2C_Read_Byte .SECTION 'CODE'
141 0000 PUBLIC _I2C_Read_Byte
141 0000 _I2C_Read_Byte PROC
; 144: data = 0;
144 0000 1F00 R CLR CR7
; 145: for(i = 0; i<8;i++) /*发送8位数据*/
145 0001 1F00 R CLR CR6
145 0002 2800 R JMP L18
145 0003 L15:
; 147: data <<= 1;
147 0003 340A CLR [0AH].0
147 0004 1A80 R RLC CR7
; 148: tmp = I2C_Read_Bit();
148 0005 2000 R CALL _I2C_Read_Bit
148 0006 0080 R MOV b0_6,A
148 0007 0700 R MOV A,b0_6
148 0008 1F00 R CLR b0_6
148 0009 1085 SZ [05H]
148 000A 3000 R SET b0_6.0
148 000B 3400 R CLR CR5
文件:FUNC.C 盛群编译器版本 2.86 页次5
148 000C 1080 R SZ b0_6
148 000D 3000 R SET CR5
; 149: if(tmp == 0)
149 000E 3C00 R SZ CR5
149 000F 2800 R JMP L19
; 151: data &=0xfe;
151 0010 3400 R CLR CR7.0
; 152: }
152 0011 2800 R JMP L20
152 0012 L19:
; 153: else if(tmp ==1)
153 0012 3800 R SNZ CR5
153 0013 2800 R JMP L21
; 155: data |= 0x01;
文件:FUNC.c 盛群编译器版本 2.86 页次6
155 0014 3000 R SET CR7.0
155 0015 L21:
155 0015 L20:
155 0015 L16:
; 145: for(i = 0; i<8;i++) /*发送8位数据*/
145 0015 1480 R INC CR6
145 0016 L18:
145 0016 0700 R MOV A,CR6
145 0017 0A08 SUB A,08h
145 0018 380A SNZ [0ah].0
145 0019 2800 R JMP L15
; 158: return data;
158 001A 0700 R MOV A,CR7
158 001B L14:
158 001B 0003 RET
158 0000 00 LOCAL b0_6 DB ?
; 143: bit tmp;
143 0001 00 LOCAL CR5 DBIT ; tmp
; 142: uint8 i,data;
142 0002 00 LOCAL CR6 DB ? ; i
142 0003 00 LOCAL CR7 DB ? ; data
142 001C _I2C_Read_Byte ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -