📄 t.ls1
字号:
0012 00 934 NOP
935 ; SCL=0;
936 ; SOURCE LINE # 305
0013 C2B4 937 CLR P3_4
938 ; _nop_();
939 ; SOURCE LINE # 306
0015 00 940 NOP
941 ; return(ck);
942 ; SOURCE LINE # 307
0016 A200 F 943 MOV C,ck?750
944 ; }
945 ; SOURCE LINE # 308
0018 946 ?C0050:
0018 22 947 RET
948 ; END OF I2C_ReceiveAck
949
950 ;
951 ;
952 ; void I2C_SendAck()
953
---- 954 RSEG ?PR?I2C_SendAck?T
0000 955 I2C_SendAck:
956 ; SOURCE LINE # 311
957 ;
958 ; {
959 ; SOURCE LINE # 313
960 ; SDA=0;
961 ; SOURCE LINE # 314
0000 C2B5 962 CLR P3_5
963 ; _nop_();
964 ; SOURCE LINE # 315
0002 00 965 NOP
966 ; _nop_();
967 ; SOURCE LINE # 316
0003 00 968 NOP
969 ; SCL=1;
970 ; SOURCE LINE # 317
0004 D2B4 971 SETB P3_4
972 ; delay(); //remain
973 ; SOURCE LINE # 318
0006 120000 F 974 LCALL delay
975 ; SCL=0;
976 ; SOURCE LINE # 319
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 16
0009 C2B4 977 CLR P3_4
978 ; _nop_();
979 ; SOURCE LINE # 320
000B 00 980 NOP
981 ; _nop_();
982 ; SOURCE LINE # 321
000C 00 983 NOP
984 ; }
985 ; SOURCE LINE # 322
000D 22 986 RET
987 ; END OF I2C_SendAck
988
989 ;
990 ; void I2C_SendNoAck()
991
---- 992 RSEG ?PR?I2C_SendNoAck?T
0000 993 I2C_SendNoAck:
994 ; SOURCE LINE # 324
995 ;
996 ; {
997 ; SOURCE LINE # 326
998 ; SDA=1;
999 ; SOURCE LINE # 327
0000 D2B5 1000 SETB P3_5
1001 ; _nop_();
1002 ; SOURCE LINE # 328
0002 00 1003 NOP
1004 ; _nop_();
1005 ; SOURCE LINE # 329
0003 00 1006 NOP
1007 ; SCL=1;
1008 ; SOURCE LINE # 330
0004 D2B4 1009 SETB P3_4
1010 ; delay(); //remain
1011 ; SOURCE LINE # 331
0006 120000 F 1012 LCALL delay
1013 ; SCL=0;
1014 ; SOURCE LINE # 332
0009 C2B4 1015 CLR P3_4
1016 ; _nop_();
1017 ; SOURCE LINE # 333
000B 00 1018 NOP
1019 ; _nop_();
1020 ; SOURCE LINE # 334
000C 00 1021 NOP
1022 ; }
1023 ; SOURCE LINE # 335
000D 22 1024 RET
1025 ; END OF I2C_SendNoAck
1026
1027 ;
1028 ; void I2C_SendByte(byte SData)
1029
---- 1030 RSEG ?PR?_I2C_SendByte?T
0000 1031 _I2C_SendByte:
1032 USING 0
1033 ; SOURCE LINE # 337
1034 ;---- Variable 'SData?1051' assigned to Register 'R7' ----
1035 ; {uchar i;
1036 ; SOURCE LINE # 338
1037 ; for(i=0;i<8;i++)
1038 ; SOURCE LINE # 339
1039 ;---- Variable 'i?1052' assigned to Register 'R6' ----
0000 E4 1040 CLR A
0001 FE 1041 MOV R6,A
0002 1042 ?C0053:
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 17
1043 ; { SDA=(bit)(SData&0x80);
1044 ; SOURCE LINE # 340
0002 EF 1045 MOV A,R7
0003 33 1046 RLC A
0004 92B5 1047 MOV P3_5,C
1048 ; SData=SData<<1;
1049 ; SOURCE LINE # 341
0006 EF 1050 MOV A,R7
0007 25E0 1051 ADD A,ACC
0009 FF 1052 MOV R7,A
1053 ; SCL=1;
1054 ; SOURCE LINE # 342
000A D2B4 1055 SETB P3_4
1056 ; delay();
1057 ; SOURCE LINE # 343
000C 120000 F 1058 LCALL delay
1059 ; SCL=0;
1060 ; SOURCE LINE # 344
000F C2B4 1061 CLR P3_4
1062 ; }
1063 ; SOURCE LINE # 345
0011 0E 1064 INC R6
0012 BE08ED 1065 CJNE R6,#08H,?C0053
1066 ; }
1067 ; SOURCE LINE # 346
0015 1068 ?C0056:
0015 22 1069 RET
1070 ; END OF _I2C_SendByte
1071
1072 ;
1073 ; byte I2C_ReceiveByte()
1074
---- 1075 RSEG ?PR?I2C_ReceiveByte?T
0000 1076 I2C_ReceiveByte:
1077 USING 0
1078 ; SOURCE LINE # 348
1079 ; {uchar i;
1080 ; SOURCE LINE # 349
1081 ; byte RData;
1082 ; RData=0;
1083 ; SOURCE LINE # 351
1084 ;---- Variable 'RData?1154' assigned to Register 'R7' ----
0000 E4 1085 CLR A
0001 FF 1086 MOV R7,A
1087 ;
1088 ; for(i=0;i<8;i++)
1089 ; SOURCE LINE # 353
1090 ;---- Variable 'i?1153' assigned to Register 'R6' ----
0002 FE 1091 MOV R6,A
0003 1092 ?C0057:
1093 ; { SDA=1;
1094 ; SOURCE LINE # 354
0003 D2B5 1095 SETB P3_5
1096 ; _nop_();
1097 ; SOURCE LINE # 355
0005 00 1098 NOP
1099 ; SCL=1;
1100 ; SOURCE LINE # 356
0006 D2B4 1101 SETB P3_4
1102 ; _nop_();
1103 ; SOURCE LINE # 357
0008 00 1104 NOP
1105 ; _nop_();
1106 ; SOURCE LINE # 358
0009 00 1107 NOP
1108 ; RData=RData<<1;
A51 MACRO ASSEMBLER T 06/27/2008 14:06:20 PAGE 18
1109 ; SOURCE LINE # 359
000A EF 1110 MOV A,R7
000B 25E0 1111 ADD A,ACC
000D FF 1112 MOV R7,A
1113 ; RData=RData|SDA;
1114 ; SOURCE LINE # 360
000E A2B5 1115 MOV C,P3_5
0010 E4 1116 CLR A
0011 33 1117 RLC A
0012 4207 1118 ORL AR7,A
1119 ; _nop_();
1120 ; SOURCE LINE # 361
0014 00 1121 NOP
1122 ; _nop_();
1123 ; SOURCE LINE # 362
0015 00 1124 NOP
1125 ; SCL=0;
1126 ; SOURCE LINE # 363
0016 C2B4 1127 CLR P3_4
1128 ; }
1129 ; SOURCE LINE # 364
0018 0E 1130 INC R6
0019 BE08E7 1131 CJNE R6,#08H,?C0057
001C 1132 ?C0058:
1133 ; return(RData);
1134 ; SOURCE LINE # 365
1135 ; }
1136 ; SOURCE LINE # 366
001C 1137 ?C0060:
001C 22 1138 RET
1139 ; END OF I2C_ReceiveByte
1140
1141 ;
1142 ; void I2C_SendToSubAddress(byte SlaveAddress,uint SubAddress,byte *pSData,uchar N)
1143
---- 1144 RSEG ?PR?_I2C_SendToSubAddress?T
0000 1145 _I2C_SendToSubAddress:
1146 USING 0
1147 ; SOURCE LINE # 368
0000 8B00 F 1148 MOV pSData?1257,R3
0002 8A00 F 1149 MOV pSData?1257+01H,R2
0004 8900 F 1150 MOV pSData?1257+02H,R1
1151 ;---- Variable 'SubAddress?1256' assigned to Register 'R4/R5' ----
1152 ;---- Variable 'SlaveAddress?1255' assigned to Register 'R7' ----
1153 ; {uchar i;
1154 ; SOURCE LINE # 369
1155 ; I2C_Start();
1156 ; SOURCE LINE # 370
0006 120000 F 1157 LCALL I2C_Start
1158 ; I2C_SendByte(SlaveAddress); //send slave address(write device)
1159 ; SOURCE LINE # 371
0009 120000 F 1160 LCALL _I2C_SendByte
1161 ; I2C_ReceiveAck();
1162 ; SOURCE LINE # 372
000C 120000 F 1163 LCALL I2C_ReceiveAck
1164 ;
1165 ; I2C_SendByte(SubAddress/256); //send sub address
1166 ; SOURCE LINE # 374
1167 ; I2C_ReceiveAck();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -