📄 ds1302.lst
字号:
240 ;ds1302.c: 77: }
241 2164 06D9 decf fsr2l,f,c
242 2166 50D9 movf fsr2l,w,c
243 2168 B4D8 btfsc status,2,c
244 ;ds1302.c: 78: }
245 216A 0012 return
246 216C D7EF goto l11
247 216E FFFF dw 65535
248 2170 D7E9 goto f4622
249 ;ds1302.c: 80: unsigned char DS1302I_OputByte(un
+ signed char d)
250 ;ds1302.c: 81: {
251 2172 _DS1302I_OputByte:
252 2172 FFFF dw 65535
253 2174 f4632:
254 0000
255 ; _d loaded to fsr0l
256 2174 6EE9 movwf fsr0l,c
257 ;ds1302.c: 82: unsigned char i,j=0x00,k=0x00;
258 ; _j allocated to prodl
259 2176 6AF3 clrf prodl,c
260 2178 6AE1 clrf fsr1l,c
261 ;ds1302.c: 83: TRISA4=0;
262 217A 9892 bcf 3986,4,c ;volatile
263 ;ds1302.c: 84: RC1=0;
264 217C 9282 bcf 3970,1,c ;volatile
265 ;ds1302.c: 85: RA5=0;
266 217E 9A80 bcf 3968,5,c ;volatile
267 ;ds1302.c: 86: RC1=1;
268 2180 8282 bsf 3970,1,c ;volatile
269 ;ds1302.c: 87: for(i=8; i>0; i--)
270 2182 0E08 movlw 8
271 2184 6ED9 movwf fsr2l,c
272 2186 l15:
273 ;ds1302.c: 88: {
274 ;ds1302.c: 89: RA5=0;
275 2186 9A80 bcf 3968,5,c ;volatile
276 ;ds1302.c: 90: RA4=d&1; asm(" nop");asm(" nop");
277 2188 CFE9 F000 movff fsr0l,btemp
278 218C 3000 rrcf btemp,w
279 218E A0D8 btfss status,0,c
280 2190 D002 goto u70
281 2192 8880 bsf 3968,4,c ;volatile
282 2194 D001 goto u80
283 2196 u70:
284 2196 9880 bcf 3968,4,c ;volatile
285 2198 u80:
286 2198 F000 nop ;#
287 219A F000 nop ;#
288 ;ds1302.c: 91: d= d >> 1;
289 219C 90D8 bcf status,0,c
290 219E 32E9 rrcf fsr0l,f,c
291 ;ds1302.c: 92: RA5 = 1;
292 21A0 8A80 bsf 3968,5,c ;volatile
293 ;ds1302.c: 93: }
294 21A2 06D9 decf fsr2l,f,c
295 21A4 50D9 movf fsr2l,w,c
296 21A6 A4D8 btfss status,2,c
297 21A8 D7EE goto l15
298 ;ds1302.c: 94: RA5=0;
299 21AA 9A80 bcf 3968,5,c ;volatile
300 ;ds1302.c: 95: TRISA4=1;
301 21AC 8892 bsf 3986,4,c ;volatile
302 ;ds1302.c: 96: for(i=0; i<8; i++)
303 21AE 6AD9 clrf fsr2l,c
304 21B0 l18:
305 ;ds1302.c: 97: {
306 ;ds1302.c: 98: j= RA4;asm(" nop");asm(" nop");
307 ; _j allocated to fsr0l
308 21B0 0E00 movlw 0
309 21B2 B880 btfsc 3968,4,c ;volatile
310 21B4 0E01 movlw 1
311 21B6 6EE9 movwf fsr0l,c
312 21B8 F000 nop ;#
313 21BA F000 nop ;#
314 ;ds1302.c: 99: RA5 =1;
315 21BC 8A80 bsf 3968,5,c ;volatile
316 ;ds1302.c: 100: j=j<<i;
317 21BE 28D9 incf fsr2l,w,c
318 21C0 6E00 movwf btemp
319 21C2 D002 goto u100
320 21C4 u105:
321 21C4 90D8 bcf status,0,c
322 21C6 36E9 rlcf fsr0l,f,c
323 21C8 u100:
324 21C8 2E00 decfsz btemp,f
325 21CA D7FC goto u105
326 ;ds1302.c: 101: RA5=0;
327 21CC 9A80 bcf 3968,5,c ;volatile
328 ;ds1302.c: 102: k|=j;
329 21CE 50E9 movf fsr0l,w,c
330 21D0 12E1 iorwf fsr1l,f,c
331 ;ds1302.c: 103: }
332 21D2 2AD9 incf fsr2l,f,c
333 21D4 0E07 movlw 7
334 21D6 64D9 cpfsgt fsr2l,c
335 21D8 D7EB goto l18
336 ;ds1302.c: 104: RC1=0;RA5=1;
337 21DA 9282 bcf 3970,1,c ;volatile
338 21DC 8A80 bsf 3968,5,c ;volatile
339 ;ds1302.c: 106: return(k); Delay10Us(10);
340 21DE 50E1 movf fsr1l,w,c
341 ;ds1302.c: 108: }
342 21E0 0012 return
343 21E2 FFFF dw 65535
344 21E4 D7C7 goto f4632
345 ;ds1302.c: 110: void Write1302(unsigned char ucA
+ ddr, unsigned char ucDa)
346 ;ds1302.c: 111: {
347 ; param _ucDa assigned to ?_Write1302+0
348 21E6 007D dw ?_Write1302
349 21E8 _Write1302:
350 21E8 FFFF dw 65535
351 21EA f4652:
352 0000
353 ; _ucAddr loaded to fsr0l
354 21EA 6EE9 movwf fsr0l,c
355 ;ds1302.c: 112: RC1=0;
356 21EC 9282 bcf 3970,1,c ;volatile
357 ;ds1302.c: 113: RA5=0;
358 21EE 9A80 bcf 3968,5,c ;volatile
359 ;ds1302.c: 114: RC1=1;
360 21F0 8282 bsf 3970,1,c ;volatile
361 ;ds1302.c: 115: DS1302InputByte(ucAddr);
362 21F2 DFA7 call _DS1302InputByte
363 ;ds1302.c: 116: RA5=0;
364 21F4 9A80 bcf 3968,5,c ;volatile
365 ;ds1302.c: 117: DS1302InputByte(ucDa);
366 21F6 0100 movlb __Lparam shr (0+8)
367 21F8 517D movf ?_Write1302^(__Lparam& (0+65280)),w
368 21FA DFA3 call _DS1302InputByte
369 ;ds1302.c: 118: Delay10Us(10);
370 21FC 0E0A movlw 10
371 21FE EC38 F01D call _Delay10Us
372 ;ds1302.c: 119: RC1 = 0;
373 2202 9282 bcf 3970,1,c ;volatile
374 ;ds1302.c: 120: RA5=0;
375 2204 9A80 bcf 3968,5,c ;volatile
376 ;ds1302.c: 121: }
377 2206 0012 return
378 2208 FFFF dw 65535
379 220A D7EF goto f4652
380 ;ds1302.c: 123: unsigned char Read1302(unsigned
+ char ucAddr)
381 ;ds1302.c: 124: {
382 220C _Read1302:
383 220C FFFF dw 65535
384 220E f4662:
385 0000
386 ; _ucAddr loaded to btemp+1
387 220E 6E01 movwf btemp+1
388 ;ds1302.c: 125: unsigned char ucData;
389 2210 0901 iorlw 1
390 2212 DFAF call _DS1302I_OputByte
391 2214 6EF4 movwf prodh,c
392 ;ds1302.c: 128: return(ucData);
393 ;ds1302.c: 129: }
394 2216 0012 return
395 2218 FFFF dw 65535
396 221A D7F9 goto f4662
397 221C 007D dw ?_DS1302_GetTime
398 221E _DS1302_GetTime:
399 221E FFFF dw 65535
400 2220 f4672:
401 0000
402 ;ds1302.c: 140: unsigned char ReadValue;
403 2220 0E80 movlw 128
404 2222 DFF4 call _Read1302
405 2224 6E02 movwf btemp+2
406 ;ds1302.c: 142: Time->Second = ((ReadValue&0x70)
+ >>4)*10 + (ReadValue&0x0F);
407 2226 C002 F000 movff btemp+2,btemp
408 222A 0E70 movlw 112
409 222C 1600 andwf btemp,f
410 222E 3800 swapf btemp,w
411 2230 0B0F andlw 15
412 2232 0D0A mullw 10
413 2234 C002 F000 movff btemp+2,btemp
414 2238 0E0F movlw 15
415 223A 1600 andwf btemp,f
416 223C 50F3 movf prodl,w,c
417 223E 2400 addwf btemp,w
418 2240 C07D FFE9 movff ?_DS1302_GetTime,fsr0l
419 2244 C07E FFEA movff ?_DS1302_GetTime+1,fsr0h
420 2248 6EEF movwf indf0,c
421 ;ds1302.c: 143: ReadValue = Read1302(0x82);
422 224A 0E82 movlw 130
423 224C DFDF call _Read1302
424 224E 6E02 movwf btemp+2
425 ;ds1302.c: 144: Time->Minute = ((ReadValue&0x70)
+ >>4)*10 + (ReadValue&0x0F);
426 2250 0100 movlb __Lparam shr (0+8)
427 2252 EE00 F001 lfsr 0,1
428 2256 517D movf ?_DS1302_GetTime^(__Lparam& (0+65280)),w
429 2258 26E9 addwf fsr0l,f,c
430 225A 517E movf (?_DS1302_GetTime+1)^(__Lparam& (0+65280))
+ ,w
431 225C 22EA addwfc fsr0h,f,c
432 225E C002 F000 movff btemp+2,btemp
433 2262 0E70 movlw 112
434 2264 1600 andwf btemp,f
435 2266 3800 swapf btemp,w
436 2268 0B0F andlw 15
437 226A 0D0A mullw 10
438 226C C002 F000 movff btemp+2,btemp
439 2270 0E0F movlw 15
440 2272 1600 andwf btemp,f
441 2274 50F3 movf prodl,w,c
442 2276 2400 addwf btemp,w
443 2278 6EEF movwf indf0,c
444 ;ds1302.c: 145: ReadValue = Read1302(0x84);
445 227A 0E84 movlw 132
446 227C DFC7 call _Read1302
447 227E 6E02 movwf btemp+2
448 ;ds1302.c: 146: Time->Hour = ((ReadValue&0x70)>>
+ 4)*10 + (ReadValue&0x0F);
449 2280 0100 movlb __Lparam shr (0+8)
450 2282 EE00 F002 lfsr 0,2
451 2286 517D movf ?_DS1302_GetTime^(__Lparam& (0+65280)),w
452 2288 26E9 addwf fsr0l,f,c
453 228A 517E movf (?_DS1302_GetTime+1)^(__Lparam& (0+65280))
+ ,w
454 228C 22EA addwfc fsr0h,f,c
455 228E C002 F000 movff btemp+2,btemp
456 2292 0E70 movlw 112
457 2294 1600 andwf btemp,f
458 2296 3800 swapf btemp,w
459 2298 0B0F andlw 15
460 229A 0D0A mullw 10
461 229C C002 F000 movff btemp+2,btemp
462 22A0 0E0F movlw 15
463 22A2 1600 andwf btemp,f
464 22A4 50F3 movf prodl,w,c
465 22A6 2400 addwf btemp,w
466 22A8 6EEF movwf indf0,c
467 ;ds1302.c: 147: ReadValue = Read1302(0x86);
468 22AA 0E86 movlw 134
469 22AC DFAF call _Read1302
470 22AE 6E02 movwf btemp+2
471 ;ds1302.c: 148: Time->Day = ((ReadValue&0x70)>>4
+ )*10 + (ReadValue&0x0F);
472 22B0 0100 movlb __Lparam shr (0+8)
473 22B2 EE00 F004 lfsr 0,4
474 22B6 517D movf ?_DS1302_GetTime^(__Lparam& (0+65280)),w
475 22B8 26E9 addwf fsr0l,f,c
476 22BA 517E movf (?_DS1302_GetTime+1)^(__Lparam& (0+65280))
+ ,w
477 22BC 22EA addwfc fsr0h,f,c
478 22BE C002 F000 movff btemp+2,btemp
479 22C2 0E70 movlw 112
480 22C4 1600 andwf btemp,f
481 22C6 3800 swapf btemp,w
482 22C8 0B0F andlw 15
483 22CA 0D0A mullw 10
484 22CC C002 F000 movff btemp+2,btemp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -