📄 main2.lst
字号:
479 ;main2.c: 266: }
480 0468 0008 return ;uses W
481 0469 _I2C_Write
482 ; _dat assigned to ?a_I2C_Write+0
483 0000 _I2C_Write$dat set ?a_I2C_Write
484 ; _bit_count assigned to ?a_I2C_Write+1
485 0000 _I2C_Write$bit_count set ?a_I2C_Write+1
486 ;_dat stored from w
487 0469 0183 clrf 3 ;select bank 0
488 046A 00AF movwf ?a_I2C_Write
489 ;main2.c: 199: void I2C_Write(char dat)
490 046B 1206 bcf 6,4
491 ;main2.c: 203: for(bit_count=0;bit_count<8;bit_
+ count++)
492 046C 01B0 clrf ?a_I2C_Write+1
493 046D l26
494 ;main2.c: 204: {
495 046D 0830 movf ?a_I2C_Write+1,w
496 046E 00F0 movwf btemp
497 046F 082F movf ?a_I2C_Write,w
498 0470 00F2 movwf btemp+2
499 0471 01F3 clrf btemp+3
500 0472 0AF0 incf btemp
501 0473 2C77 goto u64
502 0474 u65
503 0474 1003 bcf 3,0
504 0475 0DF2 rlf btemp+2
505 0476 0DF3 rlf btemp+3
506 0477 u64
507 0477 0BF0 decfsz btemp
508 0478 2C74 goto u65
509 0479 1FF2 btfss btemp+2,7
510 047A 2C7D goto l29
511 ;main2.c: 206: {
512 047B 1586 bsf 6,3
513 ;main2.c: 208: }
514 047C 2C7E goto l30
515 047D l29
516 ;main2.c: 209: else
517 047D 1186 bcf 6,3
518 047E l30
519 ;main2.c: 212: }
520 047E 0000 nop ;#
521 047F 0000 nop ;#
522 0480 0000 nop ;#
523 0481 0000 nop ;#
524 0482 0000 nop ;#
525 ;main2.c: 214: RB4 = 1;
526 0483 1606 bsf 6,4
527 ;main2.c: 215: ; asm("Nop"); asm("Nop"); asm("N
+ op"); asm("Nop"); asm("Nop");
528 0484 0000 nop ;#
529 0485 0000 nop ;#
530 0486 0000 nop ;#
531 0487 0000 nop ;#
532 0488 0000 nop ;#
533 ;main2.c: 216: RB4 = 0;
534 0489 1206 bcf 6,4
535 048A 0AB0 incf ?a_I2C_Write+1
536 048B 3008 movlw 8
537 048C 0230 subwf ?a_I2C_Write+1,w
538 048D 1C03 btfss 3,0
539 048E 2C6D goto l26
540 ;main2.c: 217: }
541 048F 0000 nop ;#
542 0490 0000 nop ;#
543 0491 0000 nop ;#
544 0492 0000 nop ;#
545 0493 0000 nop ;#
546 ;main2.c: 219: }
547 0494 0008 return ;W free
548 0495 _I2C_Delay
549 ; _i assigned to ?a_I2C_Delay+0
550 0000 _I2C_Delay$i set ?a_I2C_Delay
551 ; _j assigned to ?a_I2C_Delay+2
552 0000 _I2C_Delay$j set ?a_I2C_Delay+2
553 ;main2.c: 127: void I2C_Delay(void)
554 0495 3004 movlw 4
555 0496 0183 clrf 3 ;select bank 0
556 0497 00AF movwf ?a_I2C_Delay
557 0498 01B0 clrf ?a_I2C_Delay+1
558 0499 l16
559 ;main2.c: 131: {
560 0499 3008 movlw 8
561 049A 00B1 movwf ?a_I2C_Delay+2
562 049B 01B2 clrf ?a_I2C_Delay+3
563 049C l19
564 049C 08B1 movf ?a_I2C_Delay+2
565 049D 1903 btfsc 3,2
566 049E 03B2 decf ?a_I2C_Delay+3
567 049F 03B1 decf ?a_I2C_Delay+2
568 04A0 0832 movf ?a_I2C_Delay+3,w
569 04A1 0431 iorwf ?a_I2C_Delay+2,w
570 04A2 1D03 btfss 3,2
571 04A3 2C9C goto l19
572 04A4 08AF movf ?a_I2C_Delay
573 04A5 1903 btfsc 3,2
574 04A6 03B0 decf ?a_I2C_Delay+1
575 04A7 03AF decf ?a_I2C_Delay
576 04A8 0830 movf ?a_I2C_Delay+1,w
577 04A9 042F iorwf ?a_I2C_Delay,w
578 04AA 1903 btfsc 3,2
579 04AB 0008 return
580 04AC 2C99 goto l16
581 04AD _I2C_Init
582 ;main2.c: 142: void I2C_Init(void)
583 04AD 1683 bsf 3,5
584 04AE 1303 bcf 3,6 ;carry unused
585 04AF 1206 bcf 6,4
586 ;main2.c: 149: TRISB3=0;
587 04B0 1186 bcf 6,3
588 ;main2.c: 150: RB3 = 1;
589 04B1 1283 bcf 3,5
590 04B2 1586 bsf 6,3
591 ;main2.c: 151: RB4 = 1;
592 04B3 1606 bsf 6,4
593 ;main2.c: 152: I2C_Delay();
594 04B4 2C95 ljmp _I2C_Delay
595 04B5 _I2C_Start
596 ;main2.c: 164: void I2C_Start()
597 04B5 0183 clrf 3 ;select bank 0
598 04B6 1586 bsf 6,3
599 ;main2.c: 167: ; asm("Nop"); asm("Nop"); asm("N
+ op"); asm("Nop"); asm("Nop");
600 04B7 0000 nop ;#
601 04B8 0000 nop ;#
602 04B9 0000 nop ;#
603 04BA 0000 nop ;#
604 04BB 0000 nop ;#
605 ;main2.c: 168: RB4 = 1;
606 04BC 1606 bsf 6,4
607 ;main2.c: 169: ; asm("Nop"); asm("Nop"); asm("N
+ op"); asm("Nop"); asm("Nop");
608 04BD 0000 nop ;#
609 04BE 0000 nop ;#
610 04BF 0000 nop ;#
611 04C0 0000 nop ;#
612 04C1 0000 nop ;#
613 ;main2.c: 170: RB3 = 0;
614 04C2 1186 bcf 6,3
615 ;main2.c: 171: ; asm("Nop"); asm("Nop"); asm("N
+ op"); asm("Nop"); asm("Nop");
616 04C3 0000 nop ;#
617 04C4 0000 nop ;#
618 04C5 0000 nop ;#
619 04C6 0000 nop ;#
620 04C7 0000 nop ;#
621 ;main2.c: 172: RB4 = 0;
622 04C8 1206 bcf 6,4
623 ;main2.c: 173: ; asm("Nop"); asm("Nop"); asm("N
+ op"); asm("Nop"); asm("Nop");
624 04C9 0000 nop ;#
625 04CA 0000 nop ;#
626 04CB 0000 nop ;#
627 04CC 0000 nop ;#
628 04CD 0000 nop ;#
629 ;main2.c: 174: }
630 04CE 0008 return ;W free
631 04CF _I2C_Puts
632 ; _SlaveAddr assigned to ?a_I2C_Puts+0
633 0000 _I2C_Puts$SlaveAddr set ?a_I2C_Puts
634 ; _i assigned to ?a_I2C_Puts+1
635 0000 _I2C_Puts$i set ?a_I2C_Puts+1
636 ; _a assigned to ?a_I2C_Puts+2
637 0000 _I2C_Puts$a set ?a_I2C_Puts+2
638 ;_SlaveAddr stored from w
639 04CF 0183 clrf 3 ;select bank 0
640 04D0 00A5 movwf ?a_I2C_Puts
641 ;main2.c: 304: unsigned char I2C_Puts( unsigned
+ char SlaveAddr, unsigned int SubAddr,
642 04D1 08A9 movf ?_I2C_Puts+4
643 04D2 1903 btfsc 3,2
644 04D3 3400 retlw 0
645 ;main2.c: 314: a[0] = (SlaveAddr);
646 04D4 0825 movf ?a_I2C_Puts,w
647 04D5 00A7 movwf ?a_I2C_Puts+2
648 ;main2.c: 316: if ( SubMod > 2 )
649 04D6 3003 movlw 3
650 04D7 0227 subwf ?_I2C_Puts+2,w
651 04D8 1C03 btfss 3,0
652 04D9 2CE5 goto l42
653 ;main2.c: 317: SubMod = 2;
654 04DA 3002 movlw 2
655 04DB 00A7 movwf ?_I2C_Puts+2
656 ;main2.c: 319: switch ( SubMod )
657 04DC 2CE5 goto l42
658 04DD l43
659 ;main2.c: 320: {
660 ;main2.c: 322: a[1] = SubAddr;
661 04DD 0825 movf ?_I2C_Puts,w
662 04DE 00A8 movwf ?a_I2C_Puts+3
663 ;main2.c: 323: break;
664 04DF 2CEC goto l41
665 04E0 l44
666 ;main2.c: 324: case 2:
667 ;main2.c: 325: a[1] = SubAddr >> 8;
668 04E0 0826 movf ?_I2C_Puts+1,w
669 04E1 00A8 movwf ?a_I2C_Puts+3
670 ;main2.c: 326: a[2] = SubAddr;
671 04E2 0825 movf ?_I2C_Puts,w
672 04E3 00A9 movwf ?a_I2C_Puts+4
673 ;main2.c: 327: break;
674 04E4 2CEC goto l41
675 04E5 l42
676 04E5 0827 movf ?_I2C_Puts+2,w
677 04E6 3A01 xorlw 1
678 04E7 1903 btfsc 3,2
679 04E8 2CDD goto l43
680 04E9 3A03 xorlw 3
681 04EA 1903 btfsc 3,2
682 04EB 2CE0 goto l44
683 04EC l41
684 ;main2.c: 330: SubMod++;
685 04EC 0AA7 incf ?_I2C_Puts+2
686 ;main2.c: 331: I2C_Start();
687 04ED 24B5 fcall _I2C_Start
688 ;main2.c: 332: I2C_Delay();
689 04EE 2495 fcall _I2C_Delay
690 ;main2.c: 333: for ( i=0; i<SubMod; i++ )
691 04EF 01A6 clrf ?a_I2C_Puts+1
692 04F0 l48
693 04F0 0827 movf ?_I2C_Puts+2,w
694 04F1 0226 subwf ?a_I2C_Puts+1,w
695 04F2 1803 btfsc 3,0
696 04F3 2D0E goto l52
697 ;main2.c: 334: {
698 04F4 0826 movf ?a_I2C_Puts+1,w
699 04F5 3E27 addlw ?a_I2C_Puts+2
700 04F6 0084 movwf 4
701 04F7 1383 bcf 3,7
702 04F8 0800 movf 0,w
703 04F9 2469 fcall _I2C_Write
704 ;main2.c: 336: while( I2C_GetAck() )
705 04FA 244C fcall _I2C_GetAck
706 04FB 3800 iorlw 0
707 04FC 1903 btfsc 3,2
708 04FD 2D00 goto l51
709 ;main2.c: 337: {
710 04FE 2433 fcall _I2C_Stop
711 ;main2.c: 339: return 0;
712 04FF 3400 retlw 0
713 0500 l51
714 0500 0AA6 incf ?a_I2C_Puts+1
715 0501 2CF0 goto l48
716 ;main2.c: 340: }
717 0502 l53
718 ;main2.c: 344: {
719 0502 0AA8 incf ?_I2C_Puts+3
720 0503 0328 decf ?_I2C_Puts+3,w
721 0504 0084 movwf 4
722 0505 1383 bcf 3,7
723 0506 0800 movf 0,w
724 0507 2469 fcall _I2C_Write
725 ;main2.c: 346: if ( I2C_GetAck() )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -