📄 access.ls1
字号:
0038 758300 667 MOV DPH,#00H
003B 120000 F 668 LCALL ?C?CLDOPTR
003E FF 669 MOV R7,A
003F 120000 F 670 LCALL _I2CSendByte
0042 0500 F 671 INC n?245
0044 80E2 672 SJMP ?C0008
0046 673 ?C0009:
674 ;
675 ; I2CSendStop();
676 ; SOURCE LINE # 154
0046 120000 F 677 LCALL I2CSendStop
678 ; }
679 ; SOURCE LINE # 155
680 ; }
681 ; SOURCE LINE # 156
0049 682 ?C0011:
0049 22 683 RET
684 ; END OF _I2CWrite
685
686 ;
687 ;
688 ; unsigned char I2CGetByte(unsigned char ack)
689
---- 690 RSEG ?PR?_I2CGetByte?ACCESS
0000 691 _I2CGetByte:
692 USING 0
693 ; SOURCE LINE # 159
694 ;---- Variable 'ack?347' assigned to Register 'R7' ----
695 ; {
696 ; SOURCE LINE # 160
697 ; unsigned char r, m;
698 ;
699 ; r = 0;
700 ; SOURCE LINE # 163
701 ;---- Variable 'r?348' assigned to Register 'R6' ----
0000 E4 702 CLR A
0001 FE 703 MOV R6,A
704 ;
705 ; #if (MCU_TYPE == MCU_STD8052)
706 ; for (m = 0; m < 8; m++) // Each bit at a time, MSB first
707 ; SOURCE LINE # 166
708 ;---- Variable 'm?349' assigned to Register 'R5' ----
A51 MACRO ASSEMBLER ACCESS 04/11/2004 15:34:13 PAGE 12
0002 FD 709 MOV R5,A
0003 710 ?C0012:
711 ; {
712 ; SOURCE LINE # 167
713 ; bIIC_SCL = 1;
714 ; SOURCE LINE # 168
0003 D292 715 SETB bIIC_SCL
716 ; BitDly(); // Delay
717 ; SOURCE LINE # 169
0005 120000 F 718 LCALL BitDly
719 ;
720 ; r = (r << 1) | bIIC_SDA;
721 ; SOURCE LINE # 171
0008 EE 722 MOV A,R6
0009 25E0 723 ADD A,ACC
000B FC 724 MOV R4,A
000C A293 725 MOV C,bIIC_SDA
000E E4 726 CLR A
000F 33 727 RLC A
0010 4C 728 ORL A,R4
0011 FE 729 MOV R6,A
730 ;
731 ; bIIC_SCL = 0;
732 ; SOURCE LINE # 173
0012 C292 733 CLR bIIC_SCL
734 ; BitDly(); // Delay
735 ; SOURCE LINE # 174
0014 120000 F 736 LCALL BitDly
737 ; }
738 ; SOURCE LINE # 175
0017 0D 739 INC R5
0018 BD08E8 740 CJNE R5,#08H,?C0012
001B 741 ?C0013:
742 ;
743 ; // Send ACK according to 'ack'
744 ; bIIC_SDA = (bit)(ack & 0x01);
745 ; SOURCE LINE # 178
001B EF 746 MOV A,R7
001C 13 747 RRC A
748 ; BitDly(); // Delay
749 ; SOURCE LINE # 179
750 ;
751 ; bIIC_SCL = 1;
752 ; SOURCE LINE # 181
753 ; BitDly(); // Delay
754 ; SOURCE LINE # 182
755 ;
756 ; bIIC_SCL = 0;
757 ; SOURCE LINE # 184
001D 120000 F 758 LCALL L?0159
759 ; BitDly(); // Delay
760 ; SOURCE LINE # 185
0020 120000 F 761 LCALL BitDly
762 ;
763 ; bIIC_SDA = 1;
764 ; SOURCE LINE # 187
0023 D293 765 SETB bIIC_SDA
766 ;
767 ; #else
768 ;
769 ; for (m = 0; m < 8; m++) // Each bit at a time, MSB first
770 ; {
771 ; MCU_WriteI2cScl(_HIGH);
772 ; BitDly(); // Delay
773 ; r = (r << 1) | MCU_ReadI2cSda();
774 ; MCU_WriteI2cScl(_LOW);
A51 MACRO ASSEMBLER ACCESS 04/11/2004 15:34:13 PAGE 13
775 ; BitDly(); // Delay
776 ; }
777 ; // Send ACK according to 'ack'
778 ; MCU_WriteI2cSda((bit)(ack & 0x01));
779 ; BitDly(); // Delay
780 ; MCU_WriteI2cScl(_HIGH);
781 ; BitDly(); // Delay
782 ; MCU_WriteI2cScl(_LOW);
783 ; BitDly(); // Delay
784 ; MCU_WriteI2cSda(_HIGH);
785 ;
786 ; #endif
787 ;
788 ; return (r);
789 ; SOURCE LINE # 210
0025 AF06 790 MOV R7,AR6
791 ; }
792 ; SOURCE LINE # 211
0027 793 ?C0015:
0027 22 794 RET
795 ; END OF _I2CGetByte
796
797 ;
798 ; void I2CSendByte(unsigned char send)
799
---- 800 RSEG ?PR?_I2CSendByte?ACCESS
0000 801 _I2CSendByte:
802 USING 0
803 ; SOURCE LINE # 213
804 ;---- Variable 'send?450' assigned to Register 'R7' ----
805 ; {
806 ; SOURCE LINE # 214
807 ; unsigned char m;
808 ;
809 ; #if (MCU_TYPE == MCU_STD8052)
810 ;
811 ; for (m = 0; m < 8; m++)
812 ; SOURCE LINE # 219
813 ;---- Variable 'm?451' assigned to Register 'R6' ----
0000 E4 814 CLR A
0001 FE 815 MOV R6,A
0002 816 ?C0016:
817 ; {
818 ; SOURCE LINE # 220
819 ; bIIC_SDA = (bit)(send & 0x80); // Send each bit, MSB first
820 ; SOURCE LINE # 221
0002 EF 821 MOV A,R7
0003 33 822 RLC A
823 ; BitDly();
824 ; SOURCE LINE # 222
825 ;
826 ; bIIC_SCL = 1;
827 ; SOURCE LINE # 224
828 ; BitDly();
829 ; SOURCE LINE # 225
830 ;
831 ; bIIC_SCL = 0;
832 ; SOURCE LINE # 227
0004 120000 F 833 LCALL L?0159
834 ;
835 ; send = send << 1;
836 ; SOURCE LINE # 229
0007 EF 837 MOV A,R7
0008 25E0 838 ADD A,ACC
000A FF 839 MOV R7,A
840 ; }
A51 MACRO ASSEMBLER ACCESS 04/11/2004 15:34:13 PAGE 14
841 ; SOURCE LINE # 230
000B 0E 842 INC R6
000C BE08F3 843 CJNE R6,#08H,?C0016
000F 844 ?C0017:
845 ;
846 ; bIIC_SDA = 1;
847 ; SOURCE LINE # 232
000F D293 848 SETB bIIC_SDA
849 ; bIIC_SCL = 1;
850 ; SOURCE LINE # 233
851 ; BitDly();
852 ; SOURCE LINE # 234
853 ;
854 ; bIIC_SCL = 0;
855 ; SOURCE LINE # 236
0011 120000 F 856 LCALL L?0160
857 ; BitDly();
858 ; SOURCE LINE # 237
0014 020000 F 859 LJMP BitDly
860 ; END OF _I2CSendByte
861
862 ;
863 ; #else
864 ;
865 ; for (m = 0; m < 8; m++)
866 ; {
867 ; MCU_WriteI2cSda((bit)(send & 0x80)); // Send each bit, MSB first
868 ; BitDly();
869 ; MCU_WriteI2cScl(_HIGH);
870 ; BitDly();
871 ; MCU_WriteI2cScl(_LOW);;
872 ; send = send << 1;
873 ; }
874 ; MCU_WriteI2cSda(_HIGH);
875 ; MCU_WriteI2cScl(_HIGH);
876 ; BitDly();
877 ; MCU_WriteI2cScl(_LOW);;
878 ; BitDly();
879 ;
880 ; #endif
881 ; }
882 ;
883 ; void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
884
---- 885 RSEG ?PR?_I2CSendAddr?ACCESS
0000 886 _I2CSendAddr:
887 USING 0
888 ; SOURCE LINE # 259
889 ;---- Variable 'addr?552' assigned to Register 'R6' ----
0000 AE07 890 MOV R6,AR7
891 ;---- Variable 'rd?554' assigned to Register 'R3' ----
892 ;---- Variable 'index?553' assigned to Register 'R5' ----
893 ; {
894 ; SOURCE LINE # 260
895 ; #if (MCU_TYPE == MCU_STD8052)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -