📄 mdfan.lst
字号:
507 0000D0 0E00(2) ret
508 0000D1
509 0000D1 I2Cstop:
510 0000D1 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
511 0000D2 42D1(1) bclr SCL
512 0000D3 43D1(1) bclr SDA
513 0000D4 C11B(2) call Delay5us
514 0000D5 4AD1(1) bset SCL
515 0000D6 C11B(2) call Delay5us
516 0000D7 C11B(2) call Delay5us
517 0000D8 4BD1(1) bset SDA
518 0000D9 C11B(2) call Delay5us
519 0000DA C11B(2) call Delay5us
520 0000DB 0E00(2) ret
521 0000DC
522 0000DC I2CoutNAck:
523 0000DC I2Cout1:
524 0000DC 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
525 0000DD 4BD1(1) bset SDA
526 0000DE C11B(2) call Delay5us
527 0000DF 4AD1(1) bset SCL
528 0000E0 C11B(2) call Delay5us
529 0000E1 C11B(2) call Delay5us
530 0000E2 42D1(1) bclr SCL
531 0000E3 C11B(2) call Delay5us
532 0000E4 43D1(1) bclr SDA
533 0000E5 C11B(2) call Delay5us
534 0000E6 0E00(2) ret
535 0000E7
536 0000E7 I2CoutAck:
537 0000E7 I2Cout0:
538 0000E7 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
539 0000E8 43D1(1) bclr SDA
540 0000E9 C11B(2) call Delay5us
541 0000EA 4AD1(1) bset SCL
542 0000EB C11B(2) call Delay5us
543 0000EC C11B(2) call Delay5us
544 0000ED 42D1(1) bclr SCL
545 0000EE C11B(2) call Delay5us
546 0000EF 43D1(1) bclr SDA
547 0000F0 C11B(2) call Delay5us
548 0000F1 0E00(2) ret
549 0000F2
550 0000F2 I2CwaitAck:
551 0000F2 43C1(1) bclr SDA_IoSet ;set IO_SDA is Input port
552 0000F3 C11B(2) call Delay5us
553 0000F4 4AD1(1) bset SCL
554 0000F5 C11B(2) call Delay5us
555 0000F6 C11B(2) call Delay5us
556 0000F7 401A(1) bclr I2CackFlag
557 0000F8 5BD1(1+S) bts1 SDA
558 0000F9 481A(1) bset I2CackFlag
559 0000FA 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
560 0000FB 42D1(1) bclr SCL
561 0000FC C11B(2) call Delay5us
562 0000FD 0E00(2) ret
563 0000FE
564 0000FE
565 0000FE ;======================
566 0000FE I2CwriteBit:
567 0000FE 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
568 0000FF 0B1B(1) rlcm DataBuffer
569 000100 5286(1+S) bts0 FC
570 000101 4BD1(1) bset SDA
571 000102 5A86(1+S) bts1 FC
572 000103 43D1(1) bclr SDA
573 000104 0000(1) nop
574 000105 0000(1) nop
575 000106 ; call Delay5us
576 000106 4AD1(1) bset SCL
577 000107 C11B(2) call Delay5us
578 000108 C11B(2) call Delay5us
579 000109 42D1(1) bclr SCL
580 00010A C11B(2) call Delay5us
581 00010B 0E00(2) ret
582 00010C ;-----------------------------------------------
583 00010C
584 00010C I2CreadBit:
585 00010C 43C1(1) bclr SDA_IoSet ;set IO_SDA is Input port
586 00010D C11B(2) call Delay5us
587 00010E 4AD1(1) bset SCL
588 00010F C11B(2) call Delay5us
589 000110 C11B(2) call Delay5us
590 000111 4286(1) bclr FC
591 000112 53D1(1+S) bts0 SDA
592 000113 4A86(1) bset FC
593 000114 42D1(1) bclr SCL
594 000115 0B1B(1) rlcm DataBuffer
595 000116 C11B(2) call Delay5us
596 000117 0E00(2) ret
597 000118
598 000118 I2Cunjoined:
599 000118 491A(1) bset I2CjoinErrorFlag
600 000119 C0D1(2) call I2Cstop ;Stop
601 00011A
602 00011A 0E00(2) ret
603 00011B
604 00011B ;---------------------------
605 00011B Delay5us:
606 00011B ; nop
607 00011B 0000(1) nop
608 00011C 0E00(2) ret
609 00011D ;=========================================================
610 00011D
611 00011D Save_TestCode:
612 00011D SaveTestData:
613 00011D 421A(1) bclr I2Csave
614 00011E 2B1D(1) clr ErrorCount
615 00011F SaveTestData_loop:
616 00011F 511A(1+S) bts0 I2CjoinErrorFlag
617 000120 0E00(2) ret
618 000121 clrwdt
619 000121 2D5A(1) MOV A, #5AH
620 000122 1FCC(1) MOV WDTR, A
621 000123 C0C5(2) call I2Cstart ;Start
622 000124 C0DC(2) call I2Cout1 ;Device address
623 000125 C0E7(2) call I2Cout0
624 000126 C0DC(2) call I2Cout1
625 000127 C0E7(2) call I2Cout0
626 000128 C0E7(2) call I2Cout0
627 000129 C0E7(2) call I2Cout0
628 00012A C0E7(2) call I2Cout0
629 00012B C0E7(2) call I2Cout0 ;R/W
630 00012C
631 00012C C0F2(2) call I2CwaitAck ;wait ACK
632 00012D 581A(1+S) bts1 I2CackFlag
633 00012E 8158(2) jmp SaveTestDataError
634 00012F
635 00012F C0E7(2) call I2Cout0 ;Word address
636 000130 C0E7(2) call I2Cout0
637 000131 C0E7(2) call I2Cout0
638 000132 C0DC(2) call I2Cout1
639 000133 C0E7(2) call I2Cout0
640 000134 C0E7(2) call I2Cout0
641 000135 C0E7(2) call I2Cout0
642 000136 C0E7(2) call I2Cout0
643 000137
644 000137 C0F2(2) call I2CwaitAck ;wait ACK
645 000138 581A(1+S) bts1 I2CackFlag
646 000139 8158(2) jmp SaveTestDataError
647 00013A
648 00013A 1E1E(1) mov A, test_data0
649 00013B 1F1B(1) mov DataBuffer,A
650 00013C C0FE(2) call I2CwriteBit ;Write Data
651 00013D C0FE(2) call I2CwriteBit
652 00013E C0FE(2) call I2CwriteBit
653 00013F C0FE(2) call I2CwriteBit
654 000140 C0FE(2) call I2CwriteBit
655 000141 C0FE(2) call I2CwriteBit
656 000142 C0FE(2) call I2CwriteBit
657 000143 C0FE(2) call I2CwriteBit
658 000144
659 000144 C0F2(2) call I2CwaitAck ;wait ACK
660 000145 581A(1+S) bts1 I2CackFlag
661 000146 8158(2) jmp SaveTestDataError
662 000147
663 000147 1E1F(1) mov A, test_data1
664 000148 1F1B(1) mov DataBuffer,A
665 000149 C0FE(2) call I2CwriteBit ;Write Data
666 00014A C0FE(2) call I2CwriteBit
667 00014B C0FE(2) call I2CwriteBit
668 00014C C0FE(2) call I2CwriteBit
669 00014D C0FE(2) call I2CwriteBit
670 00014E C0FE(2) call I2CwriteBit
671 00014F C0FE(2) call I2CwriteBit
672 000150 C0FE(2) call I2CwriteBit
673 000151
674 000151 C0F2(2) call I2CwaitAck ;wait ACK
675 000152 581A(1+S) bts1 I2CackFlag
676 000153 8158(2) jmp SaveTestDataError
677 000154
678 000154 C0D1(2) call I2Cstop ;Stop
679 000155 clrwdt
680 000155 2D5A(1) MOV A, #5AH
681 000156 1FCC(1) MOV WDTR, A
682 000157 0E00(2) ret
683 000158
684 000158 SaveTestDataError:
685 000158 161D(1+S) incms ErrorCount
686 000159 0000(1) nop
687 00015A 2D0A(1) mov A,#10
688 00015B 221D(1) sub A,ErrorCount
689 00015C 5A86(1+S) bts1 FC
690 00015D 491A(1) bset I2CjoinErrorFlag
691 00015E 811F(2) jmp SaveTestData_loop
692 00015F
693 00015F ;*****************************************************************
694 00015F ;Function:Load_AccessCode
695 00015F ;Description:Read Access Code from EEPROM via I2C bus.
696 00015F ;input:none
697 00015F ;output:local_access_code0,local_access_code1
698 00015F ;*****************************************************************
699 00015F Load_TestCode:
700 00015F ReloadTestData:
701 00015F 2B1D(1) clr ErrorCount
702 000160 ReloadTestData_Loop:
703 000160 511A(1+S) bts0 I2CjoinErrorFlag
704 000161 0E00(2) ret
705 000162 clrwdt
706 000162 2D5A(1) MOV A, #5AH
707 000163 1FCC(1) MOV WDTR, A
708 000164 C0C5(2) call I2Cstart ;Start
709 000165 C0DC(2) call I2Cout1 ;Device address
710 000166 C0E7(2) call I2Cout0
711 000167 C0DC(2) call I2Cout1
712 000168 C0E7(2) call I2Cout0
713 000169 C0E7(2) call I2Cout0
714 00016A C0E7(2) call I2Cout0
715 00016B C0E7(2) call I2Cout0
716 00016C C0E7(2) call I2Cout0 ;R/W
717 00016D
718 00016D C0F2(2) call I2CwaitAck ;wait ACK
719 00016E 581A(1+S) bts1 I2CackFlag
720 00016F 81A4(2) jmp ReloadTestDataError
721 000170 2B1D(1) clr ErrorCount
722 000171
723 000171 C0E7(2) call I2Cout0 ;Word address
724 000172 C0E7(2) call I2Cout0
725 000173 C0E7(2) call I2Cout0
726 000174 C0DC(2) call I2Cout1
727 000175 C0E7(2) call I2Cout0
728 000176 C0E7(2) call I2Cout0
729 000177 C0E7(2) call I2Cout0
730 000178 C0E7(2) call I2Cout0
731 000179
732 000179 C0F2(2) call I2CwaitAck ;wait ACK
733 00017A 581A(1+S) bts1 I2CackFlag
734 00017B 81A4(2) jmp ReloadTestDataError
735 00017C 2B1D(1) clr ErrorCount
736 00017D
737 00017D C0C5(2) call I2Cstart
738 00017E C0DC(2) call I2Cout1 ;Device address
739 00017F C0E7(2) call I2Cout0
740 000180 C0DC(2) call I2Cout1
741 000181 C0E7(2) call I2Cout0
742 000182 C0E7(2) call I2Cout0
743 000183 C0E7(2) call I2Cout0
744 000184 C0E7(2) call I2Cout0
745 000185 C0DC(2) call I2Cout1 ;R/W
746 000186
747 000186 C0F2(2) call I2CwaitAck ;wait ACK
748 000187 581A(1+S) bts1 I2CackFlag
749 000188 81A4(2) jmp ReloadTestDataError
750 000189 2B1D(1) clr ErrorCount
751 00018A
752 00018A C10C(2) call I2CreadBit ;Read Data
753 00018B C10C(2) call I2CreadBit
754 00018C C10C(2) call I2CreadBit
755 00018D C10C(2) call I2CreadBit
756 00018E C10C(2) call I2CreadBit
757 00018F C10C(2) call I2CreadBit
758 000190 C10C(2) call I2CreadBit
759 000191 C10C(2) call I2CreadBit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -