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

📄 main_stop1.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   MAIN_STOP1                                                            09/02/2005 14:08:54 PAGE 16  

 923   3                                                      start_again=1;
 924   3                                              }break;
 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_STOP1                                                            09/02/2005 14:08:54 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:     if(rc_forbided==0)
1006   4                                                                              {
1007   5                                                                                      
1008   5                                                                                      new_switch11=1;
1009   5                                                                              }break;
1010   4                                                      case com_wire_on_off:   if(rc_forbided==0)
1011   4                                                                              {
1012   5                                                                                      
1013   5                                                                                      new_switch22=1;
1014   5                                                                              }break;
1015   4                                                      case com_delt_switch:   {
1016   5                                                                                      if(rc_forbided==0)
1017   5                                                                                              delt_switch=1;
1018   5                                                                              }break;
1019   4                                                      default:                break;
1020   4                                              }
1021   3      
1022   3                                      }
1023   2                                      break;
1024   2                      case p_section: {
1025   3                                              nonce_sec=rbuffer[5];
1026   3                                              change_sec_num=1;
1027   3                                              param=1;
1028   3                                      }break;
1029   2                      case p_edit_finish:{
1030   3                                              nonce_sec=rbuffer[5];
1031   3                                              pp.sec_num=rbuffer[6];
1032   3                                              if(rbuffer[2]!=0xFF)
1033   3                                              {
1034   4                                                      param=1;
1035   4                                                      temp_edit_finish=1;
1036   4                                              }
1037   3                                              else
1038   3                                                      edit_finish=1;
1039   3                                              work=0;
1040   3                                      }break;
1041   2                      default:        break;
1042   2              }
1043   1      }
1044          
1045          void call_slave()
1046          {
C51 COMPILER V7.06   MAIN_STOP1                                                            09/02/2005 14:08:54 PAGE 18  

1047   1              unsigned char call_add[]={M_current,M_RW,M_OSC,M_AVC,M_P,M_RC};//电流、旋转/送丝、横摆/弧长、面板、线控器
             -、等离子、热丝
1048   1              unsigned char i,ok[6],c_call[6];
1049   1              calling=1;
1050   1              for(i=0;i<6;i++)
1051   1              {
1052   2                      ok[i]=0;
1053   2                      c_call[i]=0;
1054   2              }
1055   1              for(i=0;i<6;i++)
1056   1              {
1057   2      RECALL:         if(ok[i]==0&&c_call[i]<3)
1058   2                      {
1059   3                                      ini_sbuf(call_add[i],command,com_calling,0,0,0,0);
1060   3                                      s_byte_nums=4;
1061   3                                      TR_ans();
1062   3                                      if(overtime==1)
1063   3                                              overtime=0;
1064   3                                      if(overtime==0&&R_ANSW==OK)
1065   3                                      {
1066   4                                              ok[i]=1;
1067   4                                              R_ANSW=0;
1068   4                                      }
1069   3                                      else
1070   3                                      {
1071   4                                              c_call[i]=c_call[i]+1;
1072   4                                              if(overtime==1)
1073   4                                                      overtime=0;
1074   4                                              goto RECALL;
1075   4                                      }
1076   3                      }
1077   2              }
1078   1              sbuffer1[0]=M_ALL;
1079   1              sbuffer1[1]=call_result;
1080   1              for(i=0;i<6;i++)
1081   1                      sbuffer1[i+2]=ok[i];
1082   1              sbuffer1[8]=0;
1083   1              s_byte_nums=9;
1084   1              s_p=1;
1085   1              TR_noans();
1086   1              s_p=0;
1087   1              i=0;
1088   1              current_absent=ok[i++];
1089   1              rw_absent=ok[i++];
1090   1              osc_absent=ok[i++];
1091   1              avc_absent=ok[i++];
1092   1              p_absent=ok[i++];
1093   1              rc_absent=ok[i++];
1094   1              calling=0;
1095   1      }
1096          
1097          void readPRG()
1098          {
1099   1              getPRG=1;
1100   1              readEEP_byte();
1101   1              getPRG=0;
1102   1              PRG=GET;
1103   1      }
1104          
1105          void send_param()
1106          {
1107   1              unsigned char   axis[]={M_current,M_RW,M_OSC,M_AVC},
C51 COMPILER V7.06   MAIN_STOP1                                                            09/02/2005 14:08:54 PAGE 19  

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

⌨️ 快捷键说明

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