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

📄 main1_1013.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 229   3                                                      osc_r=1;
 230   3                                              }break;
 231   2                      case com_breadth_add:   {
 232   3                                                      scan=1;
 233   3                                                      breadth_add=1;
 234   3                                              }break;
 235   2                      case com_breadth_dec:   {
 236   3                                                      scan=1;
 237   3                                                      breadth_dec=1;
 238   3                                              }break;
 239   2                      case com_avc_up:        {
 240   3                                                      scan=1;
 241   3                                                      avc_up=1;
C51 COMPILER V7.50   MAIN1_1013                                                            01/18/2006 15:09:40 PAGE 5   

 242   3                                              }break;
 243   2                      case com_avc_down:      {
 244   3                                                      scan=1;
 245   3                                                      avc_down=1;
 246   3                                              }break;
 247   2                      case com_motor_stop:    temp_motor_stop=1;break;
 248   2                      case com_urgent_stop:   {
 249   3                                                      pc_stop=1;
 250   3                                                      urgent_stop=1;
 251   3                                                      err=1;
 252   3                                                      err_ok=0;
 253   3                                                      EX0=0;
 254   3                                                      start=0;
 255   3                                                      stop=0;
 256   3                                              }break;
 257   2                      case com_connect:       connect=1;break;
 258   2                      case com_connect_fail:  break_connect=1;break;
 259   2      //              case com_forbid_p:      p_forbid=1;break;
 260   2      //              case com_forbid_rc:     rc_forbid=1;break;
 261   2      //              case com_p_active:      p_active=1;break;
 262   2      //              case com_rc_active:     rc_active=1;break;
 263   2                      case com_need_para:     need_para=1;break;
 264   2                      case com_need_finish:   if(need_finish==0)
 265   2                                                      need_finish=1;break;
 266   2                      default:                break;
 267   2              }
 268   1              if(ans==0)
 269   1              {
 270   2                      POINTER1=0;
 271   2                      RSUM=0;
 272   2                      r_byte_nums=4;
 273   2              }
 274   1      
 275   1      }
 276          
 277          void data_type()                                                //对接收到的数据分辨类型
 278          {
 279   1              switch(rbuffer[1])
 280   1              {
 281   2                      case command:   com_type();break;
 282   2                      case answer:    R_ANSW=rbuffer[2];break;
 283   2                      case err_infor: err=rbuffer[3];break;
 284   2      /*
 285   2                      case infor_sec: {
 286   2                                              nonce_sec=rbuffer[2];
 287   2      
 288   2                                      }break;
 289   2      */
 290   2                      case edit_sec:  {
 291   3      //                                      if(in_sector==0)
 292   3      //                                      {
 293   3      //                                              nonce_sec=rbuffer[2];
 294   3      //                                              in_sector=1;
 295   3      //                                      }
 296   3                                      p_received=1;
 297   3                                      }break;
 298   2      /*
 299   2                      case parameter: {
 300   2                                              param=1;
 301   2      
 302   2                                      }break;
 303   2      */
C51 COMPILER V7.50   MAIN1_1013                                                            01/18/2006 15:09:40 PAGE 6   

 304   2      /*
 305   2                      case program:
 306   2                                      if(work==0||work==1)
 307   2                                      {
 308   2                                              PRG=rbuffer[3];
 309   2                                              change_prg=1;
 310   2                                              save_prg();                                                                                     //将程序号存入EEPROM
 311   2                                      }break;
 312   2      */
 313   2                      case infor:     {
 314   3                                              switch(rbuffer[2])
 315   3                                              {
 316   4      /*                                              case com_sector:        nonce_sec=rbuffer[3];break;
 317   4                                                      case com_copyEXP:       {
 318   4                                                                                      PRG=rbuffer[2];                 //假设为当前程序号
 319   4                                                                                      toPRG=rbuffer[3];               //目的程序号
 320   4                                                                                      copy=1;
 321   4                                                                              }break;
 322   4      */
 323   4                                                      case com_calling:       R_ANSW=rbuffer[3];break;
 324   4                                                      case com_switch:        {
 325   5                                                                                      YOUHU=rbuffer[3];
 326   5                                                                                      WIRE=rbuffer[4];
 327   5                                                                              }break;
 328   4                                                      case com_weld_simu:     {
 329   5                                                                                      YOUHU=rbuffer[3];
 330   5                                                                                      new_switch1=1;
 331   5                                                                              }break;
 332   4                                                      case com_wire_on_off:   {
 333   5                                                                                      WIRE=rbuffer[3];
 334   5                                                                                      new_switch2=1;
 335   5                                                                              }break;
 336   4                                                      case com_delt_switch:   new_switch3=1;;break;
 337   4                                                      default:break;
 338   4                                              }
 339   3                                      }break;
 340   2                      case p_out_sec: p_received=1;break;
 341   2      //              case p_in_sec:  p_received=1;break;
 342   2                      default:        break;
 343   2              }
 344   1      }
 345          
 346          void send_param()
 347          {
 348   1              unsigned char temp_pc,temp_delt,anum,snum,axis[]={M_current,M_RW,M_OSC,M_AVC};  
 349   1              s_p=1;
 350   1              point=&pp.pn;
 351   1              temp_delt=2;
 352   1              sbuffer1[0]=M_current;          //电流和面板接收
 353   1              sbuffer1[1]=p_out_sec;                  //电流区间外参数
 354   1      //      sbuffer1[54]=0;
 355   1              for(temp_pc=2;temp_pc<54;temp_pc++)
 356   1              {
 357   2                      if(temp_pc%2==0)
 358   2                      {
 359   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 360   3                              temp_delt++;
 361   3                      }
 362   2                      else
 363   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 364   2              }
 365   1              for(temp_pc=54;temp_pc<64;temp_pc++)
C51 COMPILER V7.50   MAIN1_1013                                                            01/18/2006 15:09:40 PAGE 7   

 366   1                      sbuffer1[temp_pc]=0;
 367   1              s_byte_nums=55;
 368   1              TR_ans();
 369   1      //      delay(100);
 370   1              s_p=1;
 371   1              point=&pp.k2;
 372   1              temp_delt=2;
 373   1              sbuffer1[0]=M_RW;                       //旋转/送丝和面板接收
 374   1              sbuffer1[1]=p_out_sec;                  //旋转/送丝区间外参数
 375   1              for(temp_pc=2;temp_pc<50;temp_pc++)
 376   1              {
 377   2                      if(temp_pc%2==0)
 378   2                      {
 379   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 380   3                              temp_delt++;
 381   3                      }
 382   2                      else
 383   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 384   2              }
 385   1              for(temp_pc=50;temp_pc<64;temp_pc++)
 386   1                      sbuffer1[temp_pc]=0;
 387   1              s_byte_nums=55;
 388   1              TR_ans();
 389   1      //      delay(100);
 390   1              s_p=1;
 391   1              point=&pp.k4;
 392   1              temp_delt=2;
 393   1              sbuffer1[0]=M_OSC;                      //横摆和面板接收
 394   1              sbuffer1[1]=p_out_sec;                  //横摆区间外参数
 395   1              for(temp_pc=2;temp_pc<54;temp_pc++)
 396   1              {
 397   2                      if(temp_pc%2==0)
 398   2                      {
 399   3                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 400   3                              temp_delt++;
 401   3                      }
 402   2                      else
 403   2                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 404   2              }
 405   1              for(temp_pc=54;temp_pc<64;temp_pc++)
 406   1                      sbuffer1[temp_pc]=0;
 407   1              s_byte_nums=55;
 408   1              TR_ans();
 409   1      //      delay(100);
 410   1      /*
 411   1              s_p=1;
 412   1              point=&pp.k5;
 413   1              temp_delt=0;
 414   1      //      sbuffer1[0]=M_AVC;                      //横摆和面板接收
 415   1      //      sbuffer1[1]=p_out_sec;                  //横摆区间外参数
 416   1              for(temp_pc=2;temp_pc<28;temp_pc++)
 417   1              {
 418   1                      if(temp_pc%2==0)
 419   1                      {
 420   1                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 421   1                              temp_delt++;
 422   1                      }
 423   1                      else
 424   1                              sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 425   1              }
 426   1              for(temp_pc=28;temp_pc<64;temp_pc++)
 427   1                      sbuffer1[temp_pc]=0;
C51 COMPILER V7.50   MAIN1_1013                                                            01/18/2006 15:09:40 PAGE 8   

 428   1              s_byte_nums=55;
 429   1              TR_ans();
 430   1      */
 431   1              for(snum=0;snum<10;snum++)
 432   1              {
 433   2                      s_p=1;
 434   2                      temp_delt=2;
 435   2                      point=&pp.x[snum][0];
 436   2                      for(temp_pc=2;temp_pc<62;temp_pc++)
 437   2                      {
 438   3                              if(temp_pc%2==0)
 439   3                              {
 440   4                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 441   4                                      temp_delt++;
 442   4                              }
 443   3                              else
 444   3                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 445   3                      }
 446   2                      sbuffer1[0]=0;
 447   2                      sbuffer1[1]=0;
 448   2                      for(temp_pc=62;temp_pc<64;temp_pc++)
 449   2                              sbuffer1[temp_pc]=0;
 450   2                      s_byte_nums=64;
 451   2                      TR_ans();
 452   2              }
 453   1              s_p=0;
 454   1      }
*** WARNING C280 IN LINE 348 OF C:\DOCUME~1\ADMINI~1\桌面\06017\MAIN\MAIN1_1013.C: 'anum': unreferenced local variable
 455          
 456          void EX0_INT (void) interrupt 0
 457          {
 458   1              EX0=0;
 459   1              urgent_stop=1;
 460   1              err_ok=0;
 461   1      }
 462          void EX1_INT (void) interrupt 2

⌨️ 快捷键说明

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