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

📄 gy33485.lst

📁 红外抄表系统的源代码。利用非电信号传送控制信息和数据信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
1124          //////////////////////////////////////////////////
1125          //**********************eeprom stop******************************//
1126          void DisStartT(uchar id,uint Eeprom)
1127          {
1128   1           IdNum = id;
1129   1           a_start = 1;
1130   1           a_stop = 0;
1131   1           rd_s_eeprom(FaultTime,Eeprom,sizeof(FaultTime));
1132   1           switch(Key3Num)
1133   1           {
1134   2                case 1:
1135   2                case 2:
1136   2                case 3:
1137   2                     DispIC1_start_stop(S1,FaultTime);
1138   2                break;
1139   2                case 4:
1140   2                case 5:
1141   2                     DispIC1_start_stop(S2,FaultTime);
1142   2                break;
1143   2                case 6:
1144   2                     DispIC1_start_stop(S3,FaultTime);
1145   2                break;
1146   2            }
1147   1      }
1148          void DisStopT(uchar id,uint Eeprom)
1149          {
1150   1           IdNum = id;
1151   1           a_start = 0;
1152   1           a_stop = 1;
1153   1           rd_s_eeprom(FaultTime,Eeprom,sizeof(FaultTime));
1154   1           switch(Key3Num)
1155   1           {
1156   2                case 1:
1157   2                case 2:
1158   2                case 3:
1159   2                     DispIC1_start_stop(S1,FaultTime);
1160   2                break;
1161   2                case 4:
1162   2                case 5:
1163   2                     DispIC1_start_stop(S2,FaultTime);
1164   2                break;
1165   2                case 6:
1166   2                     DispIC1_start_stop(S3,FaultTime);
1167   2                break;
1168   2            }
1169   1      }
1170          uchar Key2(void)
1171          {
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 20  

1172   1         uchar flag=0;
1173   1         if(P3_5==0)
1174   1              flag=1;
1175   1         else flag=0;
1176   1         return(flag);
1177   1      }
1178          uchar Key3(void)
1179          {
1180   1         uchar flag=0;
1181   1         if(P2_4==0)
1182   1              flag=1;
1183   1         else flag=0;
1184   1         return(flag);
1185   1      }
1186          
1187          void main()
1188          {
1189   1           uchar idata warning_flag;
1190   1           int  i;
1191   1           uchar  disp_buf[6];
1192   1           uchar msec;
1193   1      
1194   1           uchar num1 = 0;//5-23 added
1195   1           uchar num2 = 0;//5-25 added
1196   1           uchar num3 = 0;//5-25 added
1197   1           uchar num4 = 0;//5-25 added
1198   1           uchar num5 = 0;//5-25 added
1199   1           uchar num6 = 0;//5-25 added
1200   1           InitSci();//设置2400波特率,用来产生载波的定时器T0初值//
1201   1      
1202   1      
1203   1      
1204   1           P2_5 = 0;
1205   1           fbase = 0;
1206   1           prefbase = 0;
1207   1           disnum_flag = 0;
1208   1      
1209   1           rd_s_eeprom(disp_buf, EMPTY_EEPROM, 6);
1210   1           warning_flag = 0;
1211   1           for(i=0;i<6;i++)
1212   1           {
1213   2              if(disp_buf[i]!='A') warning_flag++;
1214   2           }
1215   1           if(warning_flag)      //initialize eeprom value
1216   1           {
1217   2              for(i=0;i<6;i++)  disp_buf[i]='A';
1218   2              wr_s_eeprom(disp_buf, EMPTY_EEPROM, 6);
1219   2              for(i=0;i<sizeof(Ua_fault);i++)  disp_buf[i]=0;
1220   2              wr_s_eeprom(disp_buf, Ua_EEPROM, sizeof(Ua_fault));
1221   2              wr_s_eeprom(disp_buf, Ub_EEPROM, sizeof(Ua_fault));
1222   2              wr_s_eeprom(disp_buf, Uc_EEPROM, sizeof(Ua_fault));
1223   2              wr_s_eeprom(disp_buf, Ia_EEPROM, sizeof(Ua_fault));
1224   2              wr_s_eeprom(disp_buf, Ib_EEPROM, sizeof(Ua_fault));
1225   2              wr_s_eeprom(disp_buf, Ic_EEPROM, sizeof(Ua_fault));
1226   2              wr_s_eeprom(disp_buf, Ip_EEPROM, sizeof(Ua_fault));
1227   2              wr_s_eeprom(disp_buf, UX_EEPROM, sizeof(Ua_fault));
1228   2      
1229   2              wr_s_eeprom(disp_buf, Num_EEPROM, sizeof(disnum[0]));//initialize all fault times
1230   2      
1231   2              for(i=0;i<20;i++)
1232   2              {
1233   3                  wr_s_eeprom(disp_buf, UaStartEeprom, sizeof(FaultTime));//initialize all fault times
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 21  

1234   3                  UaStartEeprom += 6;
1235   3              }
1236   2              for(i=0;i<20;i++)
1237   2              {
1238   3                  wr_s_eeprom(disp_buf, UbStartEeprom, sizeof(FaultTime));//initialize all fault times
1239   3                  UbStartEeprom += 6;
1240   3              }
1241   2              for(i=0;i<20;i++)
1242   2              {
1243   3                  wr_s_eeprom(disp_buf, UcStartEeprom, sizeof(FaultTime));//initialize all fault times
1244   3                  UcStartEeprom += 6;
1245   3              }
1246   2              for(i=0;i<20;i++)
1247   2              {
1248   3                  wr_s_eeprom(disp_buf, IaStartEeprom, sizeof(FaultTime));//initialize all fault times
1249   3                  IaStartEeprom += 6;
1250   3              }
1251   2              for(i=0;i<20;i++)
1252   2              {
1253   3                  wr_s_eeprom(disp_buf, IcStartEeprom, sizeof(FaultTime));//initialize all fault times
1254   3                  IcStartEeprom += 6;
1255   3              }
1256   2              for(i=0;i<20;i++)
1257   2              {
1258   3                  wr_s_eeprom(disp_buf, IpStartEeprom, sizeof(FaultTime));//initialize all fault times
1259   3                  IpStartEeprom += 6;
1260   3              }
1261   2           }
1262   1           rd_s_eeprom((uchar *)(&Ua_fault), Ua_EEPROM, sizeof(Ua_fault));
1263   1           rd_s_eeprom((uchar *)(&Ub_fault), Ub_EEPROM, sizeof(Ub_fault));
1264   1           rd_s_eeprom((uchar *)(&Uc_fault), Uc_EEPROM, sizeof(Uc_fault));
1265   1      
1266   1           rd_s_eeprom((uchar *)(&Ia_fault), Ia_EEPROM, sizeof(Ia_fault));
1267   1           rd_s_eeprom((uchar *)(&Ib_fault), Ib_EEPROM, sizeof(Ib_fault));
1268   1           rd_s_eeprom((uchar *)(&Ic_fault), Ic_EEPROM, sizeof(Ic_fault));
1269   1           rd_s_eeprom((uchar *)(&Ip_fault), Ip_EEPROM, sizeof(Ip_fault));
1270   1           rd_s_eeprom((uchar *)(&UX_fault), UX_EEPROM, sizeof(UX_fault));
1271   1      
1272   1           rd_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));  //read all fault times
1273   1      
1274   1           rd_s_eeprom(disnum+1, 66, sizeof(disnum[1]));  //read each fault times
1275   1           if(disnum[1]&&!UaIflag)
1276   1           {
1277   2                UaStartEeprom += disnum[1]*12;
1278   2                UaIflag = 1;
1279   2           }
1280   1           rd_s_eeprom(disnum+2, 67, sizeof(disnum[2]));  //read each fault times
1281   1           if(disnum[2]&&!UbIflag)
1282   1           {
1283   2                UbStartEeprom += disnum[2]*12;
1284   2                UbIflag = 1;
1285   2           }
1286   1           rd_s_eeprom(disnum+3, 68, sizeof(disnum[3]));  //read each fault times
1287   1           if(disnum[3]&&!UcIflag)
1288   1           {
1289   2                UcStartEeprom += disnum[3]*12;
1290   2                UcIflag = 1;
1291   2           }
1292   1           rd_s_eeprom(disnum+4, 69, sizeof(disnum[4]));  //read each fault times
1293   1           if(disnum[4]&&!IaIflag)
1294   1           {
1295   2                IaStartEeprom += disnum[4]*12;
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 22  

1296   2                IaIflag = 1;
1297   2           }
1298   1           rd_s_eeprom(disnum+6, 70, sizeof(disnum[6]));  //read each fault times
1299   1           if(disnum[6]&&!IcIflag)
1300   1           {
1301   2                IcStartEeprom += disnum[6]*12;
1302   2                IcIflag = 1;
1303   2           }
1304   1           rd_s_eeprom(disnum+7, 71, sizeof(disnum[7]));  //read each fault times
1305   1           if(disnum[7]&&!IpIflag)
1306   1           {
1307   2                IpStartEeprom += disnum[7]*12;
1308   2                IpIflag = 1;
1309   2           }
1310   1      
1311   1      
1312   1           beep = 1;
1313   1           clrbit = 1;
1314   1      
1315   1      
1316   1           /*InitTimer0();*///5_17 shaded
1317   1          InitTimer2();//5_17 shaded
1318   1           //InitSci();//设置2400波特率,用来产生载波的定时器T0初值//
1319   1           warning_flag = 0;
1320   1      
1321   1           /////////LCD///////////////
1322   1           LCD_Reset(0x01);   //reset LCD_IC1
1323   1           LCD_Reset(0x02);   //reset LCD_IC2
1324   1           Init_IC1();        //initialize LCD_IC1
1325   1           Init_IC2();        //initialize LCD_IC2
1326   1      
1327   1           Set1302(Curtime);
1328   1           W1302(0x90,0x0A5); //enable charge 1302 connected
1329   1           Curtime[6] = R1302(0x81);
1330   1           Curtime[6] = hex_to_dec(Curtime[6]);
1331   1          // rd_s_eeprom(FaultTime,200,sizeof(FaultTime));
1332   1           //FaultTime[6];
1333   1      
1334   1           while(1)     //for test
1335   1           {        Change_phase();
1336   2                    SciSend();
1337   2                    if(SpIntval==0) TotalNumOfTrb(disnum[0]);
1338   2      
1339   2                    KickDog();
1340   2                    msec = R1302(0x81);
1341   2                    msec = hex_to_dec(msec);
1342   2                    if(Curtime[6] != msec)
1343   2                    {
1344   3                         Curtime[6] = msec;
1345   3                         mail_box_flag = 1;
1346   3                    }
1347   2                    loop();
1348   2      
1349   2                    if(mail_box_flag)
1350   2                    {
1351   3                        //xx();       //clear all fault_flag
1352   3                        gzsmdy();   //find fault and add fault_time
1353   3                        faultcount();
1354   3                    }
1355   2                    ///////////////////////////////////////////
1356   2                    if(Key3())
1357   2                    {
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 23  

1358   3                    	   P2_5 = 1;
1359   3                    	  // TR0 = 0;
1360   3                          TR2 = 0;
1361   3                    	   delay(1000);
1362   3                         while(Key3()) KickDog();
1363   3                         Key3Num %= 6;
1364   3                         Key3Num ++;
1365   3                         a_start = 0;
1366   3                         a_stop = 0;
1367   3                         IdNum = 0;
1368   3                         switch(Key3Num)
1369   3                         {
1370   4                             case 1:
1371   4                             	    TotalNumOfTrb(disnum[1]);
1372   4                             	    Phase_select(Phase_A);
1373   4                                  DispIC1(S1,Ua_fault);
1374   4                                  num1 = 0;
1375   4                             break;
1376   4                             case 2:
1377   4                             	    TotalNumOfTrb(disnum[2]);
1378   4                                  Phase_select(Phase_B);
1379   4                                  DispIC1(S1,Ub_fault);
1380   4                                  num2 = 0;
1381   4                             break;
1382   4                             case 3:
1383   4                             	    TotalNumOfTrb(disnum[3]);
1384   4                                  Phase_select(Phase_C);
1385   4                                  DispIC1(S1,Uc_fault);
1386   4                                  num3 = 0;
1387   4                             break;
1388   4                             case 4:
1389   4                             	    TotalNumOfTrb(disnum[4]);
1390   4                                  Phase_select(Phase_A);
1391   4                                  DispIC1(S2,Ia_fault);
1392   4                                  num4 = 0;
1393   4                             break;
1394   4                             case 5:
1395   4                             	    TotalNumOfTrb(disnum[6]);
1396   4                                  Phase_select(Phase_C);
1397   4                                  DispIC1(S2,Ic_fault);
1398   4                                  num5 = 0;
1399   4                             break;
1400   4                             case 6:
1401   4                             	    TotalNumOfTrb(disnum[7]);
1402   4                                  LCD_WD2(26,0x08);           //no display A,B,C
1403   4                                  DispIC1(S3,Ip_fault);
1404   4                                  num6 = 0;
1405   4                             break;
1406   4                  

⌨️ 快捷键说明

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