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

📄 main1_0928.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 228   3                                                      breadth_add=1;
 229   3                                              }break;
 230   2                      case com_breadth_dec:   {
 231   3                                                      scan=1;
 232   3                                                      breadth_dec=1;
 233   3                                              }break;
 234   2                      case com_avc_up:        {
 235   3                                                      scan=1;
 236   3                                                      avc_up=1;
 237   3                                              }break;
 238   2                      case com_avc_down:      {
 239   3                                                      scan=1;
 240   3                                                      avc_down=1;
 241   3                                              }break;
C51 COMPILER V7.06   MAIN1_0928                                                            10/12/2005 16:13:25 PAGE 5   

 242   2                      case com_motor_stop:    temp_motor_stop=1;break;
 243   2                      case com_urgent_stop:   {
 244   3                                                      pc_stop=1;
 245   3                                                      urgent_stop=1;
 246   3                                                      err=1;
 247   3                                                      err_ok=0;
 248   3                                              }break;
 249   2                      case com_connect:       connect=1;break;
 250   2                      case com_connect_fail:  break_connect=1;break;
 251   2      //              case com_forbid_p:      p_forbid=1;break;
 252   2      //              case com_forbid_rc:     rc_forbid=1;break;
 253   2      //              case com_p_active:      p_active=1;break;
 254   2      //              case com_rc_active:     rc_active=1;break;
 255   2                      case com_need_para:     need_para=1;break;
 256   2                      default:                break;
 257   2              }
 258   1              if(ans==0)
 259   1              {
 260   2                      POINTER1=0;
 261   2                      RSUM=0;
 262   2                      r_byte_nums=4;
 263   2              }
 264   1      
 265   1      }
 266          
 267          void data_type()                                                //对接收到的数据分辨类型
 268          {
 269   1              switch(rbuffer[1])
 270   1              {
 271   2                      case command:   com_type();break;
 272   2                      case answer:    R_ANSW=rbuffer[2];break;
 273   2                      case err_infor: err=rbuffer[3];break;
 274   2      /*
 275   2                      case infor_sec: {
 276   2                                              nonce_sec=rbuffer[2];
 277   2      
 278   2                                      }break;
 279   2      */
 280   2                      case edit_sec:  {
 281   3      //                                      if(in_sector==0)
 282   3      //                                      {
 283   3      //                                              nonce_sec=rbuffer[2];
 284   3      //                                              in_sector=1;
 285   3      //                                      }
 286   3                                      p_received=1;
 287   3                                      }break;
 288   2      /*
 289   2                      case parameter: {
 290   2                                              param=1;
 291   2      
 292   2                                      }break;
 293   2      */
 294   2      /*
 295   2                      case program:
 296   2                                      if(work==0||work==1)
 297   2                                      {
 298   2                                              PRG=rbuffer[3];
 299   2                                              change_prg=1;
 300   2                                              save_prg();                                                                                     //将程序号存入EEPROM
 301   2                                      }break;
 302   2      */
 303   2                      case infor:     {
C51 COMPILER V7.06   MAIN1_0928                                                            10/12/2005 16:13:25 PAGE 6   

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

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

 428   3                              if(temp_pc%2==0)
 429   3                              {
 430   4                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
 431   4                                      temp_delt++;
 432   4                              }
 433   3                              else
 434   3                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
 435   3                      }
 436   2                      sbuffer1[0]=0;
 437   2                      sbuffer1[1]=0;
 438   2                      for(temp_pc=62;temp_pc<64;temp_pc++)
 439   2                              sbuffer1[temp_pc]=0;
 440   2                      s_byte_nums=64;
 441   2                      TR_ans();
 442   2              }
 443   1              s_p=0;
 444   1      }
*** WARNING C280 IN LINE 338 OF E:\NEWMAC~1\050808\MAIN\MAIN1_0928.C: 'anum': unreferenced local variable
 445          
 446          void EX0_INT (void) interrupt 0
 447          {
 448   1              EX0=0;
 449   1              urgent_stop=1;
 450   1      //      err_ok=0;
 451   1      }
 452          
 453          void T1_INT (void) interrupt 3
 454          {
 455   1      //      EA=0;
 456   1              c_t1++;
 457   1              if(send==1)
 458   1              {
 459   2                      if(c_t1==7)
 460   2                      {

⌨️ 快捷键说明

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