📄 f020.lst
字号:
467 9 //AIN10_ADDR[2]=0x08;//AIN1.0 存储区域0x100000~0x11FFFF共128K
468 9 }
469 8
470 8 }
471 7 ET0=1;
472 7 TR0=1;
473 7 }//end if n0>0x10FF
474 6 /*****************AIN00************************************/
475 6 /***信号L301-1*******/
476 6 /***射控系统+15V电源*/
477 6 /***电压范围0~15V*****/
478 6 /*****阀值1.5V*****/
479 6 /*******还原算法Xn*9.4922*11********/
480 6 /**AIN0.0 存储区域0x000000~0x01FFFF共128K*/
481 6 last_xn=x[0x2000];//AIN0.0上次值缓存
482 6 AMX0SL = 0x00;//AIN0.0 //AIN00-AIN07->0X00-0X07
483 6 AD0INT = 0; // 清除ADC转换完成标志
484 6 AD0BUSY = 1;
485 6 Delay_us(5);
486 6 while (!AD0INT);
487 6 current_xn= ADC0H;
488 6 Temp_AD=abs(current_xn-last_xn);
489 6 x[0x2000]= current_xn;
490 6 if(Temp_AD>=A)//阀值设定
491 6 {
492 7 if(timepoint>253)
493 7 {
494 8 x[m0-2]=current_xn;
495 8 //m0++;
496 8 x[m0-1]=0XFE;
497 8 //m0++;
498 8 }
499 7 else
500 7 {
501 8 x[m0]=current_xn;
502 8 m0++;
503 8 x[m0]=timepoint;
504 8 m0++;
505 8 }
506 7 if(m0>0X00FF)//地址注意之处
507 7 {
508 8 TR0=0;
509 8 ET0=0;
510 8 m0=0x0000;//AIN0.0缓存区首地址
511 8
512 8 switch (first_flag00)
513 8 {
514 9 case 0X00: Read_Data_T0_Flash (AIN00_ADDR[0],AIN00_ADDR[1],0x08,m0+8,248);
515 9 AIN00_ADDR[1]++;
516 9 //AIN00_ADDR[2]=0x00;
517 9 first_flag00=1;
518 9 break;
519 9 case 0X01: Read_Data_T0_Flash (AIN00_ADDR[0],AIN00_ADDR[1],0x00,m0,256);
520 9 AIN00_ADDR[1]++;
521 9 //AIN00_ADDR[2]=0x00;
522 9 break;
523 9 default:break;
524 9 }
525 8 if(AIN00_ADDR[1]>255)
526 8 {
527 9 AIN00_ADDR[1]=0x00;
528 9 //AIN00_ADDR[2]=0x00;
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 10
529 9 AIN00_ADDR[0]++;
530 9 if( AIN00_ADDR[0]>=0X02)
531 9 {
532 10 FLASH_SE(0x00,0x00,0x00);
533 10 FLASH_SE(0x01,0x00,0x00);
534 10
535 10 first_flag00=0;
536 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x00,0x00,0x00,0x00
-);//通道AIN0。0
537 10 AIN00_ADDR[0]=0x00;
538 10 AIN00_ADDR[1]=0x00;
539 10 //AIN00_ADDR[2]=0x08;//AIN0.0 存储区域0x000000~0x01FFFF共128K
540 10 }
541 9
542 9 }
543 8 ET0=1;
544 8 TR0=1;
545 8 }//end if m0>0X00FF
546 7 }//end if Temp_AD>A
547 6 /*****************AIN10************************************/
548 6 /***信号515-1*******/
549 6 /***连续射击开关***/
550 6 /***电压范围0~15V*****/
551 6 /*****阀值1.5V*****/
552 6 /*******还原算法Xn*9.4922*11********/
553 6 /**AIN1.0 存储区域0x100000~0x11FFFF共128K*/
554 6 last_xn=x[0x3000];//AIN1.0上次值缓存
555 6 AMX1SL=0x00; //AIN1.0
556 6 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
557 6 ADC1CN |= 0x10;// AD1BUSY = 1;
558 6 Delay_us(5);
559 6 while (!ADC1CN&0x20); //等待AD1INT=1;
560 6 current_xn=ADC1;
561 6 Temp_AD=abs(current_xn-last_xn);
562 6 x[0x3000]= current_xn;
563 6 if(Temp_AD>=A)//阀值设定
564 6 {
565 7 if(timepoint>253)
566 7 {
567 8 x[n0-2]=current_xn;
568 8 //n0++;
569 8 x[n0-1]=0XFE;
570 8 //n0++;
571 8 }
572 7 else
573 7 {
574 8 x[n0]=current_xn;
575 8 n0++;
576 8 x[n0]=timepoint;
577 8 n0++;
578 8 }
579 7 if(n0>0X10FF)//注意之处
580 7 {
581 8 TR0=0;
582 8 ET0=0;
583 8 n0=0x1000;//AIN1.0缓存区首地址
584 8
585 8 switch (first_flag10)
586 8 {
587 9 case 0X00: Read_Data_T0_Flash (AIN10_ADDR[0],AIN10_ADDR[1],0x08,n0+8,248);
588 9 AIN10_ADDR[1]++;
589 9 //AIN10_ADDR[2]=0x00;
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 11
590 9 first_flag10=1;
591 9 break;
592 9 case 0X01: Read_Data_T0_Flash (AIN10_ADDR[0],AIN10_ADDR[1],0x00,n0,256);
593 9 AIN10_ADDR[1]++;
594 9 //AIN10_ADDR[2]=0x00;
595 9 break;
596 9 default:break;
597 9 }
598 8
599 8 if(AIN10_ADDR[1]>255)
600 8 {
601 9 AIN10_ADDR[1]=0x00;
602 9 //AIN10_ADDR[2]=0x00;
603 9 AIN10_ADDR[0]++;
604 9 if( AIN10_ADDR[0]>=0X12)//存储区域0x100000~0x11FFFF共128K
605 9 {
606 10 FLASH_SE(0x10,0x00,0x00);
607 10 FLASH_SE(0x11,0x00,0x00);
608 10
609 10 first_flag10=0;
610 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x10,0x00,0x00,0x10
-);//通道AIN1。0
611 10 AIN10_ADDR[0]=0x10;
612 10 AIN10_ADDR[1]=0x00;
613 10 //AIN10_ADDR[2]=0x08;//AIN1.0 存储区域0x100000~0x11FFFF共128K
614 10 }
615 9
616 9 }
617 8 ET0=1;
618 8 TR0=1;
619 8 }//end if n0>0x10FF
620 7 }//end if Temp_AD>A
621 6
622 6 }//end if AIN==0X01
623 5 /**********************************END AIN=0X01**********************************/
624 5
625 5 /***********************************START AIN=0X02*********************************************/
626 5 if(AIN==0X02)
627 5 {
628 6 AIN_Flag=0;
629 6 /***************************AD LONG TIME NO CHANGE****************************/
630 6 if(timepoint>253)
631 6 {
632 7 TR0=0;
633 7 ET0=0;
634 7 AMX0SL = 0x01;//AIN0.1 //AIN00-AIN07->0X00-0X07
635 7 AD0INT = 0; // 清除ADC转换完成标志
636 7 AD0BUSY = 1;
637 7 Delay_us(5);
638 7 while (!AD0INT);
639 7 current_xn= ADC0H;
640 7 x[m1]=current_xn;
641 7 m1++;
642 7 x[m1]=0xFE;
643 7 m1++;
644 7
645 7 AMX1SL=0x01;//AIN1.1
646 7 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
647 7 ADC1CN |= 0x10;// AD1BUSY = 1;
648 7 Delay_us(5);
649 7 while (!ADC1CN&0x20); //等待AD1INT=1;
650 7 current_xn=ADC1;
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 12
651 7 x[n1]=current_xn;
652 7 n1++;
653 7 x[n1]=0xFE;
654 7 n1++;
655 7 ET0=1;
656 7 TR0=1;
657 7
658 7 }
659 6 if(m1>0x01FF)//地址注意之处
660 6 {
661 7 TR0=0;
662 7 ET0=0;
663 7 m1=0x0100;//AIN0.1缓存区首地址
664 7 switch (first_flag01)
665 7 {
666 8 case 0X00: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x08,m1+8,248);
667 8 AIN01_ADDR[1]++;
668 8 //AIN01_ADDR[2]=0x00;
669 8 first_flag01=1;
670 8 break;
671 8 case 0X01: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x00,m1,256);
672 8 AIN01_ADDR[1]++;
673 8 //AIN01_ADDR[2]=0x00;
674 8 break;
675 8 default:break;
676 8 }
677 7 if(AIN01_ADDR[1]>255)
678 7 {
679 8 AIN01_ADDR[1]=0x00;
680 8 //AIN01_ADDR[2]=0x00;
681 8 AIN01_ADDR[0]++;
682 8 if( AIN01_ADDR[0]>=0X04)//存储区域0x020000~0x03FFFF共128K 注意
683 8 {
684 9 FLASH_SE(0x02,0x00,0x00);
685 9 FLASH_SE(0x03,0x00,0x00);
686 9
687 9 first_flag01=0;
688 9 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x02,0x00,0x00,0x01
-);//通道AIN0。1
689 9 AIN01_ADDR[0]=0x02;
690 9 AIN01_ADDR[1]=0x00;
691 9 //AIN01_ADDR[2]=0x08;//AIN0.1 存储区域0x020000~0x03FFFF共128K
692 9 }
693 8
694 8 }
695 7 ET0=1;
696 7 TR0=1;
697 7 }//end if m1>0X01FF
698 6 if(n1>0X11FF)//地址注意之处
699 6 {
700 7 TR0=0;
701 7 ET0=0;
702 7 n1=0x1100;//AIN1.1缓存区首地址
703 7
704 7 switch (first_flag11)
705 7 {
706 8 case 0X00: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x08,n1+8,248);
707 8 AIN11_ADDR[1]++;
708 8 //AIN11_ADDR[2]=0x00;
709 8 first_flag11=1;
710 8 break;
711 8 case 0X01: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x00,n1,256);
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 13
712 8 AIN11_ADDR[1]++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -