?? i2c.lst
字號:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-88888 Thu Apr 23 16:52:09 2009
Licensed to: ONE TWO
1 processor 16F737
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text1,local,class=CODE,delta=2
6 psect text2,local,class=CODE,delta=2
7 psect text3,local,class=CODE,delta=2
8 psect text4,local,class=CODE,delta=2
9 psect text5,local,class=CODE,delta=2
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20
21 psect __Z88888RS_
22 0190
23 0190
24
25 psect text0
26 04F4 _I2C_Init
27 ;I2C.c: 16: TRISC3 =0;
28 04F4 1683 bsf 3,5
29 04F5 1303 bcf 3,6 ;carry unused
30 04F6 1187 bcf 7,3
31 ;I2C.c: 17: TRISC4 =0;
32 04F7 1207 bcf 7,4
33 ;I2C.c: 19: RC3 = 1;
34 04F8 1283 bcf 3,5
35 04F9 1587 bsf 7,3
36 ;I2C.c: 20: RC4 = 1;
37 04FA 1607 bsf 7,4
38 ;I2C.c: 22: SSPCON &= ~(0x0F);
39 04FB 30F0 movlw -16
40 04FC 0594 andwf 20 ;volatile
41 ;I2C.c: 23: SSPCON |= 0x08;
42 04FD 1594 bsf 20,3 ;volatile
43 ;I2C.c: 29: SMP = 1;
44 04FE 1683 bsf 3,5
45 04FF 1794 bsf 20,7
46 ;I2C.c: 30: CKE = 0;
47 0500 1314 bcf 20,6
48 ;I2C.c: 31: SSPADD = 0x13;
49 0501 3013 movlw 19
50 0502 0093 movwf 19
51 ;I2C.c: 32: SSPEN = 1;
52 0503 1283 bcf 3,5
53 0504 1694 bsf 20,5
54 ;I2C.c: 34: }
55 0505 0008 return
56
57 psect text1
58 0678 _EEPROM_ReadByte
59 ; _cnt assigned to ?a_EEPROM_ReadByte+0
60 0000 _EEPROM_ReadByte$cnt set ?a_EEPROM_ReadByte
61 ;I2C.c: 39: unsigned char cnt=0;
62 0678 0183 clrf 3 ;select bank 0
63 0679 01A6 clrf ?a_EEPROM_ReadByte
64 ;I2C.c: 41: while((SSPCON2 & 0x1F) || RW ){
65 067A 2E82 goto l3
66 067B l4
67 ;I2C.c: 42: SSPEN = 0;
68 067B 1283 bcf 3,5
69 067C 1294 bcf 20,5
70 ;I2C.c: 43: asm("nop");
71 067D 0000 nop ;#
72 ;I2C.c: 44: RC3 = 1;
73 067E 1587 bsf 7,3
74 ;I2C.c: 45: RC4 = 1;
75 067F 1607 bsf 7,4
76 ;I2C.c: 46: asm("nop");
77 0680 0000 nop ;#
78 ;I2C.c: 47: SSPEN = 1;
79 0681 1694 bsf 20,5
80 0682 l3
81 ;I2C.c: 48: }
82 0682 1683 bsf 3,5
83 0683 0811 movf 17,w ;volatile
84 0684 391F andlw 31
85 0685 1903 btfsc 3,2
86 0686 1914 btfsc 20,2
87 0687 2E7B goto l4
88 ;I2C.c: 50: SEN = 1;
89 0688 1411 bsf 17,0
90 ;I2C.c: 51: while(SEN);
91 0689 l6
92 0689 1811 btfsc 17,0
93 068A 2E89 goto l6
94 ;I2C.c: 52: SSPIF = 0;
95 068B 1283 bcf 3,5
96 068C 118C bcf 12,3
97 ;I2C.c: 53: SSPBUF = 0b10100000;
98 068D 30A0 movlw -96
99 068E 0093 movwf 19 ;volatile
100 ;I2C.c: 54: while(!SSPIF);
101 068F l9
102 068F 198C btfsc 12,3
103 0690 2EA0 goto l12
104 0691 2E8F goto l9
105 ;I2C.c: 56: while(ACKSTAT){
106 0692 l13
107 ;I2C.c: 57: RSEN = 1;
108 0692 1491 bsf 17,1
109 ;I2C.c: 58: while(RSEN);
110 0693 l15
111 0693 1891 btfsc 17,1
112 0694 2E93 goto l15
113 ;I2C.c: 59: SSPIF = 0;
114 0695 1283 bcf 3,5
115 0696 118C bcf 12,3
116 ;I2C.c: 60: SSPBUF = 0b10100000;
117 0697 30A0 movlw -96
118 0698 0093 movwf 19 ;volatile
119 ;I2C.c: 61: while(!SSPIF);
120 0699 l18
121 0699 1D8C btfss 12,3
122 069A 2E99 goto l18
123 ;I2C.c: 62: if(cnt++>200) return 0xAA;
124 069B 30C9 movlw -55
125 069C 0226 subwf ?a_EEPROM_ReadByte,w
126 069D 0AA6 incf ?a_EEPROM_ReadByte
127 069E 1803 btfsc 3,0
128 069F 2EC5 goto u180
129 06A0 l12
130 06A0 1683 bsf 3,5
131 06A1 1B11 btfsc 17,6
132 06A2 2E92 goto l13
133 ;I2C.c: 65: if(ACKSTAT) return 0xAA;
134 06A3 1B11 btfsc 17,6
135 06A4 2EC5 goto u180
136 ;I2C.c: 66: SSPIF = 0;
137 06A5 1283 bcf 3,5
138 06A6 118C bcf 12,3
139 ;I2C.c: 67: SSPBUF = (unsigned char)(Addr>>8);
140 06A7 0827 movf ?_EEPROM_ReadByte+1,w
141 06A8 0093 movwf 19 ;volatile
142 ;I2C.c: 68: while(!SSPIF);
143 06A9 l23
144 06A9 1D8C btfss 12,3
145 06AA 2EA9 goto l23
146 ;I2C.c: 70: if(ACKSTAT) return 0xAA;
147 06AB 1683 bsf 3,5
148 06AC 1B11 btfsc 17,6
149 06AD 2EC5 goto u180
150 ;I2C.c: 71: SSPIF = 0;
151 06AE 1283 bcf 3,5
152 06AF 118C bcf 12,3
153 ;I2C.c: 72: SSPBUF = (unsigned char)Addr;
154 06B0 0826 movf ?_EEPROM_ReadByte,w
155 06B1 0093 movwf 19 ;volatile
156 ;I2C.c: 73: while(!SSPIF);
157 06B2 l27
158 06B2 1D8C btfss 12,3
159 06B3 2EB2 goto l27
160 ;I2C.c: 75: if(ACKSTAT) return 0xAA;
161 06B4 1683 bsf 3,5
162 06B5 1B11 btfsc 17,6
163 06B6 2EC5 goto u180
164 ;I2C.c: 76: RSEN = 1;
165 06B7 1491 bsf 17,1
166 ;I2C.c: 77: while(RSEN);
167 06B8 l31
168 06B8 1891 btfsc 17,1
169 06B9 2EB8 goto l31
170 ;I2C.c: 79: if(ACKSTAT) return 0xAA;
171 06BA 1B11 btfsc 17,6
172 06BB 2EC5 goto u180
173 ;I2C.c: 80: SSPIF = 0;
174 06BC 1283 bcf 3,5
175 06BD 118C bcf 12,3
176 ;I2C.c: 81: SSPBUF = 0b10100001;
177 06BE 30A1 movlw -95
178 06BF 0093 movwf 19 ;volatile
179 ;I2C.c: 82: while(!SSPIF);
180 06C0 l35
181 06C0 1D8C btfss 12,3
182 06C1 2EC0 goto l35
183 ;I2C.c: 84: if(ACKSTAT) return 0xAA;
184 06C2 1683 bsf 3,5
185 06C3 1F11 btfss 17,6
186 06C4 2EC7 goto l38
187 06C5 u180
188 06C5 30AA movlw -86
189 06C6 2EDD goto l2
190 06C7 l38
191 ;I2C.c: 85: SSPIF = 0;
192 06C7 1283 bcf 3,5
193 06C8 118C bcf 12,3
194 ;I2C.c: 86: RCEN = 1;
195 06C9 1683 bsf 3,5
196 06CA 1591 bsf 17,3
197 ;I2C.c: 88: while(!SSPIF);
198 06CB l39
199 06CB 1283 bcf 3,5
200 06CC 1D8C btfss 12,3
201 06CD 2ECB goto l39
202 ;I2C.c: 91: ACKDT = 1;
203 06CE 1683 bsf 3,5
204 06CF 1691 bsf 17,5
205 ;I2C.c: 92: ACKEN = 1;
206 06D0 1611 bsf 17,4
207 ;I2C.c: 93: while (ACKEN ==1);
208 06D1 l42
209 06D1 1A11 btfsc 17,4
210 06D2 2ED1 goto l42
211 ;I2C.c: 95: PEN = 1;
212 06D3 1511 bsf 17,2
213 ;I2C.c: 96: while(PEN);
214 06D4 l45
215 06D4 1911 btfsc 17,2
216 06D5 2ED4 goto l45
217 ;I2C.c: 98: *DataBuf = SSPBUF;
218 06D6 1283 bcf 3,5
219 06D7 0828 movf ?_EEPROM_ReadByte+2,w
220 06D8 0084 movwf 4
221 06D9 1383 bcf 3,7
222 06DA 0813 movf 19,w ;volatile
223 06DB 0080 movwf 0
224 ;I2C.c: 99: return 0;
225 06DC 3000 movlw 0
226 ;I2C.c: 100: }
227 06DD l2
228 06DD 1283 bcf 3,5
229 06DE 0008 return
230
231 psect text2
232 05C8 _EEPROM_WriteByte
233 ; _cnt assigned to ?a_EEPROM_WriteByte+0
234 0000 _EEPROM_WriteByte$cnt set ?a_EEPROM_WriteByte
235 ;I2C.c: 105: unsigned char cnt=0;
236 05C8 0183 clrf 3 ;select bank 0
237 05C9 01A6 clrf ?a_EEPROM_WriteByte
238 ;I2C.c: 106: while((SSPCON2 & 0x1F) || RW ){
239 05CA 2DD2 goto l49
240 05CB l50
241 ;I2C.c: 107: SSPEN = 0;
242 05CB 1283 bcf 3,5
243 05CC 1294 bcf 20,5
244 ;I2C.c: 108: asm("nop");
245 05CD 0000 nop ;#
246 ;I2C.c: 109: RC3 = 1;
247 05CE 1587 bsf 7,3
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -