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

📄 adsample.lst

📁 该程序完成了c8051外围电路的驱动和串口协议的编写。希望能给大家学习51单片机带来帮助
💻 LST
📖 第 1 页 / 共 5 页
字号:
 907   1              while(i<30)     //30
 908   1              {
 909   2                      AD.uiMaxValue0[i] = 1;                          
 910   2                      i++;                            
 911   2              }
 912   1              i=0;
 913   1              for(j=0;j<30;j++) //30
 914   1              {
C51 COMPILER V7.10   ADSAMPLE                                                              09/18/2008 14:09:32 PAGE 16  

 915   2                      if((AD.uiMinGroup0[j]!=uiPassedGroupIndex)&&(AD.uiMinGroup0[j] < uiGroupNum))
 916   2                      {
 917   3                              AD.uiMinGroup0[i]=AD.uiMinGroup0[j];
 918   3                              AD.uiMinValue0[i]=AD.uiMinValue0[j];
 919   3                              i++;                                            
 920   3                      }                                       
 921   2              }
 922   1              while(i<30)   //30
 923   1              {       
 924   2                      AD.uiMinValue0[i] = 4095;                       
 925   2                      i++;    
 926   2                                              
 927   2              }                                         
 928   1              FeedDog();                                       
 929   1      }               
 930          
 931          //*************************************************/
 932          //*                  CH1 PKPK Value               */
 933          //*************************************************/
 934          void CalculatePKPKValue1(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGrou
             -pIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum)
 935          {                 
 936   1              char i;
 937   1              unsigned char j,k;           
 938   1              unsigned int s,m; 
 939   1              idata unsigned int xdata *PTR;
 940   1      
 941   1      //      PTR = SrcData + uiSampleLocation;   
 942   1        
 943   1              m = SrcData + uiSampleLocation + AD.uiGroupLength;
 944   1      
 945   1      //      for(m=0;m<AD.uiGroupLength;m++)
 946   1              for(PTR = SrcData + uiSampleLocation;PTR<m;PTR++)
 947   1              {                                  
 948   2                      FeedDog();      
 949   2      //              s = *(PTR + m);  
 950   2                      s = *PTR;        
 951   2              //-------------------------------maximum value-------------------------
 952   2              
 953   2                      if(s>=AD.uiMaxValue1[29])
 954   2                      {         
 955   3                              if(AD.uchCurMaxCount<15)
 956   3                              {
 957   4                                      AD.uchCurMaxCount++;
 958   4                                      k=29;
 959   4                              }
 960   3                              else
 961   3                              {
 962   4                                      k=0;
 963   4                                      for(i=29;i>=0;i--)
 964   4                                      {
 965   5                                              if((AD.uiMaxGroup1[i]==uiCurGroupIndex)&&(s>AD.uiMaxValue1[i]))   
 966   5                                              {
 967   6                                                      k=i;
 968   6                                                      break;
 969   6                                              }                               
 970   5                                      }                       
 971   4                              }                       
 972   3                              if(k!=0)
 973   3                              {
 974   4                                      AD.uiMaxValue1[k] = s;
 975   4                                      AD.uiMaxGroup1[k] = uiCurGroupIndex;
C51 COMPILER V7.10   ADSAMPLE                                                              09/18/2008 14:09:32 PAGE 17  

 976   4                                      for(i=k-1;i>=0;i--)
 977   4                                      {
 978   5                                              if(s>=AD.uiMaxValue1[i])
 979   5                                              {                                       
 980   6                                                      AD.uiMaxValue1[i+1] = AD.uiMaxValue1[i];
 981   6                                                      AD.uiMaxGroup1[i+1] = AD.uiMaxGroup1[i];
 982   6                                                      AD.uiMaxValue1[i] = s;
 983   6                                                      AD.uiMaxGroup1[i] = uiCurGroupIndex;
 984   6                                              }
 985   5                                              else
 986   5                                              {
 987   6                                                      break;                          
 988   6                                              }                               
 989   5                                      }
 990   4                              }                       
 991   3                      }
 992   2              //-------------------------------minimum value------------------------------
 993   2                      if(s<=AD.uiMinValue1[29])
 994   2                      {         
 995   3                              if(AD.uchCurMinCount<15)
 996   3                              {
 997   4                                      AD.uchCurMinCount++;
 998   4                                      k=29;
 999   4                              }
1000   3                              else
1001   3                              {
1002   4                                      k=0;
1003   4                                      for(i=29;i>=0;i--)
1004   4                                      {
1005   5                                              if((AD.uiMinGroup1[i]==uiCurGroupIndex)&&(s<AD.uiMinValue1[i]))
1006   5                                              {
1007   6                                                      k=i;
1008   6                                                      break;
1009   6                                              }                               
1010   5                                      }                       
1011   4                              }         
1012   3                              if(k!=0)
1013   3                              {                               
1014   4                                      AD.uiMinValue1[k] = s;
1015   4                                      AD.uiMinGroup1[k] = uiCurGroupIndex;
1016   4                                      for(i=k-1;i>=0;i--)
1017   4                                      {
1018   5                                              if(s<=AD.uiMinValue1[i])
1019   5                                              {                                                               
1020   6                                                      AD.uiMinValue1[i+1] = AD.uiMinValue1[i];
1021   6                                                      AD.uiMinGroup1[i+1] = AD.uiMinGroup1[i];
1022   6                                                      AD.uiMinValue1[i] = s;
1023   6                                                      AD.uiMinGroup1[i] = uiCurGroupIndex;                                    
1024   6                                              }                               
1025   5                                      }       
1026   4                              }                                               
1027   3                      } 
1028   2              }
1029   1      //------------------------Group Replacement-------------------  
1030   1              AD.uchCurMinCount=0;       
1031   1              AD.uchCurMaxCount=0;
1032   1                      
1033   1              AD.uiCurPKPKValue[1]=((AD.uiMaxValue1[14]+AD.uiMinValue1[14])*3/2+AD.uiLastPKPKValue[1])>>2;
1034   1              AD.uiLastPKPKValue[1]=AD.uiCurPKPKValue[1];        
1035   1      
1036   1                                              
1037   1              i=0;
C51 COMPILER V7.10   ADSAMPLE                                                              09/18/2008 14:09:32 PAGE 18  

1038   1              for(j=0;j<30;j++)
1039   1              {
1040   2                      if((AD.uiMaxGroup1[j]!=uiPassedGroupIndex)&&(AD.uiMaxGroup1[j] < uiGroupNum))
1041   2                      {
1042   3                              AD.uiMaxGroup1[i]=AD.uiMaxGroup1[j];
1043   3                              AD.uiMaxValue1[i]=AD.uiMaxValue1[j];
1044   3                              i++;                                            
1045   3                      }                                       
1046   2              }
1047   1              while(i<30)
1048   1              {
1049   2                      AD.uiMaxValue1[i] = 1; 
1050   2                      i++;                            
1051   2              }
1052   1              i=0;
1053   1              for(j=0;j<30;j++)
1054   1              {
1055   2                      if((AD.uiMinGroup1[j]!=uiPassedGroupIndex)&&(AD.uiMinGroup1[j] < uiGroupNum))
1056   2                      {
1057   3                              AD.uiMinGroup1[i]=AD.uiMinGroup1[j];
1058   3                              AD.uiMinValue1[i]=AD.uiMinValue1[j];
1059   3                              i++;                                            
1060   3                      }                                       
1061   2              }
1062   1              while(i<30)
1063   1              {
1064   2                      AD.uiMinValue1[i] = 4095; 
1065   2                      i++;                            
1066   2              } 
1067   1              FeedDog();                                               
1068   1      }       
1069                                                                    
1070          //*************************************************/
1071          //*                  CH2 PKPK Value               */
1072          //*************************************************/
1073          void CalculatePKPKValue2(unsigned int xdata  *SrcData,unsigned int uiSampleLocation,unsigned int uiCurGrou
             -pIndex,unsigned int uiPassedGroupIndex,unsigned int uiGroupNum)
1074          {                 
1075   1              char i;
1076   1              unsigned char j,k;   
1077   1              unsigned int s,m;  
1078   1              idata unsigned int xdata *PTR;
1079   1      
1080   1      //      PTR = SrcData + uiSampleLocation;                           
1081   1        
1082   1      //      for(m=0;m<AD.uiGroupLength;m++)
1083   1              m = SrcData + uiSampleLocation + AD.uiGroupLength;
1084   1               
1085   1              for(PTR = SrcData + uiSampleLocation;PTR < m;PTR++)
1086   1              {                                  
1087   2                      FeedDog();    
1088   2      //              s = *(PTR + m);
1089   2                      s = *PTR;
1090   2       
1091   2              //-------------------------------maximum value-------------------------
1092   2              
1093   2                      if(s>=AD.uiMaxValue2[29])  
1094   2                      {         
1095   3                              if(AD.uchCurMaxCount<5)   
1096   3                              {
1097   4                                      AD.uchCurMaxCount++;
1098   4                                      k=29;                           
C51 COMPILER V7.10   ADSAMPLE                                                              09/18/2008 14:09:32 PAGE 19  

1099   4                              }
1100   3                              else
1101   3                              {
1102   4                                      k=0;
1103   4                                      for(i=29;i>=0;i--)
1104   4                                      {
1105   5                                              if((AD.uiMaxGroup2[i]==uiCurGroupIndex)&&(s>AD.uiMaxValue2[i]))   
1106   5                                              {
1107   6                                                      k=i;
1108   6                                                      break;
1109   6                                              }                               
1110   5                                      }                       
1111   4                              }                       
1112   3                              if(k!=0)
1113   3                              {
1114   4                                      AD.uiMaxValue2[k] = s;
1115   4                                      AD.uiMaxGroup2[k] = uiCurGroupIndex;
1116   4                                      for(i=k-1;i>=0;i--)
1117   4                                      {
1118   5                                              if(s>=AD.uiMaxValue2[i])
1119   5                                              {                                       
1120   6                                                      AD.uiMaxValue2[i+1] = AD.uiMaxValue2[i];
1121   6                                                      AD.uiMaxGroup2[i+1] = AD.uiMaxGroup2[i];
1122   6                                                      AD.uiMaxValue2[i] = s;
1123   6                                                      AD.uiMaxGroup2[i] = uiCurGroupIndex;
1124   6                                              }
1125   5                                              else
1126   5                                              {
1127   6                                                      break;                          
1128   6                                              }                               
1129   5                                      }
1130   4                              }                       
1131   3                      }
1132   2              //----------------------

⌨️ 快捷键说明

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