📄 iman.lst
字号:
283 void f_run_cruise(void)
284 {
285 1 uchar x,yy,y=number,effction_time,mydata,ii;
286 1 yy=y;
287 1 _nop_();_nop_();
288 1 os_tell_fair(y);
289 1 _nop_();_nop_();_nop_();_nop_();
290 1 x=os_read_lenth((uint)y);
291 1 _nop_();_nop_();_nop_();_nop_();
292 1 num=x;
293 1 load_call_team_flag=0;
294 1 if(y>20)
295 1 {
296 2 call_team_flag=0;
297 2 return;
298 2 }
299 1 if(num>33)//不合法
300 1 {
301 2 call_team_flag=0;
302 2 return;
C51 COMPILER V7.06 IMAN 01/06/2005 14:37:18 PAGE 6
303 2 }
304 1 if(num<2)
305 1 {
306 2 call_team_flag=0;//不构成巡航队列
307 2 return;
308 2 }
309 1 shot_bug_problem=0xff;
310 1 f_clear_moto_display();
311 1 TR2=0;
312 1 while(call_team_flag)
313 1 {
314 2 if(call_team_flag==0)
315 2 return;
316 2 os_return_force();
317 2 y=number;
318 2 x=os_read_lenth((uint)y);
319 2 num=x;
320 2 yy=number;
321 2 f_addition_brush_time();
322 2 my_address=HEAD_ADDR+(yy-1)*TEAM_LENGTH;
323 2 while((num)&&call_team_flag)
324 2 { TR2=0;
325 3 mydata=os_read_lenth(my_address);
326 3 sendtwo=0x97;
327 3 sendthree=mydata;
328 3 iic_recieve_time=0;
329 3 f_addition_brush_time();
330 3 f_sendbytes1234();
331 3 feed_dog=~feed_dog;
332 3 preset_dot=mydata+1;
333 3 shot_bug_problem=0xff;
334 3 my_address=my_address+1;
335 3 mydata=os_read_lenth(my_address);
336 3 if(mydata==0)
337 3 {
338 4 mydata=2;
339 4 }
340 3 effction_time=mydata+2;//增加运动时间
341 3 ii=0;
342 3 if(runing_salvo_flag==1)
343 3 {
344 4 if(call_team_flag)
345 4 while((ii<effction_time))
346 4 {
347 5 if(os_second_call_team()==1)
348 5 {
349 6 TR2=1;
350 6 return;
351 6 }
352 5 os_return_force();
353 5 f_delay_counter1();
354 5 ii++;
355 5 f_addition_brush_time();
356 5 sendtwo=0;
357 5 sendthree=0;
358 5 f_sendbytes1234();
359 5
360 5 }
361 4 }
362 3 else
363 3 {
364 4 while((ii<effction_time)&&call_team_flag)
C51 COMPILER V7.06 IMAN 01/06/2005 14:37:18 PAGE 7
365 4 {
366 5 if(os_second_call_team()==1)
367 5 {
368 6 TR2=1;
369 6 return;
370 6 }
371 5 os_return_force();
372 5 time_brush=1;
373 5 time_sec++;
374 5 f_delay_counter();
375 5 time_sec=31;
376 5 ii++;
377 5 f_addition_brush_time();
378 5 sendtwo=0;
379 5 sendthree=0;
380 5 f_sendbytes1234();
381 5 }
382 4 }
383 3 my_address=my_address+1;
384 3
385 3 num=num-1;
386 3 }
387 2 feed_dog=~feed_dog;
388 2 }
389 1 time_sec++;
390 1 }
391 /*
392 ********************************************************
393 *读取地址
394 *前面10个为硬件地址
395 *另外两个拨码开关为波特率的选择
396 *
397 **********************************************************
398 */
399 uchar f_trans_tube(uchar ch)
400 {
401 1 bit iflag0,iflag1,iflag2,iflag3;
402 1 ACC=ch;
403 1 iflag0=ACC0;
404 1 iflag1=ACC1;
405 1 iflag2=ACC2;
406 1 iflag3=ACC3;
407 1 ACC0=ACC7;
408 1 ACC1=ACC6;
409 1 ACC2=ACC5;
410 1 ACC3=ACC4;
411 1 ACC4=iflag3;
412 1 ACC5=iflag2;
413 1 ACC6=iflag1;
414 1 ACC7=iflag0;
415 1 ch=ACC;
416 1 return ch;}
417 /*
418 *********************************************************************************************************
419 *名称:
420 *功能:
421 * 输入参数:无
422 *输出参数:无
423 *处理的数据:*INPUT_QUEEN[]处理前的数据,*OUT_QUEEN[]处理后的数据
424 *调用的函数:
425 *创建人: DaiWei
426 *创建时间:2003-8-16 10:51
C51 COMPILER V7.06 IMAN 01/06/2005 14:37:18 PAGE 8
427 *修改时间:
428 *********************************************************************************************************
429 */
430
431 void f_brush_addr()
432 {
433 1 uchar data i=0;
434 1 uchar data j=0;
435 1 j=P1;
436 1 j=f_trans_tube(j);
437 1 j=~j;
438 1 j=j&0xfc;
439 1 i=P0;
440 1 i=f_trans_tube(i);
441 1 i=~i;
442 1 i=i&0x03;
443 1 hard_address=i+j;
444 1 i=P0;
445 1 i=~i;
446 1 j=i&0x03;
447 1 hard_address=hard_address+j*256;
448 1
449 1 i=i>>2;
450 1 selection=0;
451 1 selection=i&0x0f;
452 1
453 1 }
454 void f_brush_addr_again()
455 {
456 1 if(hard_address_brush_flag>240)
457 1 {
458 2 EA=0;
459 2 f_brush_addr();
460 2 EA=1;
461 2 hard_address_brush_flag=0;
462 2 }
463 1
464 1 }
465
466
467
468 /*
469 *********************************************************************************************************
470 *名称:
471 *功能:
472 * 输入参数:无
473 *输出参数:无
474 *处理的数据:*INPUT_QUEEN[]处理前的数据,*OUT_QUEEN[]处理后的数据
475 *调用的函数:
476 *创建人: DaiWei
477 *创建时间:2003-8-16 10:51
478 *修改时间:
479 *********************************************************************************************************
480 */
481
482 void clear_homeflag()
483 {
484 1
485 1 return;
486 1
487 1 }
488 uchar exchang(uchar dat)
C51 COMPILER V7.06 IMAN 01/06/2005 14:37:18 PAGE 9
489 {
490 1 bit temp;
491 1 ACC=dat&0x0f;
492 1 temp=ACC0;
493 1 ACC0=ACC3;
494 1 ACC3=temp;
495 1 temp=ACC1;
496 1 ACC1=ACC2;
497 1 ACC2=temp;
498 1 dat=ACC&0x0f;
499 1 return dat;
500 1 }
501 uchar read_sc2_protocl()
502 {
503 1 uchar i=0;
504 1 i=P1;
505 1 i=~i;
506 1 i&=0x0f;
507 1 i=exchang(i);
508 1 return i;
509 1 }
510 uchar read_sc1_address()
511 {
512 1 uchar i;
513 1 bit flag0;
514 1 i=P0;
515 1 ACC=i;
516 1 flag0=ACC0;
517 1 ACC0=ACC1;
518 1 ACC1=flag0;
519 1 i=ACC;
520 1 i=~i;
521 1 return i;
522 1 }
523 void f_read_addr(void)
524 {
525 1 selection=read_sc2_protocl();
526 1 hard_address=read_sc1_address();
527 1 }
528 uchar read_sc2_boud()
529 {
530 1 uchar i=0;
531 1 i=P1;
532 1 i=~i;
533 1 i=i>>4;
534 1 i=i&0x03;
535 1 return i;
536 1 }
537
538 void f_baud_set()
539 {
540 1 borad_flag=read_sc2_boud();
541 1 switch(borad_flag)
542 1 {
543 2 case 0: TH1=TL1=0Xfa;PCON=0;break;//9600bps
544 2 case 1: TH1=TL1=0XF4;PCON=0;break;//4800bps
545 2 case 2: TH1=TL1=0Xe8;PCON=0;break;//2400bps
546 2 case 3: TH1=TL1=0XFD;PCON=0;break;//19200bps
547 2 default: TH1=TL1=0XFa;PCON=0;break;//9600bps
548 2 }
549 1 }
550
C51 COMPILER V7.06 IMAN 01/06/2005 14:37:18 PAGE 10
551 void f_read_borad(void)
552 {
553 1 f_baud_set();
554 1 switch(selection)
555 1 {
556 2 case 0:
557 2 case 14: S0CON=0xf0; //红苹果电子公司的协议
558 2 break;
559 2 default: S0CON=0X50;
560 2 break;
561 2 }
562 1 }
563 void f_read_addr_board(void)
564 {
565 1 f_read_addr();
566 1 f_read_borad();
567 1 }
568 void f_delay_time(void)
569 {
570 1 uchar data k, i,j;
571 1 for(k=0;k<5;k++)
572 1 for(i=0;i<200;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -