📄 water.lst
字号:
1168 2 }*/
1169 2 Time3=1;
1170 2 Second=0;
1171 2 }
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 20
1172 1 TIMECON=0x13;
1173 1 }
1174
1175 void Longdelay()
1176 {
1177 1 int i=0;
1178 1 TimeCountInt();
1179 1 TIMECON=0x13;
1180 1 while(!i)
1181 1 {
1182 2 i=Time;
1183 2 }
1184 1 delay(5000);
1185 1 delay(50000);
1186 1 TIMECON=0x00;
1187 1 delay(50000);
1188 1 delay(50000);
1189 1 }
1190 /***************************************多次开关水泵测流量************************************/
1191 void FlowDet()
1192 {
1193 1 int j=0;
1194 1 int i=0;
1195 1 int k=0;
1196 1 int s=0;
1197 1 while(!s)
1198 1 {
1199 2 k++;
1200 2 if(k==3)
1201 2 {
1202 3 s=1;
1203 3 }
1204 2 if(Rate<20)
1205 2 {
1206 3 WATER=1;
1207 3 for(j=0;j<10;j++)
1208 3 {
1209 4 delay(50000);
1210 4 delay(50000);
1211 4 delay(50000);
1212 4 delay(50000);
1213 4 delay(50000);
1214 4 delay(50000);
1215 4 delay(50000);
1216 4 delay(50000);
1217 4 delay(50000);
1218 4 delay(50000);
1219 4 delay(50000);
1220 4 delay(50000);
1221 4 delay(50000);
1222 4 }
1223 3 delay(1000);
1224 3 WATER=0;
1225 3 for(i=0;i<10;i++)
1226 3 {
1227 4 delay(50000);
1228 4 delay(50000);
1229 4 delay(50000);
1230 4 delay(50000);
1231 4 delay(50000);
1232 4 delay(50000);
1233 4 delay(50000);
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 21
1234 4 delay(50000);
1235 4 delay(50000);
1236 4 delay(50000);
1237 4 }
1238 3 }
1239 2 if(Rate>30)
1240 2 {
1241 3 nop();
1242 3 s=1;
1243 3 }
1244 2 }
1245 1 }
1246 void closeWater()
1247 {
1248 1 if(Rate<30)
1249 1 {
1250 2 WATER=1;
1251 2 }
1252 1 }
1253
1254 /***************************************save***************************************/
1255 void StoreData1(void)
1256 {
1257 1 bit bEA;
1258 1 bEA=EA;
1259 1 EA=0;
1260 1 EADRH = 0x00;
1261 1
1262 1 EADRL=0x84;
1263 1 EDATA1=TL/256; //保存设置电流值,按关闭键时保存
1264 1 EDATA2=TL%256;
1265 1 ECON = 0x05; //擦除一页
1266 1 delay(1);
1267 1 ECON = 0x02; //写一页
1268 1 EA=bEA;
1269 1 }
1270
1271 void StoreData2(void)
1272 {
1273 1 bit bEA;
1274 1 bEA=EA;
1275 1 EA=0;
1276 1 EADRH = 0x00;
1277 1
1278 1 EADRL=0x85;
1279 1 EDATA1=Tset/256; //保存设置温度值,按关闭键时保存
1280 1 EDATA2=Tset%256;
1281 1 ECON = 0x05; //擦除一页
1282 1 delay(1);
1283 1 ECON = 0x02; //写一页
1284 1 EA=bEA;
1285 1 }
1286
1287 /****************************************调用存储***************************************/
1288 void RetriveData1(void)
1289 {
1290 1 bit bEA;
1291 1 int s1, s2;
1292 1 bEA = EA;
1293 1 EA = 0;
1294 1
1295 1 EADRH = 0x00;
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 22
1296 1
1297 1 EADRL = 0x84;
1298 1 delay(1);
1299 1 ECON = 0x01; //read
1300 1 delay(1);
1301 1 s1 = EDATA1;
1302 1 s2 = EDATA2;
1303 1 TL = s1 *256 + s2;
1304 1 EA=bEA;
1305 1 }
1306
1307 void RetriveData2(void)
1308 {
1309 1 bit bEA;
1310 1 int s1, s2;
1311 1 bEA = EA;
1312 1 EA = 0;
1313 1
1314 1 EADRH = 0x00;
1315 1
1316 1 EADRL = 0x85;
1317 1 delay(1);
1318 1 ECON = 0x01; //read
1319 1 delay(1);
1320 1 s1 = EDATA1;
1321 1 s2 = EDATA2;
1322 1 Tset = s1 *256 + s2;
1323 1 EA=bEA;
1324 1 }
1325
1326
1327 /****************************************开机测温判断********************************/
1328 commpare()
1329 {
1330 1 int i;
1331 1 if(WATER==0)
1332 1 {
1333 2 GetTemTout();
1334 2 delay(100);
1335 2 GetTemTout();
1336 2 T=Tout;
1337 2 Second=0;
1338 2 TimeCountInt();
1339 2 TIMECON=0x13;
1340 2 while(!i)
1341 2 {
1342 3 i=Time1;
1343 3 nop();
1344 3 GetTemTout();
1345 3 }
1346 2 TIMECON=0x00;
1347 2 Second=0;
1348 2 GetTemTout();
1349 2 if(abs(Tout-T)>0.8)
1350 2 {
1351 3 RetriveData1(); //调用以前的值
1352 3 }
1353 2 else if(abs(Tout-T)<0.1)
1354 2 {
1355 3 Pwmout(26124);
1356 3 TIMECON=0x13; //满功率并计时并存储
1357 3 while(!i)
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 23
1358 3 {
1359 4 i=Time2;
1360 4 nop();
1361 4 GetTemTout();
1362 4 }
1363 3 TL=Second-1;;
1364 3 delay(5000);
1365 3 Second=0;
1366 3 StoreData1();
1367 3 TIMECON=0x00;
1368 3 }
1369 2 }
1370 1 else
1371 1 {
1372 2 nop();
1373 2 }
1374 1 }
1375
1376
1377 /***************************************出错报警*********************************************/
1378 void Fault()
1379 {
1380 1 int a;
1381 1 a=abs(Tout-ToutB);
1382 1 if(a>1)
1383 1 {
1384 2 NT = 0;
1385 2 }
1386 1 else
1387 1 {
1388 2 NT++;
1389 2 }
1390 1 ToutB=Tout;
1391 1 if(water==1)
1392 1 {
1393 2 PWMCON=0x80;
1394 2 PWM=0;
1395 2 Star=0;
1396 2 Pout=0;
1397 2 delay(100);
1398 2 WATER=1;
1399 2 write7279(SEGON,LED_LackWater);
1400 2 write7279(SEGON,LED_FlowLow);
1401 2 write7279(SEGOFF, LED_Standby);
1402 2 }
1403 1
1404 1 if(Rate<20)
1405 1 {
1406 2 PWMCON=0x80;
1407 2 PWM=0;
1408 2 Star=0;
1409 2 Pout=0;
1410 2 WATER=1;
1411 2 Errorflag[0] = 1;
1412 2 ErrorNum ++;
1413 2 write7279(SEGON,LED_FlowLow);
1414 2 write7279(SEGOFF, LED_Standby);
1415 2 }
1416 1 else if(Rate<40)
1417 1 {
1418 2 Errorflag[1] = 1;
1419 2 ErrorNum ++;
C51 COMPILER V7.06 WATER 10/28/2007 09:52:35 PAGE 24
1420 2 write7279(SEGON,LED_FlowLow);
1421 2 }
1422 1 else if(Tout>4000&&Star==1)
1423 1 {
1424 2 Errorflag[2] = 1;
1425 2 ErrorNum ++;
1426 2 write7279(SEGON,LED_Fault);
1427 2 }
1428 1 else if(NT>80)
1429 1 {
1430 2 if(abs(Tout-Tset)>100&&Star==1)
1431 2 {
1432 3 Errorflag[3] = 1;
1433 3 ErrorNum ++;
1434 3 write7279(SEGON,LED_Fault);
1435 3 }
1436 2 }
1437 1 else if(Tout<450)
1438 1 {
1439 2 PWMCON=0x80;
1440 2 PWM=0;
1441 2 Star=0;
1442 2 Pout=0;
1443 2 Errorflag[5] = 1;
1444 2 ErrorNum ++;
1445 2 write7279(SEGON,LED_Fault);
1446 2 write7279(SEGOFF, LED_Standby);
1447 2 }
1448 1 else
1449 1 {
1450 2 ErrorNum=0;
1451 2 write7279(SEGOFF,LED_FlowLow);
1452 2 write7279(SEGOFF,LED_Fault);
1453 2 write7279(SEGOFF,LED_LackWater);
1454 2 }
1455 1 }
1456 /**********************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -