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

📄 dc1_test.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   DC1_TEST                                                              09/14/2005 10:00:17 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DC1_TEST
OBJECT MODULE PLACED IN E:\NEWMAC~1\050808\DC\DC1_TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE E:\NEWMAC~1\050808\DC\DC1_TEST.C DB SB OE

stmt level    source

   1          #include <dc.h>
   2          
   3          sbit stop=P3^5;
   4          sbit wire_back=P4^4;
   5          sbit wire_front=P4^5;
   6          sbit rot_right=P4^6;
   7          sbit rot_left=P4^7;
   8          sbit send_enable=P3^4;
   9          sbit limit=P4^3;
  10          sbit wire_over_i=P1^2;
  11          xdata unsigned char rbuffer[55],sbuffer[6];
  12          unsigned char   COMM,SLA,FF,GET,POINTER0,SSUM,POINTER1,RSUM,c_t1,s_byte_nums,r_byte_nums,pulse_num,
  13                          err,WIRE,S_ANSW,nonce_sec,work,p_sec,K21,K3,K31,tooth_num,
  14                          temp_pulse_num,pulse_num1,temp_pulse_num1,delt_state,rot_slope_delt,wire_slope_delt;
  15          
  16          unsigned int    *point,rot_vp,temp_rot_vp,rot_vb,temp_rot_vb,wire_vp,temp_wire_vp,wire_vb,
  17                          temp_wire_vb,n_cm0,c_cm0,n_cm1,c_cm1,n_cm2,c_cm2,FINISH,temp_FINISH,delt_rot,delt_wire,motor_v;
  18          unsigned int    r;
  19          unsigned long   const1;
  20          float           temp_data0,const0,temp_data00;
  21          bit     send,overtime,start,decrease,urgent_stop,rot_front,rot_reverse,wire_add,
  22                  wire_dec,rot_ok,wire_ok,in_sector,receive_p_out,receive_p_in,demand,need_para,
  23                  rot_stop,rot_stop_ok,called,p_b,new_sector,start_rot,start_wire,stop_wire,r_slope_ok,
  24                  w_slope_ok,retract,return_ok,retract_ok,motor_stop,auto_return,resend,ans,
  25                  to_begin,noans_ok,ask_return_ok,k_r_p_add,k_r_b_add,k_r_p_dec,k_r_b_dec,k22,k33,k44;
  26          bit     kk,rw_err,err_ok;
  27          
  28          void start_t2()
  29          {
  30   1              TM2CON=0x85;    //16位溢出,分频系数2,f/12
  31   1              EA=1;
  32   1              TM2IR=0;
  33   1      }
  34          
  35          void ini_sbuf(unsigned char a,b,c,d,e,f)
  36          {
  37   1              sbuffer[0]=a;
  38   1              sbuffer[1]=b;
  39   1              sbuffer[2]=c;
  40   1              sbuffer[3]=d;
  41   1              sbuffer[4]=e;
  42   1              sbuffer[5]=f;
  43   1      }
  44          
  45          unsigned char get_byte_nums(unsigned char type)
  46          {
  47   1              unsigned char numbers;
  48   1              switch(type)
  49   1              {
  50   2                      case    infor_sec:
  51   2                      case    command:
  52   2                      case    program:
  53   2                      case    answer:         numbers=4;
  54   2                                              break;
  55   2                      case    err_infor:
C51 COMPILER V7.06   DC1_TEST                                                              09/14/2005 10:00:17 PAGE 2   

  56   2                      case    parameter1:     numbers=5;
  57   2                                              break;
  58   2                      case    parameter:
  59   2                      case    infor:          numbers=6;
  60   2                                              break;
  61   2                      case    parameter2:     numbers=7;
  62   2                                              break;
  63   2                      case    call_result:    numbers=8;
  64   2                                              break;
  65   2                      case    p_out_sec:      numbers=55;
  66   2                                              break;
  67   2                      case    p_in_sec:       numbers=24;
  68   2                                              break;
  69   2                      case    edit_sec:       numbers=64;
  70   2                                              break;
  71   2                      default:                break;
  72   2              }
  73   1              return numbers;
  74   1      }
  75          
  76          void TR_noans()
  77          {
  78   1              noans_ok=0;
  79   1              POINTER0=0;
  80   1              SSUM=0;
  81   1              send=1;
  82   1              c_t1=0;
  83   1              send_enable=0;                          //开发送使能
  84   1              TR1=1;
  85   1              while(POINTER0<s_byte_nums);
  86   1              TR1=0;
  87   1              send_enable=1;                          //关发送使能
  88   1              noans_ok=1;
  89   1      }
  90          
  91          void delay(unsigned char num)
  92          {
  93   1              unsigned char i,ii;
  94   1              for(i=0;i<num;i++)
  95   1              {
  96   2                      for(ii=0;ii<255;ii++);
  97   2              }
  98   1      }
  99          
 100          void TR_ans()
 101          {
 102   1              ans=1;
 103   1              REN=0;
 104   1              POINTER1=0;
 105   1              RSUM=0;
 106   1              TB8=1;
 107   1              POINTER0=0;
 108   1              SSUM=0;
 109   1              send=1;
 110   1              c_t1=0;
 111   1              send_enable=0;                          //开发送使能
 112   1              TR1=1;
 113   1              while(POINTER0<s_byte_nums);
 114   1              TR1=0;
 115   1              send_enable=1;                          //关发送使能
 116   1      
 117   1              REN=1;
C51 COMPILER V7.06   DC1_TEST                                                              09/14/2005 10:00:17 PAGE 3   

 118   1              send=0;
 119   1              c_t1=0;
 120   1      //      TR1=1;
 121   1              while(POINTER1<r_byte_nums&&overtime==0);
 122   1              TR1=0;
 123   1              if(overtime==1)
 124   1              {
 125   2                      err=2;                          //通信出错
 126   2                      overtime=0;
 127   2              }
 128   1              ans=0;
 129   1      }
 130          
 131          void com_type()
 132          {
 133   1              switch(rbuffer[2])
 134   1              {
 135   2                      case com_calling:       called=1;break;
 136   2                      case com_demand:        {
 137   3                                                      if(demand==0)
 138   3                                                              demand=1;
 139   3                                              }break;
 140   2                      case com_need_para:     need_para=1;break;
 141   2                      case com_start:         start=1;break;
 142   2                      case com_rot_front:     {                               //正转
 143   3                                                      if(rot_front==0)
 144   3                                                              rot_front=1;
 145   3                                              }break;
 146   2                      case com_rot_reverse:   {                               //反转
 147   3                                                      if(rot_reverse==0)
 148   3                                                              rot_reverse=1;
 149   3                                              }break;
 150   2                      case com_wire_add:      {                               //送丝
 151   3                                                      if(work==0)
 152   3                                                      {
 153   4      //                                                      if(wire_add==0&&WIRE==ON)
 154   4                                                                      wire_add=1;
 155   4                                                      }
 156   3                                                      if(work==3)
 157   3                                                      {
 158   4                                                              if(wire_add==0&&WIRE==ON&&pp.k3==ON)
 159   4                                                                      wire_add=1;
 160   4                                                      }
 161   3                                              }break;
 162   2                      case com_wire_dec:      {                               //抽丝
 163   3                                                      if(work==0)
 164   3                                                      {
 165   4      //                                                      if(wire_dec==0&&WIRE==ON)
 166   4                                                                      wire_dec=1;
 167   4                                                      }
 168   3                                                      if(work==3)
 169   3                                                      {
 170   4                                                              if(wire_dec==0&&WIRE==ON&&pp.k3==ON)
 171   4                                                                      wire_dec=1;
 172   4                                                      }
 173   3                                              }break;
 174   2                      case com_motor_stop:    {                               //停止点动
 175   3                                                      if(motor_stop==0)
 176   3                                                              motor_stop=1;
 177   3                                              }break;
 178   2                      case com_pre_melt_ok:   start_rot=1;break;
 179   2                      case com_decrease:      decrease=1;break;
C51 COMPILER V7.06   DC1_TEST                                                              09/14/2005 10:00:17 PAGE 4   

 180   2                      case com_decrease_ok:   rot_stop=1;break;
 181   2                      case com_wire:          start_wire=1;break;
 182   2                      case com_stopW:         {
 183   3                                                      stop_wire=1;
 184   3                                                      
 185   3                              }break;
 186   2                      case com_return:        auto_return=1;break;
 187   2                      case com_return_ok:     return_ok=1;break;
 188   2                      case com_goto_begin:    to_begin=1;break;
 189   2                      case com_err_ok:        err_ok=1;break;
 190   2                      default:                 break;
 191   2              }
 192   1      }
 193          
 194          void data_type()                                                //对接收到的数据分辨类型
 195          {
 196   1                      switch(rbuffer[1])
 197   1                      {
 198   2                              case command:   com_type();break;
 199   2      //                      case answer:    R_ANSW=rbuffer[2];break;
 200   2                              case infor:     {
 201   3                                                      switch(rbuffer[2])
 202   3                                                      {
 203   4                                                              case com_sector:        {
 204   5                                                                                              nonce_sec=rbuffer[3];
 205   5                                                                                              in_sector=1;
 206   5                                                                                              new_sector=1;
 207   5                                                                                      }break;
 208   4                                                              case com_wire_on_off:   WIRE=rbuffer[3];break;//送丝开关
 209   4                                                              case com_delt_switch:   delt_state=rbuffer[3];break;
 210   4                                                              default:                break;
 211   4                                                      }
 212   3                                              }break;
 213   2                              case p_out_sec: receive_p_out=1;break;
 214   2                              case p_in_sec:  {
 215   3                                                      nonce_sec=rbuffer[2];
 216   3                                                      receive_p_in=1;
 217   3                                              }break;
 218   2                              case parameter1:FINISH=rbuffer[2]*256+rbuffer[3];break;
 219   2                              default:        break;
 220   2                      }
 221   1      }
 222          
 223          void get_v_r()
 224          {
 225   1              switch(pp.rn/256)
 226   1              {
 227   2                      case 1: {
 228   3                                      motor_v=6600;
 229   3                                      r=25;
 230   3                              }break;
 231   2                      case 2:
 232   2                      case 3:
 233   2                      case 4:
 234   2                      case 5:
 235   2                      case 6: {
 236   3                                      motor_v=6600;
 237   3                                      r=28;
 238   3                              }break;
 239   2                      case 7: {
 240   3                                      motor_v=6600;
 241   3                                      r=25;
C51 COMPILER V7.06   DC1_TEST                                                              09/14/2005 10:00:17 PAGE 5   

 242   3                              }break;

⌨️ 快捷键说明

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