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

📄 main1_zw.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 227   2                                      }break;
 228   2      */
 229   2                      case edit_sec:  {
 230   3      //                                      if(in_sector==0)
 231   3      //                                      {
 232   3      //                                              nonce_sec=rbuffer[2];
 233   3      //                                              in_sector=1;
 234   3      //                                      }
 235   3                                      p_received=1;
 236   3                                      }break;
 237   2      /*
 238   2                      case parameter: {
 239   2                                              param=1;
 240   2      
 241   2                                      }break;
C51 COMPILER V7.06   MAIN1_ZW                                                              10/04/2005 14:08:50 PAGE 5   

 242   2      */
 243   2      /*
 244   2                      case program:
 245   2                                      if(work==0||work==1)
 246   2                                      {
 247   2                                              PRG=rbuffer[3];
 248   2                                              change_prg=1;
 249   2                                              save_prg();                                                                                     //将程序号存入EEPROM
 250   2                                      }break;
 251   2      */
 252   2                      case infor:     {
 253   3                                              switch(rbuffer[2])
 254   3                                              {
 255   4      /*                                              case com_sector:        nonce_sec=rbuffer[3];break;
 256   4                                                      case com_copyEXP:       {
 257   4                                                                                      PRG=rbuffer[2];                 //假设为当前程序号
 258   4                                                                                      toPRG=rbuffer[3];               //目的程序号
 259   4                                                                                      copy=1;
 260   4                                                                              }break;
 261   4      */
 262   4                                                      case com_calling:       R_ANSW=rbuffer[3];break;
 263   4                                                      case com_switch:        {
 264   5                                                                                      YOUHU=rbuffer[3];
 265   5                                                                                      WIRE=rbuffer[4];
 266   5                                                                              }break;
 267   4                                                      case com_weld_simu:     {
 268   5                                                                                      //YOUHU=rbuffer[3];
 269   5                                                                                      new_switch1=1;
 270   5                                                                              }break;
 271   4                                                      case com_wire_on_off:   {
 272   5                                                                                      //WIRE=rbuffer[3];
 273   5                                                                                      new_switch2=1;
 274   5                                                                              }break;
 275   4                                                      case com_delt_switch:   new_switch3=1;;break;
 276   4                                                      default:break;
 277   4                                              }
 278   3                                      }break;
 279   2                      case p_out_sec: p_received=1;break;
 280   2      //              case p_in_sec:  p_received=1;break;
 281   2                      default:        break;
 282   2              }
 283   1      }
 284          
 285          void send_param()
 286          {
 287   1              unsigned char temp_pc,temp_delt,anum,snum,axis[]={M_current,M_RW,M_OSC,M_AVC};  
 288   1              s_p=1;
 289   1              point=&pp.pn;
 290   1              temp_delt=0;
 291   1      //      sbuffer1[0]=M_current;          //电流和面板接收
 292   1      //      sbuffer1[1]=p_out_sec;                  //电流区间外参数
 293   1      //      sbuffer1[54]=0;
 294   1              for(temp_pc=0;temp_pc<52;temp_pc++)
 295   1              {
 296   2                      if(temp_pc%2==0)
 297   2                      {
 298   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 299   3                              temp_delt++;
 300   3                      }
 301   2                      else
 302   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 303   2              }
C51 COMPILER V7.06   MAIN1_ZW                                                              10/04/2005 14:08:50 PAGE 6   

 304   1              for(temp_pc=52;temp_pc<55;temp_pc++)
 305   1                      sbuffer1[temp_pc]=0;
 306   1              s_byte_nums=55;
 307   1              TR_ans();
 308   1      
 309   1      //      delay(100);
 310   1      
 311   1              s_p=1;
 312   1              point=&pp.k2;
 313   1              temp_delt=0;
 314   1      //      sbuffer1[0]=M_RW;                       //旋转/送丝和面板接收
 315   1      //      sbuffer1[1]=p_out_sec;                  //旋转/送丝区间外参数
 316   1              for(temp_pc=0;temp_pc<48;temp_pc++)
 317   1              {
 318   2                      if(temp_pc%2==0)
 319   2                      {
 320   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 321   3                              temp_delt++;
 322   3                      }
 323   2                      else
 324   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 325   2              }
 326   1              for(temp_pc=48;temp_pc<55;temp_pc++)
 327   1                      sbuffer1[temp_pc]=0;
 328   1              s_byte_nums=55;
 329   1              TR_ans();
 330   1      
 331   1      //      delay(100);
 332   1      
 333   1              s_p=1;
 334   1              point=&pp.k4;
 335   1              temp_delt=0;
 336   1      //      sbuffer1[0]=M_OSC;                      //横摆和面板接收
 337   1      //      sbuffer1[1]=p_out_sec;                  //横摆区间外参数
 338   1              for(temp_pc=0;temp_pc<50;temp_pc++)
 339   1              {
 340   2                      if(temp_pc%2==0)
 341   2                      {
 342   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 343   3                              temp_delt++;
 344   3                      }
 345   2                      else
 346   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 347   2              }
 348   1              for(temp_pc=51;temp_pc<55;temp_pc++)
 349   1                      sbuffer1[temp_pc]=0;
 350   1              s_byte_nums=55;
 351   1              TR_ans();
 352   1      
 353   1      //      delay(100);
 354   1      
 355   1      /*
 356   1              s_p=1;
 357   1              point=&pp.k5;
 358   1              temp_delt=0;
 359   1      //      sbuffer1[0]=M_AVC;                      //横摆和面板接收
 360   1      //      sbuffer1[1]=p_out_sec;                  //横摆区间外参数
 361   1              for(temp_pc=2;temp_pc<28;temp_pc++)
 362   1              {
 363   1                      if(temp_pc%2==0)
 364   1                      {
 365   1                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
C51 COMPILER V7.06   MAIN1_ZW                                                              10/04/2005 14:08:50 PAGE 7   

 366   1                              temp_delt++;
 367   1                      }
 368   1                      else
 369   1                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 370   1              }
 371   1              for(temp_pc=28;temp_pc<55;temp_pc++)
 372   1                      sbuffer1[temp_pc]=0;
 373   1              s_byte_nums=55;
 374   1              TR_ans();
 375   1      */
 376   1              for(snum=0;snum<10;snum++)
 377   1              {
 378   2                      s_p=1;
 379   2                      temp_delt=0;
 380   2                      point=&pp.x[snum][0];
 381   2                      for(temp_pc=0;temp_pc<60;temp_pc++)
 382   2                      {
 383   3                              if(temp_pc%2==0)
 384   3                              {
 385   4                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 386   4                                      temp_delt++;
 387   4                              }
 388   3                              else
 389   3                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 390   3                      }
 391   2                      for(temp_pc=60;temp_pc<64;temp_pc++)
 392   2                              sbuffer1[temp_pc]=0;
 393   2                      s_byte_nums=64;
 394   2                      TR_ans();
 395   2      //              delay(100);
 396   2              }
 397   1      }
*** WARNING C280 IN LINE 287 OF E:\NEWMAC~1\050808\MAIN\MAIN1_ZW.C: 'anum': unreferenced local variable
 398          
 399          void EX0_INT (void) interrupt 0
 400          {
 401   1              EX0=0;
 402   1              urgent_stop=1;
 403   1      //      err_ok=0;
 404   1      }
 405          
 406          void T1_INT (void) interrupt 3
 407          {
 408   1      //      EA=0;
 409   1              c_t1++;
 410   1              if(send==1)
 411   1              {
 412   2                      if(c_t1==7)
 413   2                      {
 414   3                              if(s_p==0)
 415   3                                      SBUF=sbuffer[POINTER0];
 416   3                              else
 417   3                                      SBUF=sbuffer1[POINTER0];
 418   3                              c_t1=0;
 419   3                      }
 420   2              }
 421   1              else
 422   1              {
 423   2                      if(c_t1==100)
 424   2                      {
 425   3                              TR1=0;
 426   3                              overtime=1;
C51 COMPILER V7.06   MAIN1_ZW                                                              10/04/2005 14:08:50 PAGE 8   

 427   3                      }
 428   2              }
 429   1      //      EA=1;
 430   1      }
 431          
 432          void TR_INT (void) interrupt 4                                  //串行口中断
 433          {
 434   1              EA=0;                                                   //关中断
 435   1              if(TI==1)                                               //发送完成
 436   1              {
 437   2                      TI=0;
 438   2                      POINTER0++;                                     //发送缓冲指针加1
 439   2      //              if(POINTER0==1)
 440   2      //                      TB8=0;
 441   2                      if(POINTER0<s_byte_nums)
 442   2                      {
 443   3                              if(POINTER0<s_byte_nums-1)
 444   3                              {
 445   4                                      if(s_p==1)
 446   4                                              SSUM=SSUM+sbuffer1[POINTER0];
 447   4                                      else
 448   4                                              SSUM=SSUM+sbuffer[POINTER0];    //6个数据字节求和
 449   4                              }
 450   3                              else
 451   3                              {
 452   4                                      if(s_p==1)
 453   4                                              sbuffer1[s_byte_nums-1]=SSUM+sbuffer1[0];
 454   4                                      else
 455   4                                              sbuffer[s_byte_nums-1]=SSUM+sbuffer[0]; //数据和加地址生成校验码
 456   4                              }
 457   3                      }
 458   2              }

⌨️ 快捷键说明

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