📄 f020.lst
字号:
958 9 //AIN02_ADDR[2]=0x08;//AIN0.2 存储区域0x040000~0x05FFFF共128K
959 9 }
960 8
961 8 }
962 7 ET0=1;
963 7 TR0=1;
964 7 }//end if m2>0x02FF
965 6 if(n2>0X12FF)//地址注意之处
966 6 {
967 7 TR0=0;
968 7 ET0=0;
969 7 n2=0x1200;//AIN1.2缓存区首地址
970 7
971 7 switch (first_flag12)
972 7 {
973 8 case 0X00: Read_Data_T0_Flash (AIN12_ADDR[0],AIN12_ADDR[1],0x08,n2+8,248);
974 8 AIN12_ADDR[1]++;
975 8 //AIN12_ADDR[2]=0x00;
976 8 first_flag12=1;
977 8 break;
978 8 case 0X01: Read_Data_T0_Flash (AIN12_ADDR[0],AIN12_ADDR[1],0x00,n2,256);
979 8 AIN12_ADDR[1]++;
980 8 //AIN12_ADDR[2]=0x00;
981 8 break;
982 8 default:break;
983 8 }
984 7
985 7 if(AIN12_ADDR[1]>255)
986 7 {
987 8 AIN12_ADDR[1]=0x00;
988 8 //AIN12_ADDR[2]=0x00;
989 8 AIN12_ADDR[0]++;
990 8 if( AIN12_ADDR[0]>=0X16)//存储区域0x140000~0x15FFFF共128K
991 8 {
992 9 FLASH_SE(0x14,0x00,0x00);
993 9 FLASH_SE(0x15,0x00,0x00);
994 9
995 9 first_flag12=0;
996 9 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x14,0x
-00,0x00,0x12);//通道AIN1。2
997 9 AIN12_ADDR[0]=0x14;
998 9 AIN12_ADDR[1]=0x00;
999 9 //AIN12_ADDR[2]=0x08;//AIN1.2 存储区域0x140000~0x15FFFF共128K
1000 9 }
1001 8
1002 8 }
1003 7 ET0=1;
1004 7 TR0=1;
1005 7 }//end if n2>0x12FF
1006 6 /*****************AIN02************************************/
1007 6 /***信号517-1*******/
1008 6 /***射控驱动器速度给定***/
1009 6 /***电压范围0~15V*****/
1010 6 /*****阀值0.5V*****/
1011 6 /*******还原算法Xn*9.4922*11********/
1012 6 /**AIN0.2 存储区域0x040000~0x05FFFF共128K*/
1013 6 last_xn=x[0x2200];//AIN0.2上次值缓存
1014 6 AMX0SL = 0x02;//AIN0.2 //AIN00-AIN07->0X00-0X07
1015 6 AD0INT = 0; // 清除ADC转换完成标志
1016 6 AD0BUSY = 1;
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 18
1017 6 Delay_us(5);
1018 6 while (!AD0INT);
1019 6 current_xn= ADC0H;
1020 6 Temp_AD=abs(current_xn-last_xn);
1021 6 x[0x2200]= current_xn;
1022 6 if(Temp_AD>=B)//阀值设定
1023 6 {
1024 7 if(timepoint>253)
1025 7 {
1026 8 x[m2-2]=current_xn;
1027 8 //m2++;
1028 8 x[m2-1]=0XFE;
1029 8 //m2++;
1030 8 }
1031 7 else
1032 7 {
1033 8 x[m2]=current_xn;
1034 8 m2++;
1035 8 x[m2]=timepoint;
1036 8 m2++;
1037 8 }
1038 7 if(m2>0X02FF)//地址注意之处
1039 7 {
1040 8 TR0=0;
1041 8 ET0=0;
1042 8 m2=0x0200;//AIN0.2缓存区首地址
1043 8
1044 8 switch (first_flag02)
1045 8 {
1046 9 case 0X00: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x08,m2+8,248);
1047 9 AIN02_ADDR[1]++;
1048 9 //AIN02_ADDR[2]=0x00;
1049 9 first_flag02=1;
1050 9 break;
1051 9 case 0X01: Read_Data_T0_Flash (AIN02_ADDR[0],AIN02_ADDR[1],0x00,m2,256);
1052 9 AIN02_ADDR[1]++;
1053 9 //AIN02_ADDR[2]=0x00;
1054 9 break;
1055 9 default:break;
1056 9 }
1057 8 if(AIN02_ADDR[1]>255)
1058 8 {
1059 9 AIN02_ADDR[1]=0x00;
1060 9 //AIN02_ADDR[2]=0x00;
1061 9 AIN02_ADDR[0]++;
1062 9 if( AIN02_ADDR[0]>=0x06)
1063 9 {
1064 10 FLASH_SE(0x04,0x00,0x00);
1065 10 FLASH_SE(0x05,0x00,0x00);
1066 10
1067 10 first_flag02=0;
1068 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x04,0x
-00,0x00,0x02);//通道AIN0。2
1069 10 AIN02_ADDR[0]=0x04;
1070 10 AIN02_ADDR[1]=0x00;
1071 10 //AIN02_ADDR[2]=0x08;//AIN0.2 存储区域0x040000~0x05FFFF共128K
1072 10 }
1073 9
1074 9 }
1075 8 TR0=1;
1076 8 ET0=1;
1077 8 }//end if m2>0X02FF
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 19
1078 7 }//end if Temp_AD>B
1079 6 /*****************AIN12************************************/
1080 6 /***信号562-1*******/
1081 6 /***火控台单发射击开关***/
1082 6 /***电压范围0~15V*****/
1083 6 /*****阀值1.5V*****/
1084 6 /*******还原算法Xn*9.4922*11********/
1085 6 /**AIN1.2 存储区域0x140000~0x15FFFF共128K*/
1086 6 last_xn=x[0x3200];//AIN1.2上次值缓存
1087 6 AMX1SL=0x02;//AIN1.2
1088 6 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
1089 6 ADC1CN |= 0x10;// AD1BUSY = 1;
1090 6 Delay_us(5);
1091 6 while (!ADC1CN&0x20); //等待AD1INT=1;
1092 6 current_xn=ADC1;
1093 6 Temp_AD=abs(current_xn-last_xn);
1094 6 x[0x3200]= current_xn;
1095 6 if(Temp_AD>=A)//阀值设定
1096 6 {
1097 7 if(timepoint>253)
1098 7 {
1099 8 x[n2-2]=current_xn;
1100 8 //n2++;
1101 8 x[n2-1]=0XFE;
1102 8 //n2++;
1103 8 }
1104 7 else
1105 7 {
1106 8 x[n2]=current_xn;
1107 8 n2++;
1108 8 x[n2]=timepoint;
1109 8 n2++;
1110 8 }
1111 7 if(n2>0X12FF)//注意之处
1112 7 {
1113 8 TR0=0;
1114 8 ET0=0;
1115 8 n2=0x1200;//AIN1.2缓存区首地址
1116 8
1117 8 switch (first_flag12)
1118 8 {
1119 9 case 0X00: Read_Data_T0_Flash (AIN12_ADDR[0],AIN12_ADDR[1],0x08,n2+8,248);
1120 9 AIN12_ADDR[1]++;
1121 9 //AIN12_ADDR[2]=0x00;
1122 9 first_flag12=1;
1123 9 break;
1124 9 case 0X01: Read_Data_T0_Flash (AIN12_ADDR[0],AIN12_ADDR[1],0x00,n2,256);
1125 9 AIN12_ADDR[1]++;
1126 9 //AIN12_ADDR[2]=0x00;
1127 9 break;
1128 9 default:break;
1129 9 }
1130 8
1131 8 if(AIN12_ADDR[1]>255)
1132 8 {
1133 9 AIN12_ADDR[1]=0x00;
1134 9 // AIN12_ADDR[2]=0x00;
1135 9 AIN12_ADDR[0]++;
1136 9 if( AIN12_ADDR[0]>=0X16)//存储区域0x140000~0x15FFFF共128K
1137 9 {
1138 10 FLASH_SE(0x14,0x00,0x00);
1139 10 FLASH_SE(0x15,0x00,0x00);
C51 COMPILER V7.50 F020 09/08/2007 13:14:11 PAGE 20
1140 10
1141 10 first_flag12=0;
1142 10 Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x14,0x
-00,0x00,0x12);//通道AIN1。2
1143 10 AIN12_ADDR[0]=0x14;
1144 10 AIN12_ADDR[1]=0x00;
1145 10 //AIN12_ADDR[2]=0x08;//AIN1.2 存储区域0x140000~0x15FFFF共128K
1146 10 }
1147 9
1148 9 }
1149 8 ET0=1;
1150 8 TR0=1;
1151 8 }//end if n2>0x12FF
1152 7 }//end if Temp_AD>A
1153 6
1154 6 }//end if AIN==0X03
1155 5 /**********************************END AIN=0X03**********************************/
1156 5
1157 5 /***********************************START AIN=0X04*********************************************/
1158 5 if(AIN==0X04)
1159 5 {
1160 6 AIN_Flag=0;
1161 6 /***************************AD LONG TIME NO CHANGE****************************/
1162 6 if(timepoint>253)
1163 6 {
1164 7 TR0=0;
1165 7 ET0=0;
1166 7
1167 7 AMX0SL = 0x03;//AIN0.3 //AIN00-AIN07->0X00-0X07
1168 7 AD0INT = 0; // 清除ADC转换完成标志
1169 7 AD0BUSY = 1;
1170 7 Delay_us(5);
1171 7 while (!AD0INT);
1172 7 current_xn = ADC0H;
1173 7 x[m3]=current_xn;
1174 7 m3++;
1175 7 x[m3]=0xFE;
1176 7 m3++;
1177 7
1178 7
1179 7 AMX1SL=0x03;//AIN1.3
1180 7 ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
1181 7 ADC1CN |= 0x10;// AD1BUSY = 1;
1182 7 Delay_us(5);
1183 7 while (!ADC1CN&0x20); //等待AD1INT=1;
1184 7 current_xn=ADC1;
1185 7 x[n3]=current_xn;
1186 7 n3++;
1187 7 x[n3]=0xFE;
1188 7 n3++;
1189 7 ET0=1;
1190 7 TR0=1;
1191 7
1192 7 }
1193 6 if(m3>0X03FF)
1194 6 {
1195 7 TR0=0;
1196 7 ET0=0;
1197 7 m3=0x0300;//AIN0.3缓存区首地址
1198 7 switch (first_flag03)
1199 7 {
1200 8 case 0X00: Read_Data_T0_Flash (AIN03_ADDR[0],AIN03_ADDR[1],0x08,m3+8,248);
C51 COMPILER V7.50 F020
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -