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

📄 main_stop2zw.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 925   2                      case com_ignit_ok:      ignit_ok=1;break;
 926   2                      case com_decrease:      decrease=1;break;       //衰减
 927   2                      case com_current_add:   if(rc_forbided==0)
 928   2                                                      current_add=1;break;    //电流加
 929   2                      case com_current_dec:   if(rc_forbided==0)
 930   2                                                      current_dec=1;break;    //电流减
 931   2                      case com_rot_front:     if(rc_forbided==0)
 932   2                                                      rot_front=1;break;
 933   2                      case com_rot_reverse:   if(rc_forbided==0)
 934   2                                                      rot_reverse=1;break;
 935   2                      case com_wire_add:      if(rc_forbided==0)
 936   2                                                      wire_add=1;break;
 937   2                      case com_wire_dec:      if(rc_forbided==0)
 938   2                                                      wire_dec=1;break;
 939   2                      case com_osc_l:         {
 940   3                                                      if(rc_forbided==0&&osc_l==0)
 941   3                                                              osc_l=1;
 942   3                                              }break;
 943   2                      case com_osc_r:         {
 944   3                                                      if(rc_forbided==0&&osc_r==0)
 945   3                                                              osc_r=1;
 946   3                                              }break;
 947   2                      case com_breadth_add:   {
 948   3                                                      if(rc_forbided==0&&breadth_add==0)
 949   3                                                              breadth_add=1;
 950   3                                              }break;
 951   2                      case com_breadth_dec:   {
 952   3                                                      if(rc_forbided==0&&breadth_dec==0)
 953   3                                                              breadth_dec=1;
 954   3                                              }break;
 955   2                      case com_avc_up:        if(rc_forbided==0)
 956   2                                                      avc_up=1;break;
 957   2                      case com_avc_down:      if(rc_forbided==0)
 958   2                                                      avc_down=1;break;
 959   2                      case com_motor_stop:    {
 960   3                                                      if(rc_forbided==0&&motor_stop==0)
 961   3                                                              motor_stop=1;
 962   3                                              }break;
 963   2      
 964   2                      case com_lift_ok:       lift_ok=1;break;
 965   2                      case com_return_ok:     return_ok=1;break;
 966   2                      default:                break;
 967   2              }
 968   1              if(ans==0)
 969   1              {
 970   2                      POINTER1=0;
 971   2                      RSUM=0;
 972   2                      r_byte_nums=4;
 973   2              }
 974   1      }
 975          
 976          void data_type()                                                //对接收到的数据分辨类型
 977          {
 978   1              switch(rbuffer[1])
 979   1              {
 980   2                      case command:   com_type();
 981   2                                      break;
 982   2                      case answer:    R_ANSW=rbuffer[2];
 983   2                                      break;
 984   2                      case err_infor: err=rbuffer[3];
C51 COMPILER V7.06   MAIN_STOP2ZW                                                          10/04/2005 11:11:27 PAGE 17  

 985   2                                      break;
 986   2                      case edit_sec:  if(in_sector==0)
 987   2                                      {
 988   3                                              nonce_sec=rbuffer[2];
 989   3                                              p_out=0;
 990   3                                              in_sector=1;
 991   3                                      }
 992   2                                      break;
 993   2                      case parameter: param=1;break;
 994   2                      case program:   if(work==0)
 995   2                                              change_prg=1;           //将程序号存入EEPROM
 996   2                                      break;
 997   2                      case infor:     {                                               
 998   3                                              switch(rbuffer[2])
 999   3                                              {
1000   4                                                      case com_calling:       R_ANSW=rbuffer[3];break;
1001   4                                                      case com_switch:        {
1002   5                                                                                      YOUHU=rbuffer[3];
1003   5                                                                                      WIRE=rbuffer[4];
1004   5                                                                              }break;
1005   4                                                      case com_weld_simu:     new_switch11=1;break;
1006   4                                                      case com_wire_on_off:   new_switch22=1;break;
1007   4                                                      case com_delt_switch:   delt_switch=1;break;
1008   4                                                      default:                break;
1009   4                                              }
1010   3      
1011   3                                      }
1012   2                                      break;
1013   2                      case p_section: {
1014   3                                              nonce_sec=rbuffer[5];
1015   3                                              change_sec_num=1;
1016   3                                              param=1;
1017   3                                      }break;
1018   2                      case p_edit_finish:{
1019   3                                              nonce_sec=rbuffer[5];
1020   3                                              pp.sec_num=rbuffer[6];
1021   3                                              if(rbuffer[2]!=0xFF)
1022   3                                              {
1023   4                                                      param=1;
1024   4                                                      temp_edit_finish=1;
1025   4                                              }
1026   3                                              else
1027   3                                                      edit_finish=1;
1028   3                                              work=0;
1029   3                                      }break;
1030   2                      default:        break;
1031   2              }
1032   1      }
1033          
1034          void call_slave()
1035          {
1036   1              unsigned char call_add[]={M_current,M_RW,M_OSC,M_AVC,M_P,M_RC};//电流、旋转/送丝、横摆/弧长、面板、线控器
             -、等离子、热丝
1037   1              unsigned char i,c_call[6];
1038   1              calling=1;
1039   1              for(i=0;i<6;i++)
1040   1              {
1041   2                      existent[i]=0;
1042   2                      c_call[i]=0;
1043   2              }
1044   1              for(i=0;i<6;i++)
1045   1              {
C51 COMPILER V7.06   MAIN_STOP2ZW                                                          10/04/2005 11:11:27 PAGE 18  

1046   2      RECALL:         R_ANSW=0;
1047   2                      if(existent[i]==0&&c_call[i]<3)
1048   2                      {
1049   3                                      ini_sbuf(call_add[i],command,com_calling,0,0,0,0);
1050   3                                      s_byte_nums=4;
1051   3                                      TR_ans();
1052   3                                      if(overtime==1)
1053   3                                              overtime=0;
1054   3                                      if(overtime==0&&R_ANSW==OK)
1055   3                                              existent[i]=1;
1056   3                                      else
1057   3                                      {
1058   4                                              c_call[i]=c_call[i]+1;
1059   4                                              if(overtime==1)
1060   4                                                      overtime=0;
1061   4                                              goto RECALL;
1062   4                                      }
1063   3                      }
1064   2      /*
1065   2                      if(i==0&&c_call[0]==3&&existent[0]==0)
1066   2                      {
1067   2                              main_err=1;
1068   2                              err=19;
1069   2                              stop=0;
1070   2                              while(main_err==1);
1071   2      I_RECALL:               ini_sbuf(call_add[i],command,com_calling,0,0,0,0);
1072   2                              s_byte_nums=4;
1073   2                              TR_ans();
1074   2                              if(overtime==1)
1075   2                                      overtime=0;
1076   2                              if(overtime==0&&R_ANSW==OK)
1077   2                                      existent[i]=1;
1078   2                              if(existent[0]==0)
1079   2                                      goto I_RECALL;
1080   2                      }
1081   2      */
1082   2              }
1083   1              sbuffer1[0]=M_P;
1084   1              sbuffer1[1]=call_result;
1085   1              for(i=0;i<6;i++)
1086   1                      sbuffer1[i+2]=existent[i];
1087   1              sbuffer1[8]=0;
1088   1              s_byte_nums=9;
1089   1              s_p=1;
1090   1              TR_noans();
1091   1              s_p=0;
1092   1              R_ANSW=0;
1093   1              calling=0;
1094   1      }
1095          
1096          void readPRG()
1097          {
1098   1              getPRG=1;
1099   1              readEEP_byte();
1100   1              getPRG=0;
1101   1              PRG=GET;
1102   1      }
1103          
1104          void send_param()
1105          {
1106   1              unsigned char   axis[]={M_current,M_RW,M_OSC,M_AVC},
1107   1              temp_pc,temp_delt,snum,anum,c_err;
C51 COMPILER V7.06   MAIN_STOP2ZW                                                          10/04/2005 11:11:27 PAGE 19  

1108   1      
1109   1              p_send=1;
1110   1              s_p=1;
1111   1              c_err=0;
1112   1              if(existent[0]==1)
1113   1              {
1114   2                      point=&pp.t01;
1115   2                      temp_delt=2;
1116   2                      sbuffer1[0]=M_current;          //电流和面板接收
1117   2                      sbuffer1[1]=p_out_sec;                  //电流区间外参数
1118   2                      sbuffer1[52]=pp.syn_type%256;
1119   2                      sbuffer1[53]=0;
1120   2                      sbuffer1[54]=0;
1121   2                      for(temp_pc=2;temp_pc<52;temp_pc++)
1122   2                      {
1123   3                              if(temp_pc%2==0)
1124   3                              {
1125   4                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)/256;
1126   4                                      temp_delt++;
1127   4                              }
1128   3                              else
1129   3                                      sbuffer1[temp_pc]=*(point+temp_pc-temp_delt)%256;
1130   3                      }
1131   2                      s_byte_nums=55;
1132   2                      TR_ans();
1133   2              RESEND: if(resend==1||overtime==1)
1134   2                      {
1135   3                              c_err++;
1136   3                              resend=0;
1137   3                              overtime=0;
1138   3                              if(c_err<5)
1139   3                              {                       
1140   4                                      TR_ans();
1141   4                                      goto RESEND;
1142   4                              }
1143   3                              else
1144   3                              {
1145   4                                      c_err=0;
1146   4                                      main_err=1;
1147   4                                      err=2;
1148   4                                      stop=0;
1149   4                                      while(urgent_stop==0);
1150   4                                      goto END_P;
1151   4                              }
1152   3                      }
1153   2                      else
1154   2                              c_err=0;
1155   2      

⌨️ 快捷键说明

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