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

📄 main.lst

📁 采用1*4,4*4键盘同时控制,带有8位数码显示的数控直流电源驱动及应用程序(Keil c51)
💻 LST
📖 第 1 页 / 共 5 页
字号:
1136   2                      case 9:
1137   2                      {
1138   3                              if(ubit<=3)
1139   3                              {
1140   4                                      U_Buf[ubit]=9;
1141   4                                      Disp_changei(U_Buf[ubit]);
1142   4                                      ubit=ubit+1;
1143   4                              }
1144   3                              else
1145   3                              {
1146   4                                      ubit=0;
1147   4                              }
1148   3                      }break;
1149   2      
1150   2                      case ESC:
1151   2                      {
1152   3                              i_ds = 0;
1153   3                              Sys_sta = IDLE_STA;
1154   3                      }break;
1155   2      
1156   2                      case OK:
1157   2                      case USET:
1158   2                      {
1159   3                              if(uset == 0)
1160   3                              {       
1161   4                                      if (ubit == 4)
1162   4                                      {
1163   5                                              if((U_Buf[0]==1 && U_Buf[2]==2 && U_Buf[3]>=4) || U_Buf[0]>=2)
1164   5                                              {
1165   6                                                      user[userbit].U = U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];    
1166   6                                              }
1167   5                                              else
1168   5                                              {       
1169   6                                                      user[userbit].U = U_Buf[0]*1000+U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
1170   6                                              }
1171   5                                      }
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 20  

1172   4                                      else if(ubit == 3)
1173   4                                      {
1174   5                                              user[userbit].U = U_Buf[0]*100+U_Buf[1]*10+U_Buf[2];
1175   5                                      }
1176   4                          else if(ubit == 2)
1177   4                          {
1178   5                                              user[userbit].U = U_Buf[0]*10+U_Buf[1];
1179   5                                      }
1180   4                          else if(ubit  == 1)
1181   4                          {
1182   5                                              user[userbit].U = U_Buf[0];
1183   5                                      }
1184   4                                      U_Buf[0]=0;
1185   4                                      U_Buf[1]=0;
1186   4                                      U_Buf[2]=0;
1187   4                                      U_Buf[3]=0;
1188   4                                              
1189   4                                      i_ds = 0;
1190   4                                      u_ds=0;
1191   4                                      ubit=0;
1192   4                                      i_ds = 0;
1193   4                                      uset=~uset;
1194   4                              }
1195   3                              else if(uset == 1)
1196   3                              {
1197   4                                      
1198   4                                      if (ubit == 4)
1199   4                                      {
1200   5                                              if((U_Buf[0]==1 && U_Buf[2]==2 && U_Buf[3]>=4) || U_Buf[0]>=2)
1201   5                                              {
1202   6                                                      user[userbit].I = U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];    
1203   6                                              }
1204   5                                              else
1205   5                                              {       
1206   6                                                      user[userbit].I = U_Buf[0]*1000+U_Buf[1]*100+U_Buf[2]*10+U_Buf[3];
1207   6                                              }
1208   5                                      }
1209   4                                      else if(ubit == 3)
1210   4                                      {
1211   5                                              user[userbit].I = U_Buf[0]*100+U_Buf[1]*10+U_Buf[2];
1212   5                                      }
1213   4                          else if(ubit == 2)
1214   4                          {
1215   5                                              user[userbit].I = U_Buf[0]*10+U_Buf[1];
1216   5                                      }
1217   4                          else if(ubit  == 1)
1218   4                          {
1219   5                                              user[userbit].I = U_Buf[0];
1220   5                                      }
1221   4                                      
1222   4                                      U_Buf[0]=0;
1223   4                                      U_Buf[1]=0;
1224   4                                      U_Buf[2]=0;
1225   4                                      U_Buf[3]=0;
1226   4                                      
1227   4                                      userbit = userbit+1;
1228   4                                      if(userbit == 7)
1229   4                                      {
1230   5                                              userbit = 0;
1231   5                                      }
1232   4      
1233   4                                      i_ds = 0;
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 21  

1234   4                                      u_ds=0;
1235   4                                      ubit=0;
1236   4                                      uset=~uset;
1237   4                                      Sys_sta = IDLE_STA;
1238   4                              }
1239   3                      }break;
1240   2              }
1241   1              while(keytemp!=0xff)
1242   1              {
1243   2                      keytemp = Key();
1244   2                      Disp();
1245   2                      Delay(10);
1246   2              }
1247   1              //==============
1248   1      }
1249          //调用用户预置状态下的服务程序
1250          void CALL_USER_Mange(void)
1251          {
1252   1              unsigned int temp1,temp2;
1253   1      
1254   1              if(i_ds==0)
1255   1              {
1256   2                      i_ds=1;//显示call
1257   2                      Disp_Buf[0]=12;
1258   2                      Disp_Buf[1]=10;
1259   2                      Disp_Buf[2]=20;
1260   2                      Disp_Buf[3]=20; 
1261   2                      Disp_Buf[4]=18;
1262   2                      Disp_Buf[5]=18;
1263   2                      Disp_Buf[6]=18;
1264   2                      Disp_Buf[7]=18; 
1265   2      
1266   2                      Disp();
1267   2              }
1268   1              Disp();
1269   1              keytemp = Key();
1270   1      
1271   1              switch(keytemp)
1272   1                      {
1273   2                              case 0:
1274   2                              {
1275   3                                      Disp_Buf[7]=0;
1276   3                                      temp1=user[0].U;
1277   3                                      temp2=user[0].I;
1278   3      
1279   3                              }break;
1280   2      
1281   2                              case 1:
1282   2                              {
1283   3                                      Disp_Buf[7]=1;
1284   3                                      temp1=user[1].U;
1285   3                                      temp2=user[1].I;
1286   3                              }break;
1287   2      
1288   2                              case 2:
1289   2                              {
1290   3                                      Disp_Buf[7]=2;
1291   3                                      temp1=user[2].U;
1292   3                                      temp2=user[2].I;
1293   3                              }break;
1294   2                              case 3:
1295   2                              {
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 22  

1296   3                                      Disp_Buf[7]=3;
1297   3                                      temp1=user[3].U;
1298   3                                      temp2=user[3].I;
1299   3                              }break;
1300   2      
1301   2                              case 4:
1302   2                              {
1303   3                                      Disp_Buf[7]=4;
1304   3                                      temp1=user[4].U;
1305   3                                      temp2=user[4].I;
1306   3                              }break;
1307   2                              case 5:
1308   2                              {
1309   3                                      Disp_Buf[7]=5;
1310   3                                      temp1=user[5].U;
1311   3                                      temp2=user[5].I;
1312   3                              }break;
1313   2      
1314   2                              case 6:
1315   2                              {
1316   3                                      Disp_Buf[7]=6;
1317   3                                      temp1=user[6].U;
1318   3                                      temp2=user[6].I;
1319   3                              }break;
1320   2      
1321   2                              case 7:
1322   2                              {
1323   3                                      Disp_Buf[7]=7;
1324   3                                      temp1=500;
1325   3                                      temp2=800;
1326   3                              }break;
1327   2      
1328   2                              case 8:
1329   2                              {
1330   3                                      Disp_Buf[7]=8;
1331   3                                      temp1=330;
1332   3                                      temp2=500;
1333   3                              }break;
1334   2      
1335   2                              case 9:
1336   2                              {
1337   3                                      Disp_Buf[7]=9;
1338   3                                      temp1=180;
1339   3                                      temp2=300;
1340   3                              }break;
1341   2      
1342   2                              case ESC:
1343   2                              {
1344   3                                      i_ds=0;
1345   3                                      Sys_sta = IDLE_STA;
1346   3                              }break;
1347   2      
1348   2                              case OK:
1349   2                              case ISET:
1350   2                              {
1351   3                                      i_ds=0;
1352   3                                      I_data = temp2;
1353   3                                      U_data = temp1;
1354   3      
1355   3                                      SEND_5615_I(I_data);
1356   3                                      SEND_5615_U(U_data);
1357   3              
C51 COMPILER V7.09   MAIN                                                                  12/06/2007 09:33:57 PAGE 23  

1358   3                                      Sys_sta = IDLE_STA;
1359   3                              }break;
1360   2                      }
1361   1      
1362   1                      while(keytemp!=0xff)
1363   1                      {
1364   2                              keytemp = Key();
1365   2                              Disp();
1366   2                              Delay(10);
1367   2                      }
1368   1      }
1369          
1370          //主函数
1371          void main (void)
1372          {
1373   1              Init();
1374   1      
1375   1              while(1)
1376   1              {
1377   2                      Delay(5);//状态机
1378   2                      switch(Sys_sta)
1379   2                      {
1380   3                              case IDLE_STA:
1381   3                              {       
1382   4                                      IDLE_Mange();//for idle state
1383   4                              }break;
1384   3      
1385   3                              case U_SET_STA:
1386   3                              {
1387   4                                      U_SET_Mange();//set u by 4*4
1388   4                              }break;
1389   3      
1390   3                              case I_SET_STA://set i by 4*4
1391   3                              {
1392   4                                      I_SET_Mange();
1393   4                              }break;
1394   3      
1395   3                              case U_SETu://set u by 1*8
1396   3                              {
1397   4                                      U_SETu_Mange();
1398   4                              }break;
1399   3      
1400   3                              case I_SETi://set i by 1*8
1401   3                              {
1402   4                                      I_SETi_Mange();
1403   4                              }break;
1404   3      
1405   3                              case USER_SET_STA://for user set
1406   3                              {
1407   4                                      USER_SET_Mange();
1408   4                              }break;
1409   3      
1410   3                              case CALL_USER_STA://for user call
1411   3                              {
1412   4                                      CALL_USER_Mange();
1413   4                              }break;
1414   3      
1415   3                              default:break;
1416   3                      }
1417   2              }
1418   1      }
1419          
C51 COMPILER V7.09   MAIN                                       

⌨️ 快捷键说明

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