📄 18b20lcd.lst
字号:
301 0593 082B movf ?a_read_byte+2,w
302 0594 00F1 movwf btemp+1
303 0595 0AF1 incf btemp+1
304 0596 2D99 goto u124
305 0597 u125
306 0597 1003 bcf 3,0
307 0598 0DF0 rlf btemp
308 0599 u124
309 0599 0BF1 decfsz btemp+1
310 059A 2D97 goto u125
311 059B 0870 movf btemp,w
312 059C 04AA iorwf ?a_read_byte+1
313 ;18b20LCD.c: 199: asm("nop");
314 059D 0000 nop ;#
315 ;18b20LCD.c: 200: asm("nop");
316 059E 0000 nop ;#
317 ;18b20LCD.c: 201: asm("nop");
318 059F 0000 nop ;#
319 05A0 l43
320 ;18b20LCD.c: 202: }
321 05A0 0AAB incf ?a_read_byte+2
322 05A1 3008 movlw 8
323 05A2 022B subwf ?a_read_byte+2,w
324 05A3 1C03 btfss 3,0
325 05A4 2D87 goto l40
326 ;18b20LCD.c: 204: return(value);
327 05A5 082A movf ?a_read_byte+1,w
328 ;18b20LCD.c: 205: }
329 05A6 0008 return
330 05A7 _delay
331 ; _d assigned to ?a_delay+0
332 0000 _delay$d set ?a_delay
333 ;18b20LCD.c: 126: unsigned int d;
334 05A7 0183 clrf 3 ;select bank 0
335 05A8 082D movf ?_delay,w
336 05A9 00AF movwf ?a_delay
337 05AA 082E movf ?_delay+1,w
338 05AB 00B0 movwf ?a_delay+1
339 ;18b20LCD.c: 128: while(--d)
340 05AC l29
341 ;18b20LCD.c: 129: {;}
342 05AC 30FF movlw -1
343 05AD 07AF addwf ?a_delay
344 05AE 1C03 btfss 3,0
345 05AF 03B0 decf ?a_delay+1
346 05B0 0830 movf ?a_delay+1,w
347 05B1 042F iorwf ?a_delay,w
348 05B2 1903 btfsc 3,2
349 05B3 0008 return
350 05B4 2DAC goto l29
351 ;18b20LCD.c: 131: bit reset(void)
352 ;18b20LCD.c: 132: {
353 05B5 _reset
354 ;18b20LCD.c: 133: static bit presence;
355 05B5 0183 clrf 3 ;select bank 0
356 05B6 1205 bcf 5,4
357 05B7 1683 bsf 3,5
358 05B8 1205 bcf 5,4
359 ;18b20LCD.c: 135: delay(70);
360 05B9 3046 movlw 70
361 05BA 1283 bcf 3,5
362 05BB 00AD movwf ?_delay
363 05BC 01AE clrf ?_delay+1
364 05BD 25A7 fcall _delay
365 ;18b20LCD.c: 138: TRISA4 = 1;
366 05BE 1683 bsf 3,5
367 05BF 1605 bsf 5,4
368 ;18b20LCD.c: 141: while(RA4);
369 05C0 l33
370 05C0 1283 bcf 3,5
371 05C1 1A05 btfsc 5,4
372 05C2 2DC0 goto l33
373 ;18b20LCD.c: 142: presence=RA4;
374 05C3 1020 bcf F504/(0+8),F504& (0+7)
375 05C4 1A05 btfsc 5,4
376 05C5 1420 bsf F504/(0+8),F504& (0+7)
377 ;18b20LCD.c: 143: delay(20);
378 05C6 3014 movlw 20
379 05C7 1283 bcf 3,5
380 05C8 1303 bcf 3,6
381 05C9 00AD movwf ?_delay
382 05CA 01AE clrf ?_delay+1
383 05CB 25A7 fcall _delay
384 ;18b20LCD.c: 145: return(presence);
385 05CC 1003 bcf 3,0
386 05CD 1820 btfsc F504/(0+8),F504& (0+7)
387 05CE 1403 bsf 3,0
388 ;18b20LCD.c: 146: }
389 05CF 0008 return
390 ;18b20LCD.c: 150: bit read_bit(void)
391 ;18b20LCD.c: 151: {
392 05D0 _read_bit
393 ;18b20LCD.c: 152: static bit i;
394 05D0 0183 clrf 3 ;select bank 0
395 05D1 1205 bcf 5,4
396 05D2 1683 bsf 3,5
397 05D3 1205 bcf 5,4
398 ;18b20LCD.c: 155: RA4 = 0; TRISA4 = 0;
399 05D4 1283 bcf 3,5
400 05D5 1205 bcf 5,4
401 05D6 1683 bsf 3,5
402 05D7 1205 bcf 5,4
403 ;18b20LCD.c: 156: TRISA4 = 1;
404 05D8 1605 bsf 5,4
405 ;18b20LCD.c: 157: asm("nop");
406 05D9 0000 nop ;#
407 ;18b20LCD.c: 158: asm("nop");
408 05DA 0000 nop ;#
409 ;18b20LCD.c: 159: asm("nop");
410 05DB 0000 nop ;#
411 ;18b20LCD.c: 160: i=RA4;
412 05DC 1283 bcf 3,5
413 05DD 10A0 bcf F507/(0+8),F507& (0+7)
414 05DE 1A05 btfsc 5,4
415 05DF 14A0 bsf F507/(0+8),F507& (0+7)
416 ;18b20LCD.c: 162: delay(3);
417 05E0 3003 movlw 3
418 05E1 00AD movwf ?_delay
419 05E2 01AE clrf ?_delay+1
420 05E3 25A7 fcall _delay
421 ;18b20LCD.c: 163: return(i);
422 05E4 1003 bcf 3,0
423 05E5 18A0 btfsc F507/(0+8),F507& (0+7)
424 05E6 1403 bsf 3,0
425 ;18b20LCD.c: 164: }
426 05E7 0008 return
427 ;18b20LCD.c: 168: void write_bit(unsigned char
+ bitval)
428 ;18b20LCD.c: 169: {
429 05E8 _write_bit
430 ; _bitval assigned to ?a_write_bit+0
431 0000 _write_bit$bitval set ?a_write_bit
432 ;_bitval stored from w
433 05E8 0183 clrf 3 ;select bank 0
434 05E9 00AC movwf ?a_write_bit
435 ;18b20LCD.c: 170: RA4 = 0; TRISA4 = 0;
436 05EA 1205 bcf 5,4
437 05EB 1683 bsf 3,5
438 05EC 1205 bcf 5,4
439 ;18b20LCD.c: 171: delay(1);
440 05ED 1283 bcf 3,5
441 05EE 01AD clrf ?_delay
442 05EF 0AAD incf ?_delay
443 05F0 01AE clrf ?_delay+1
444 05F1 25A7 fcall _delay
445 ;18b20LCD.c: 173: if (bitval==1)
446 05F2 0B2C decfsz ?a_write_bit,w
447 05F3 2DF6 goto l38
448 ;18b20LCD.c: 174: {
449 05F4 1683 bsf 3,5
450 05F5 1605 bsf 5,4
451 05F6 l38
452 ;18b20LCD.c: 177: }
453 05F6 3003 movlw 3
454 05F7 1283 bcf 3,5
455 05F8 00AD movwf ?_delay
456 05F9 01AE clrf ?_delay+1
457 05FA 25A7 fcall _delay
458 ;18b20LCD.c: 180: TRISA4 = 1;
459 05FB 1683 bsf 3,5
460 05FC 1605 bsf 5,4
461 ;18b20LCD.c: 181: }
462 05FD 1283 bcf 3,5
463 05FE 0008 return
464 ;18b20LCD.c: 209: void write_byte(unsigned char
+ val)
465 ;18b20LCD.c: 210: {
466 05FF _write_byte
467 ; _val assigned to ?a_write_byte+0
468 0000 _write_byte$val set ?a_write_byte
469 ; _temp assigned to ?a_write_byte+1
470 0000 _write_byte$temp set ?a_write_byte+1
471 ; _i assigned to ?a_write_byte+2
472 0000 _write_byte$i set ?a_write_byte+2
473 ;_val stored from w
474 05FF 0183 clrf 3 ;select bank 0
475 0600 00A9 movwf ?a_write_byte
476 ;18b20LCD.c: 211: unsigned char i;
477 0601 01AB clrf ?a_write_byte+2
478 0602 l45
479 ;18b20LCD.c: 216: {
480 ;18b20LCD.c: 217: temp=val>>i;
481 0602 0829 movf ?a_write_byte,w
482 0603 00F0 movwf btemp
483 0604 082B movf ?a_write_byte+2,w
484 0605 00F1 movwf btemp+1
485 0606 0AF1 incf btemp+1
486 0607 2E0A goto u144
487 0608 u145
488 0608 1003 bcf 3,0
489 0609 0CF0 rrf btemp
490 060A u144
491 060A 0BF1 decfsz btemp+1
492 060B 2E08 goto u145
493 060C 0870 movf btemp,w
494 060D 00AA movwf ?a_write_byte+1
495 ;18b20LCD.c: 218: temp&=0x01;
496 060E 3001 movlw 1
497 060F 05AA andwf ?a_write_byte+1
498 ;18b20LCD.c: 219: write_bit(temp);
499 0610 082A movf ?a_write_byte+1,w
500 0611 25E8 120A 118A fcall _write_bit
501 ;18b20LCD.c: 221: }
502 0614 0AAB incf ?a_write_byte+2
503 0615 3008 movlw 8
504 0616 022B subwf ?a_write_byte+2,w
505 0617 1C03 btfss 3,0
506 0618 2E02 goto l45
507 ;18b20LCD.c: 222: asm("nop");
508 0619 0000 nop ;#
509 ;18b20LCD.c: 223: asm("nop");
510 061A 0000 nop ;#
511 ;18b20LCD.c: 224: asm("nop");
512 061B 0000 nop ;#
513 ;18b20LCD.c: 225: }
514 061C 0008 return
515 ;18b20LCD.c: 226: unsigned int read (void)
516 ;18b20LCD.c: 227: {
517 061D _read
518 ; _temh assigned to ?a_read+0
519 0000 _read$temh set ?a_read
520 ; _teml assigned to ?a_read+2
521 0000 _read$teml set ?a_read+2
522 ; _value assigned to ?a_read+4
523 0000 _read$value set ?a_read+4
524 ;18b20LCD.c: 228: unsigned int temh,teml;
525 061D 3050 movlw 80
526 061E 0183 clrf 3 ;select bank 0
527 061F 00A7 movwf ?a_read+4
528 0620 3005 movlw 5
529 0621 00A8 movwf ?a_read+5
530 ;18b20LCD.c: 230: while (reset()) ;
531 0622 l49
532 0622 25B5 120A 118A fcall _reset
533 0625 1803 btfsc 3,0
534 0626 2E22 goto l49
535 ;18b20LCD.c: 231: write_byte(0XCC);
536 0627 30CC movlw -52
537 0628 25FF fcall _write_byte
538 ;18b20LCD.c: 232: write_byte(0X44);
539 0629 3044 movlw 68
540 062A 25FF fcall _write_byte
541 ;18b20LCD.c: 235: delay(25000);
542 062B 30A8 movlw 168
543 062C 00AD movwf ?_delay
544 062D 3061 movlw 97
545 062E 00AE movwf ?_delay+1
546 062F 25A7 fcall _delay
547 ;18b20LCD.c: 236: while( reset());
548 0630 l52
549 0630 25B5 120A 118A fcall _reset
550 0633 1803 btfsc 3,0
551 0634 2E30 goto l52
552 ;18b20LCD.c: 237: write_byte(0XCC);
553 0635 30CC movlw -52
554 0636 25FF fcall _write_byte
555 ;18b20LCD.c: 238: write_byte(0XBE);
556 0637 30BE movlw -66
557 0638 25FF fcall _write_byte
558 ;18b20LCD.c: 239: teml =read_byte();
559 0639 2584 fcall _read_byte
560 063A 00A5 movwf ?a_read+2
561 063B 01A6 clrf ?a_read+3
562 ;18b20LCD.c: 240: temh=read_byte();
563 063C 2584 fcall _read_byte
564 063D 00A3 movwf ?a_read
565 063E 01A4 clrf ?a_read+1
566 ;18b20LCD.c: 241: TRISA4 = 1;
567 063F 1683 bsf 3,5
568 0640 1605 bsf 5,4
569 ;18b20LCD.c: 242: symbol='+';
570 0641 302B movlw 43
571 0642 1283 bcf 3,5
572 0643 00D1 movwf _symbol
573 ;18b20LCD.c: 243: value =teml ;
574 0644 0825 movf ?a_read+2,w
575 0645 00A7 movwf ?a_read+4
576 0646 0826 movf ?a_read+3,w
577 0647 00A8 movwf ?a_read+5
578 ;18b20LCD.c: 244: value += temh<<8;
579 0648 0823 movf ?a_read,w
580 0649 00F1 movwf btemp+1
581 064A 01F0 clrf btemp
582 064B 0870 movf btemp,w
583 064C 07A7 addwf ?a_read+4
584 064D 1803 btfsc 3,0
585 064E 0AA8 incf ?a_read+5
586 064F 0871 movf btemp+1,w
587 0650 07A8 addwf ?a_read+5
588 ;18b20LCD.c: 245: if(value&0xf800){ symbol='-';
+ value=~value+1;}
589 0651 0828 movf ?a_read+5,w
590 0652 00F1 movwf btemp+1
591 0653 0827 movf ?a_read+4,w
592 0654 00F0 movwf btemp
593 0655 01F0 clrf btemp
594 0656 30F8 movlw 248
595 0657 05F1 andwf btemp+1
596 0658 0871 movf btemp+1,w
597 0659 0470 iorwf btemp,w
598 065A 1903 btfsc 3,2
599 065B 2E6C goto l55
600 065C 302D movlw 45
601 065D 00D1 movwf _symbol
602 065E 0828 movf ?a_read+5,w
603 065F 00F1 movwf btemp+1
604 0660 0827 movf ?a_read+4,w
605 0661 00F0 movwf btemp
606 0662 09F0 comf btemp
607 0663 09F1 comf btemp+1
608 0664 3001 movlw 1
609 0665 0770 addwf btemp,w
610 0666 00A7 movwf ?a_read+4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -