📄 5112udp.lst
字号:
1071 2 if ( com0_send_len > 512 )
1072 2 {
1073 3 com0_send_len=512;
1074 3 com1_rcv_len= com1_rcv_len-512;
1075 3 com1_rcv_addr_hand=com1_rcv_addr_hand+512;
1076 3 send_7d_cnt=0;
1077 3 if ( rcv_7d_cnt != 0 )
1078 3 {
1079 4 for ( len = 0 ; len < 512 ; len++ )
1080 4 { itemp=len+com0_send_addr;
1081 5 if ( itemp > (SEND_BUF_MAX-1) ) itemp=itemp-SEND_BUF_MAX;
1082 5 if ( send_buf0[itemp] == 0x7d ) send_7d_cnt++;
1083 5 if ( send_7d_cnt == rcv_7d_cnt )break;
1084 5 }
1085 4 rcv_7d_cnt= rcv_7d_cnt-send_7d_cnt;
1086 4 itemp=com0_send_addr+511;
1087 4 if ( send_buf0[itemp] == 0x7d )
1088 4 {
1089 5 com0_send_len--;
1090 5 com1_rcv_len++;
1091 5 com1_rcv_addr_hand--;
1092 5 rcv_7d_cnt++;
1093 5 send_7d_cnt--;
1094 5 }
1095 4 }
1096 3 }
1097 2 else
1098 2 {
1099 3 com1_rcv_addr_hand=com1_rcv_addr_hand+com1_rcv_len;
1100 3 send_7d_cnt=rcv_7d_cnt;
1101 3 com1_rcv_len=0;
1102 3 rcv_7d_cnt=0;
1103 3 rcv_equ_chk=0;
1104 3 }
1105 2 send_com0_cnt=0;
1106 2 if ( com1_rcv_addr_hand > (SEND_BUF_MAX-1) ) com1_rcv_addr_hand=com1_rcv_addr_hand-SEND_BUF_MAX;
C51 COMPILER V7.20 5112UDP 08/18/2004 10:31:57 PAGE 19
1107 2 ES1=1;
1108 2 ES0=1;
1109 2
1110 2
1111 2 send_ctr_com0_buf[0]=0x7e;
1112 2 send_ctr_com0_buf[1]=0x35;
1113 2 len=com0_send_len-send_7d_cnt+21;//5112 len
1114 2 itemp=len & 0xff00;
1115 2 itemp=itemp>>8;
1116 2 send_ctr_com0_buf[2]=(unsigned char)itemp;
1117 2 itemp=len & 0xff;
1118 2 ch=( unsigned char )itemp;
1119 2 if (( ch == 0x7d ) | ( ch == 0x7e ))
1120 2 {
1121 3 send_ctr_com0_buf[3]=0x7d;
1122 3 send_ctr_com0_buf[4]=ch ^ 0x20;
1123 3 addr=5;
1124 3 }
1125 2 else
1126 2 {
1127 3 send_ctr_com0_buf[3]=ch;
1128 3 addr=4;
1129 3 }
1130 2 send_ctr_com0_buf[addr]=0x55;
1131 2 addr++;
1132 2 len=len-12;//send data len
1133 2 itemp=len & 0xff;
1134 2 ch=(unsigned char)itemp;
1135 2 if (( ch == 0x55 ) | ( ch == 0x56 ))
1136 2 {
1137 3 itemp=len & 0xff00;
1138 3 itemp=itemp>>8;
1139 3 ch=(unsigned char)itemp;
1140 3 send_ctr_com0_buf[addr]=ch;
1141 3 addr++;
1142 3 send_ctr_com0_buf[addr]=0x56;
1143 3 addr++;
1144 3 itemp=len & 0xff;
1145 3 ch=(unsigned char)itemp ^ 0x20;
1146 3 send_ctr_com0_buf[addr]=ch;
1147 3 addr++;
1148 3 }
1149 2 else
1150 2 {
1151 3 if (( ch == 0x7d ) | ( ch == 0x7e ))
1152 3 {
1153 4 send_ctr_com0_buf[addr]=0x00;
1154 4 addr++;
1155 4 itemp=len & 0xff00;
1156 4 itemp=itemp>>8;
1157 4 ch=(unsigned char)itemp;
1158 4 send_ctr_com0_buf[addr]=ch;
1159 4 addr++;
1160 4 send_ctr_com0_buf[addr]=0x7d;
1161 4 addr++;
1162 4 itemp=len & 0xff;
1163 4 ch=(unsigned char)itemp ;
1164 4 ch=ch ^ 0x20;
1165 4 send_ctr_com0_buf[addr]=ch;
1166 4 addr++;
1167 4 }
1168 3 else
C51 COMPILER V7.20 5112UDP 08/18/2004 10:31:57 PAGE 20
1169 3 {
1170 4 send_ctr_com0_buf[addr]=0x00;
1171 4 addr++;
1172 4 itemp=len & 0xff00;
1173 4 itemp=itemp>>8;
1174 4 ch=(unsigned char)itemp;
1175 4 send_ctr_com0_buf[addr]=ch;
1176 4 addr++;
1177 4 itemp=len & 0xff;
1178 4 ch=(unsigned char)itemp ;
1179 4 send_ctr_com0_buf[addr]=ch;
1180 4 addr++;
1181 4 }
1182 3 }
1183 2 p=conver(eid);
1184 2 for ( ch = 0 ; ch < p[0] ; ch++ )
1185 2 {
1186 3 send_ctr_com0_buf[addr] = p[ch+1];//eid
1187 3 addr++;
1188 3 }
1189 2 ch=p[0]+1;
1190 2 itemp=p[ch];
1191 2
1192 2 itemp=itemp<<8;
1193 2 ch++;
1194 2 itemp=itemp+p[ch];
1195 2 chk=chk+itemp;
1196 2 send_ctr_com0_buf[addr]=0x00;//type:send data
1197 2 addr++;
1198 2 p=conver(sendid);
1199 2 sendid++;
1200 2 for ( ch = 0 ; ch < p[0] ; ch++ )
1201 2 {
1202 3 send_ctr_com0_buf[addr] = p[ch+1];//send id
1203 3 addr++;
1204 3 }
1205 2 ch=p[0]+1;
1206 2 itemp=p[ch];
1207 2 itemp=itemp<<8;
1208 2 ch++;
1209 2 chk=chk+itemp+p[ch];
1210 2
1211 2 send_ctr_com0_len=addr;
1212 2 send_com0_finish=0;
1213 2 send_data0=0;
1214 2 send_com0_cnt=0;
1215 2 TI=1;
1216 2 while ( !send_com0_finish )
1217 2 {
1218 3 ;
1219 3 }
1220 2 send_com0_finish=0;
1221 2 send_data0=1;
1222 2 send_com0_cnt=0;
1223 2 TI=1;
1224 2 while ( !send_com0_finish )
1225 2 {
1226 3 ;
1227 3 }
1228 2 send_com0_finish=0;
1229 2 addr=0;
1230 2 p=conver(chk);
C51 COMPILER V7.20 5112UDP 08/18/2004 10:31:57 PAGE 21
1231 2 for ( ch = 0 ; ch < p[0] ; ch++ )
1232 2 {
1233 3 send_ctr_com0_buf[addr] = p[ch+1];//send id
1234 3 addr++;
1235 3 }
1236 2 send_ctr_com0_buf[addr]=0x55;
1237 2 addr++;
1238 2 send_ctr_com0_buf[addr]=0x7e;
1239 2 addr++;
1240 2 send_ctr_com0_len=addr;
1241 2 send_data0=0;
1242 2 ack=0;
1243 2 send_com0_cnt=0;
1244 2 send_com0_finish=0;
1245 2 TI=1;
1246 2 settimer(9);
1247 2 while ( !ack )
1248 2 {
1249 3 ;
1250 3 }
1251 2 killtimer(9);
1252 2 ack=0;
1253 2 }
1254 1 }
1255 ///////////////////////////////
1256 //
1257 //NAME: init_5112
1258 //DESCRIPTION: set e5112
1259 //CALL:
1260 //INPUT:
1261 //OUTPUT:NONE
1262 //
1263 ///////////////////////////////
1264 void init_5112(void)
1265 {
1266 1 unsigned char addr,i,len,temp;
1267 1 unsigned char *p;
1268 1
1269 1 send_ctr_com0_buf[0]=0x7e;
1270 1 send_ctr_com0_buf[1]=0x2f;
1271 1 send_ctr_com0_buf[2]=0x00;
1272 1 send_ctr_com0_buf[3]=0x04;
1273 1 send_ctr_com0_buf[4]=0x08;//fffd:115200 fffa:57600 ffee:19200 for 11.0592MHz
1274 1 i=0xff; //ffb8 for 9600 ffdc for 19200 fff4 for 57600 for 22.1184MHz
1275 1 addr=0xf4;
1276 1 send_ctr_com0_buf[5]=0x7e;
1277 1 send_data0=0;
1278 1 send_ctr_com0_len=6;
1279 1 send_com0_finish=0;
1280 1 ack=0;
1281 1 send_com0_cnt=0;
1282 1 TI=1; //set 5112 to cpu
1283 1 settimer(9);
1284 1 while ( !ack )
1285 1 {
1286 2 ;
1287 2 }
1288 1 killtimer(9);
1289 1 ack=0;
1290 1 TR2=0;
1291 1 TH2=i; // set cpu baud :cpu to 5112
1292 1 TL2=addr;
C51 COMPILER V7.20 5112UDP 08/18/2004 10:31:57 PAGE 22
1293 1 RCAP2H=i;
1294 1 RCAP2L=addr;
1295 1 TR2=1;
1296 1 send_ctr_com0_buf[0]=0x7e;
1297 1 send_ctr_com0_buf[1]=0x32;
1298 1 send_ctr_com0_buf[2]=0x00;
1299 1 addr=5;
1300 1 temp=x_isp_num;
1301 1 p=x_read(temp,16);
1302 1 for ( i = 0 ; i < 16 ; i++ )
1303 1 {
1304 2 if ( p[i] != 0x00 ) send_ctr_com0_buf[i+addr]=p[i];
1305 2 else break;
1306 2 }
1307 1 send_ctr_com0_buf[4]=i;
1308 1 addr=addr+i;
1309 1 len=addr;
1310 1 addr++;
1311 1 temp=x_isp_name;
1312 1 p=x_read(temp,16);
1313 1 for ( i = 0 ; i < 16 ; i++ )
1314 1 {
1315 2 if ( p[i] == 0x00) break;
1316 2 else send_ctr_com0_buf[addr+i]=p[i];
1317 2 }
1318 1 send_ctr_com0_buf[len]=i;
1319 1 addr=addr+i;
1320 1 len=addr;
1321 1 addr++;
1322 1 temp=x_isp_password;
1323 1 p=x_read(temp,16);
1324 1 for ( i = 0 ; i < 16 ; i++ )
1325 1 {
1326 2 if ( p[i] == 0x00 ) break;
1327 2 else send_ctr_com0_buf[addr+i]=p[i];
1328 2 }
1329 1 send_ctr_com0_buf[len]=i;
1330 1 send_ctr_com0_buf[addr+i]=0x7e;
1331 1 send_ctr_com0_buf[3]=addr+i-1;
1332 1 ack=0;
1333 1 send_data0=0;
1334 1 send_ctr_com0_len=send_ctr_com0_buf[3]+2;
1335 1 send_com0_cnt=0;
1336 1 send_com0_finish=0;
1337 1 TI=1; //set 5112 isp set
1338 1 settimer(9);
1339 1 while ( !ack )
1340
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -