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

📄 f020.lst

📁 多通道高速数据采集源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 713   8                          //AIN11_ADDR[2]=0x00;
 714   8                                              break;
 715   8                              default:break;
 716   8                              }
 717   7                  
 718   7                  if(AIN11_ADDR[1]>255)
 719   7                                {
 720   8                     AIN11_ADDR[1]=0x00;
 721   8                     //AIN11_ADDR[2]=0x00;
 722   8                                 AIN11_ADDR[0]++;
 723   8                                 if( AIN11_ADDR[0]>=0X14)//存储区域0x120000~0x13FFFF共128K    注意
 724   8                                   {
 725   9                                        FLASH_SE(0x12,0x00,0x00);
 726   9                        FLASH_SE(0x13,0x00,0x00);
 727   9                       
 728   9                        first_flag11=0;
 729   9                        Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x12,0x00,0x00,0x11
             -);//通道AIN1。1
 730   9                        AIN11_ADDR[0]=0x12;
 731   9                        AIN11_ADDR[1]=0x00;
 732   9                        //AIN11_ADDR[2]=0x08;//AIN1.1         存储区域0x060000~0x07FFFF共128K
 733   9                                       }
 734   8      
 735   8                                }
 736   7                  ET0=1;
 737   7                              TR0=1;
 738   7                         }//end if n1>0x11FF
 739   6      /*****************AIN01************************************/
 740   6      /***信号516-1*******/
 741   6      /***击发按钮***/
 742   6      /***电压范围0~15V*****/
 743   6      /*****阀值1.5V*****/
 744   6      /*******还原算法Xn*9.4922*11********/
 745   6      /**AIN0.1 存储区域0x020000~0x03FFFF共128K*/
 746   6                        last_xn=x[0x2100];//AIN0.1上次值缓存
 747   6                AMX0SL = 0x01;//AIN0.1                                          //AIN00-AIN07->0X00-0X07        
 748   6                    AD0INT = 0;               // 清除ADC转换完成标志
 749   6                    AD0BUSY = 1;
 750   6                Delay_us(5);
 751   6                    while (!AD0INT);
 752   6                current_xn= ADC0H;
 753   6                Temp_AD=abs(current_xn-last_xn);
 754   6                x[0x2100]= current_xn;
 755   6                      if(Temp_AD>=A)//阀值设定
 756   6                      {
 757   7                         if(timepoint>253)
 758   7                         {
 759   8                         x[m1-2]=current_xn;
 760   8                         //m1++;
 761   8                 x[m1-1]=0XFE;
 762   8                 //m1++;
 763   8                         }
 764   7                         else
 765   7                         {
 766   8                         x[m1]=current_xn;
 767   8                         m1++;
 768   8                 x[m1]=timepoint;
 769   8                 m1++;
 770   8                         }
 771   7                         if(m1>0X01FF)
 772   7                         {
C51 COMPILER V7.50   F020                                                                  09/08/2007 13:14:11 PAGE 14  

 773   8                  TR0=0;
 774   8                  ET0=0;
 775   8                          m1=0x0100;//AIN0.1缓存区首地址
 776   8                  
 777   8                              switch (first_flag01)//注意
 778   8                              {
 779   9                              case 0x00: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x08,m1+8,248);
 780   9                          AIN01_ADDR[1]++;
 781   9                          //AIN01_ADDR[2]=0x00;
 782   9                          first_flag01=1;//注意
 783   9                                              break;
 784   9                              case 0x01: Read_Data_T0_Flash (AIN01_ADDR[0],AIN01_ADDR[1],0x00,m1,256);
 785   9                          AIN01_ADDR[1]++;
 786   9                          //AIN01_ADDR[2]=0x00;
 787   9                                              break;
 788   9                              default:break;
 789   9                              }
 790   8                  if(AIN01_ADDR[1]>255)
 791   8                                {
 792   9                     AIN01_ADDR[1]=0x00;
 793   9                     //AIN01_ADDR[2]=0x00;
 794   9                                 AIN01_ADDR[0]++;
 795   9                                 if( AIN01_ADDR[0]>=0X04)////存储区域0x020000~0x03FFFF共128K    注意
 796   9                                   {
 797  10                                        FLASH_SE(0x02,0x00,0x00);//注意
 798  10                        FLASH_SE(0x03,0x00,0x00);//注意
 799  10                        
 800  10                        first_flag01=0;//注意
 801  10                        Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x02,0x00,0x00,0x01
             -);//通道AIN0。1
 802  10                        AIN01_ADDR[0]=0x02;//注意
 803  10                        AIN01_ADDR[1]=0x00;
 804  10                        //AIN01_ADDR[2]=0x08;//AIN0.1         存储区域0x020000~0x03FFFF共128K
 805  10                                       }
 806   9      
 807   9                                }
 808   8                  ET0=1;
 809   8                              TR0=1;
 810   8                         }//end if m1>0x01FF
 811   7               }//end if Temp_AD>A
 812   6      /*****************AIN11************************************/
 813   6      /***信号518-1*******/
 814   6      /***传感器信号电压***/
 815   6      /***电压范围0~15V*****/
 816   6      /*****阀值1.5V*****/
 817   6      /*******还原算法Xn*9.4922*11********/
 818   6      /**AIN1.1 存储区域0x120000~0x13FFFF共128K*/
 819   6               last_xn=x[0x3100];//AIN1.1上次值缓存
 820   6               AMX1SL=0x01;//AIN1.1
 821   6               ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
 822   6               ADC1CN |= 0x10;//  AD1BUSY = 1;
 823   6               Delay_us(5);
 824   6               while (!ADC1CN&0x20);              //等待AD1INT=1;
 825   6               current_xn=ADC1;
 826   6                Temp_AD=abs(current_xn-last_xn);
 827   6                x[0x3100]= current_xn;
 828   6                        if(Temp_AD>=A)//阀值设定
 829   6                        {
 830   7                         if(timepoint>253)
 831   7                         {
 832   8                         x[n1-2]=current_xn;
 833   8                         //n1++;
C51 COMPILER V7.50   F020                                                                  09/08/2007 13:14:11 PAGE 15  

 834   8                 x[n1-1]=0XFE;
 835   8                 //n1++;
 836   8                         }
 837   7                         else
 838   7                 {
 839   8                         x[n1]=current_xn;
 840   8                         n1++;
 841   8                 x[n1]=timepoint;
 842   8                 n1++;
 843   8                         }
 844   7                         if(n1>0X11FF)//注意之处
 845   7                         {
 846   8                  TR0=0;
 847   8                  ET0=0;
 848   8                          n1=0x1100;//AIN1.1缓存区首地址
 849   8          
 850   8                  switch (first_flag11)//注意
 851   8                              {
 852   9                              case 0X00: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x08,n1+8,248);
 853   9                          AIN11_ADDR[1]++;
 854   9                          //AIN11_ADDR[2]=0x00;
 855   9                          first_flag11=1;//注意
 856   9                                              break;
 857   9                              case 0X01: Read_Data_T0_Flash (AIN11_ADDR[0],AIN11_ADDR[1],0x00,n1,256);
 858   9                          AIN11_ADDR[1]++;
 859   9                          //AIN11_ADDR[2]=0x00;
 860   9                                              break;
 861   9                              default:break;
 862   9                              }
 863   8                  
 864   8                  if(AIN11_ADDR[1]>255)
 865   8                                {
 866   9                     AIN11_ADDR[1]=0x00;
 867   9                     //AIN11_ADDR[2]=0x00;
 868   9                                 AIN11_ADDR[0]++;
 869   9                                 if( AIN11_ADDR[0]>=0X14)//存储区域0x120000~0x13FFFF共128K 注意
 870   9                                   {
 871  10                                        FLASH_SE(0x12,0x00,0x00);
 872  10                        FLASH_SE(0x13,0x00,0x00);
 873  10                       
 874  10                        first_flag11=0;
 875  10                        Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x12,0x00,0x00,0x11
             -);//通道AIN1。0 注意
 876  10                        AIN11_ADDR[0]=0x12;
 877  10                        AIN11_ADDR[1]=0x00;
 878  10                        //AIN11_ADDR[2]=0x08;//AIN1.1         存储区域0x120000~0x13FFFF共128K
 879  10                                       }
 880   9      
 881   9                                }
 882   8                  ET0=1;
 883   8                              TR0=1;
 884   8                         }//end if n1>0x11FF
 885   7            }//end if Temp_AD>A*/
 886   6                        
 887   6       }//end if AIN==0X02*/
 888   5      /**********************************END AIN=0X02**********************************/      
 889   5      
 890   5      /***********************************START AIN=0X03*********************************************/
 891   5                  if(AIN==0X03)
 892   5                      {
 893   6                        AIN_Flag=0;
 894   6      /***************************AD LONG TIME NO CHANGE****************************/
C51 COMPILER V7.50   F020                                                                  09/08/2007 13:14:11 PAGE 16  

 895   6             if(timepoint>253)
 896   6                         {
 897   7                   TR0=0;
 898   7                       ET0=0;
 899   7                   //timepoint=0X00;
 900   7                   AMX0SL = 0x02;//AIN0.2                                       //AIN00-AIN07->0X00-0X07        
 901   7                   AD0INT = 0;               // 清除ADC转换完成标志
 902   7                       AD0BUSY = 1;
 903   7                   Delay_us(5);
 904   7                       while (!AD0INT);
 905   7                   current_xn = ADC0H;
 906   7                   x[m2]=current_xn;
 907   7                       m2++;
 908   7                   x[m2]=0xFE;
 909   7                   m2++;
 910   7                      
 911   7                   
 912   7                   AMX1SL=0x02;//AIN1.2
 913   7                   ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
 914   7                   ADC1CN |= 0x10;//  AD1BUSY = 1;
 915   7                   Delay_us(5);
 916   7                   while (!ADC1CN&0x20);              //等待AD1INT=1;
 917   7                   current_xn=ADC1;
 918   7                   x[n2]=current_xn;
 919   7                       n2++;
 920   7                   x[n2]=0xFE;
 921   7                   n2++;
 922   7                           ET0=1;
 923   7                   TR0=1;
 924   7      
 925   7                          }
 926   6                 if(m2>0X02FF)
 927   6                         {
 928   7                  TR0=0;
 929   7                  ET0=0;
 930   7                          m2=0x0200;//AIN0.2缓存区首地址
 931   7                  switch (first_flag02)
 932   7                              {
 933   8                  case 0X00: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x08,m2+8,248);
 934   8                          AIN02_ADDR[1]++;
 935   8                          //AIN02_ADDR[2]=0x00;
 936   8                          first_flag02=1;
 937   8                                              break;
 938   8                  case 0X01: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x00,m2,256);
 939   8                          AIN02_ADDR[1]++;
 940   8                          //AIN02_ADDR[2]=0x00;
 941   8                                              break;
 942   8                 default:break;
 943   8                              }
 944   7                  if(AIN02_ADDR[1]>255)
 945   7                                {
 946   8                             AIN02_ADDR[1]=0x00;
 947   8                             //AIN02_ADDR[2]=0x00;
 948   8                                 AIN02_ADDR[0]++;
 949   8                                 if( AIN02_ADDR[0]>=0X06)
 950   8                                   {
 951   9                                    FLASH_SE(0x04,0x00,0x00);
 952   9                            FLASH_SE(0x05,0x00,0x00);
 953   9                                    
 954   9                                    first_flag02=0;
 955   9                                    Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x04,0x
             -00,0x00,0x02);//通道AIN0。2
C51 COMPILER V7.50   F020                                                                  09/08/2007 13:14:11 PAGE 17  

 956   9                                    AIN02_ADDR[0]=0x04;
 957   9                                    AIN02_ADDR[1]=0x00;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -