⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f020.lst

📁 多通道高速数据采集源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -