📄 pcf8583.lst
字号:
515 00dc be46 RSXM
516 00dd 8b8a MAR * ,AR2
517 00de b201 LARK AR2,1
518 00df 8be0 MAR *0+
519 00e0 1e80 LAC * ,14
520 00e1 9980 SACH * ,1
521 00e2 1080 LAC *
522 00e3 e308 BNZ L3
00e4 009c'
523 00e5 L4:
524 00e5 EPI0_4:
525 .line 17
526 00e5 8b89 MAR * ,AR1
527 00e6 7c04 SBRK 4
528 00e7 0090 LAR AR0,*-
529 00e8 7680 PSHD *
530 00e9 ef00 RET
531
532 .endfunc 81,000000000H,3
533
534 .sym _Pcf8583Ack,_Pcf8583Ack,44,2,0
535 .globl _Pcf8583Ack
536
537 .func 85
538 ;>>>> uchar Pcf8583Ack()
539 ******************************************************
540 * FUNCTION DEF : _Pcf8583Ack
541 ******************************************************
542 00ea _Pcf8583Ack:
543 00ea 8aa0 POPD *+
544 00eb 80a0 SAR AR0,*+
545 00ec 8180 SAR AR1,*
546 00ed b003 LARK AR0,3
547 00ee 00ea LAR AR0,*0+,AR2
548
549 .sym _sz,1,12,1,16
550 .sym _k,2,12,1,16
551 .line 3
552 ;>>>> uchar sz, k=0;
553 00ef b900 LACK 0
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:32 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
pcf8583.asm PAGE 12
554 00f0 b202 LARK AR2,2
555 00f1 8be0 MAR *0+
556 00f2 9089 SACL * ,AR1
557 .line 4
558 ;>>>> sda_1; //sda = 1
559 00f3 bf80 LACK 61439
00f4 efff
560 00f5 bc00! LDPK _MCRC
561 00f6 6e00! AND _MCRC
562 00f7 9000! SACL _MCRC
563 00f8 bf80 LACK 4112
00f9 1010
564 00fa bc00! LDPK _PFDATDIR
565 00fb 6d00! OR _PFDATDIR
566 00fc 9000! SACL _PFDATDIR
567 .line 5
568 ;>>>> Pcf8583DelayI2c();
569 00fd 7a80 CALL _Pcf8583DelayI2c
00fe 0023'
570 .line 6
571 ;>>>> sda_in; //config sda as input port
572 00ff bf80 LACK 61439
0100 efff
573 0101 bc00! LDPK _MCRC
574 0102 6e00! AND _MCRC
575 0103 9000! SACL _MCRC
576 0104 bf80 LACK 61439
0105 efff
577 0106 bc00! LDPK _PFDATDIR
578 0107 6e00! AND _PFDATDIR
579 0108 9000! SACL _PFDATDIR
580 0109 b910 LACK 16
581 010a 6d00! OR _PFDATDIR
582 010b 9000! SACL _PFDATDIR
583 .line 7
584 ;>>>> Pcf8583DelayI2c();
585 010c 7a80 CALL _Pcf8583DelayI2c
010d 0023'
586 .line 8
587 ;>>>> scl_1; //scl = 1
588 010e bf80 LACK 49151
010f bfff
589 0110 bc00! LDPK _MCRA
590 0111 6e00! AND _MCRA
591 0112 9000! SACL _MCRA
592 0113 bf80 LACK 16448
0114 4040
593 0115 bc00! LDPK _PBDATDIR
594 0116 6d00! OR _PBDATDIR
595 0117 9000! SACL _PBDATDIR
596 .line 9
597 ;>>>> Pcf8583DelayI2c();
598 0118 7a80 CALL _Pcf8583DelayI2c
0119 0023'
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:32 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
pcf8583.asm PAGE 13
599 .line 10
600 ;>>>> sz = PFDATDIR&0x10; //test data bit
601 011a b910 LACK 16
602 011b bc00! LDPK _PFDATDIR
603 011c 6e00! AND _PFDATDIR
604 011d 8b8a MAR * ,AR2
605 011e b201 LARK AR2,1
606 011f 8be0 MAR *0+
607 0120 9080 SACL *
608 .line 11
609 ;>>>> if(sz==0x10) k = 1; // if data bit is 1,k=1,failed
610 0121 1080 LAC *
611 0122 ba10 SUBK 16
612 0123 e308 BNZ L7
0124 012a'
613 0125 b901 LACK 1
614 0126 8ba0 MAR *+
615 0127 9080 SACL *
616 0128 7980 B L8
0129 012d'
617 012a L7:
618 .line 12
619 ;>>>> else k = 0; // if data bit is 0,k=0;successed
620 012a b900 LACK 0
621 012b 8ba0 MAR *+
622 012c 9080 SACL *
623 012d L8:
624 .line 13
625 ;>>>> sda_0; scl_0; // scl = sda = 0
626 012d bf80 LACK 61439
012e efff
627 012f bc00! LDPK _MCRC
628 0130 6e00! AND _MCRC
629 0131 9000! SACL _MCRC
630 0132 bf80 LACK 4096
0133 1000
631 0134 bc00! LDPK _PFDATDIR
632 0135 6d00! OR _PFDATDIR
633 0136 9000! SACL _PFDATDIR
634 0137 bf80 LACK 65519
0138 ffef
635 0139 6e00! AND _PFDATDIR
636 013a 9000! SACL _PFDATDIR
637 013b bf80 LACK 49151
013c bfff
638 013d bc00! LDPK _MCRA
639 013e 6e00! AND _MCRA
640 013f 9000! SACL _MCRA
641 0140 bf80 LACK 16384
0141 4000
642 0142 bc00! LDPK _PBDATDIR
643 0143 6d00! OR _PBDATDIR
644 0144 9000! SACL _PBDATDIR
645 0145 bf80 LACK 65471
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:32 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
pcf8583.asm PAGE 14
0146 ffbf
646 0147 6e00! AND _PBDATDIR
647 0148 9000! SACL _PBDATDIR
648 .line 14
649 ;>>>> return(k);
650 0149 6980 ZALS *
651 014a EPI0_5:
652 .line 15
653 014a 8b89 MAR * ,AR1
654 014b 7c04 SBRK 4
655 014c 0090 LAR AR0,*-
656 014d 7680 PSHD *
657 014e ef00 RET
658
659 .endfunc 99,000000000H,3
660
661 .sym _Pcf8583Stop,_Pcf8583Stop,32,2,0
662 .globl _Pcf8583Stop
663
664 .func 103
665 ;>>>> void Pcf8583Stop()
666 ******************************************************
667 * FUNCTION DEF : _Pcf8583Stop
668 ******************************************************
669 014f _Pcf8583Stop:
670 014f 8aa0 POPD *+
671 0150 80a0 SAR AR0,*+
672 0151 8180 SAR AR1,*
673 0152 b001 LARK AR0,1
674 0153 00e0 LAR AR0,*0+
675
676 .line 3
677 ;>>>> sda_0; //sda = 0
678 0154 bf80 LACK 61439
0155 efff
679 0156 bc00! LDPK _MCRC
680 0157 6e00! AND _MCRC
681 0158 9000! SACL _MCRC
682 0159 bf80 LACK 4096
015a 1000
683 015b bc00! LDPK _PFDATDIR
684 015c 6d00! OR _PFDATDIR
685 015d 9000! SACL _PFDATDIR
686 015e bf80 LACK 65519
015f ffef
687 0160 6e00! AND _PFDATDIR
688 0161 9000! SACL _PFDATDIR
689 .line 4
690 ;>>>> Pcf8583DelayI2c();
691 0162 7a80 CALL _Pcf8583DelayI2c
0163 0023'
692 .line 5
693 ;>>>> scl_1; //scl = 1
694 0164 bf80 LACK 49151
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:32 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
pcf8583.asm PAGE 15
0165 bfff
695 0166 bc00! LDPK _MCRA
696 0167 6e00! AND _MCRA
697 0168 9000! SACL _MCRA
698 0169 bf80 LACK 16448
016a 4040
699 016b bc00! LDPK _PBDATDIR
700 016c 6d00! OR _PBDATDIR
701 016d 9000! SACL _PBDATDIR
702 .line 6
703 ;>>>> Pcf8583DelayI2c();
704 016e 7a80 CALL _Pcf8583DelayI2c
016f 0023'
705 .line 7
706 ;>>>> sda_1; //sda = 1
707 0170 bf80 LACK 61439
0171 efff
708 0172 bc00! LDPK _MCRC
709 0173 6e00! AND _MCRC
710 0174 9000! SACL _MCRC
711 0175 bf80 LACK 4112
0176 1010
712 0177 bc00! LDPK _PFDATDIR
713 0178 6d00! OR _PFDATDIR
714 0179 9000! SACL _PFDATDIR
715 017a EPI0_6:
716 .line 8
717 017a 7c02 SBRK 2
718 017b 0090 LAR AR0,*-
719 017c 7680 PSHD *
720 017d ef00 RET
721
722 .endfunc 110,000000000H,1
723
724 .sym _WriteByte,_WriteByte,44,2,0
725 .globl _WriteByte
726
727 .func 114
728 ;>>>> uchar WriteByte(uchar addr,uchar data)
729 ******************************************************
730 * FUNCTION DEF : _WriteByte
731 ******************************************************
732 017e _WriteByte:
733
734 0000 LF7 .set 0
735
736 017e 8aa0 POPD *+
737 017f 80a0 SAR AR0,*+
738 0180 8180 SAR AR1,*
739 0181 b002 LARK AR0,2
740 0182 00e0 LAR AR0,*0+
741
742 .sym _addr,-3+LF7,12,9,16
743 .sym _data,-4+LF7,12,9,16
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Thu Dec 8 11:06:32 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
pcf8583.asm PAGE 16
744 .sym _k,1,12,1,16
745 .line 2
746 ;>>>> uchar k;
747 .line 4
748 ;>>>> Pcf8583Start(); //start i2c bus
749 0183 7a80 CALL _Pcf8583Start
0184 0040'
750 .line 5
751 ;>>>> Pcf8583sendByte(0xa0); //send control byte
752 0185 b9a0 LACK 160
753 0186 90a0 SACL *+
754 0187 7a80 CALL _Pcf8583sendByte
0188 007f'
755 0189 8b90 MAR *-
756 .line 6
757 ;>>>> k = Pcf8583Ack();
758 018a 7a80 CALL _Pcf8583Ack
018b 00ea'
759 018c 8b8a MAR * ,AR2
760 018d b201 LARK AR2,1
761 018e 8be0 MAR *0+
762 018f 9080 SACL *
763 .line 7
764 ;>>>> if(k==0)Pcf8583sendByte(addr); //send out addr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -