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

📄 dc1.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   DC1                                                                   09/11/2006 08:21:54 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DC1
OBJECT MODULE PLACED IN D:\PROJECT\SUPARC400\SUPARC400\DC\DC1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\PROJECT\SUPARC400\SUPARC400\DC\DC1.C DB SB OE

stmt level    source

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

  56   2                                              break;
  57   2                      case    parameter:
  58   2                      case    infor:          numbers=6;
  59   2                                              break;
  60   2                      case    parameter2:     numbers=7;
  61   2                                              break;
  62   2                      case    call_result:    numbers=8;
  63   2                                              break;
  64   2                      case    p_out_sec:      numbers=55;
  65   2                                              break;
  66   2                      case    p_in_sec:       numbers=24;
  67   2                                              break;
  68   2                      case    edit_sec:       numbers=64;
  69   2                                              break;
  70   2                      default:                numbers=4;
  71   2                                              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                                                                   09/11/2006 08:21:54 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                                                              wire_add=1;
 153   3                                                      else if(work==3)
 154   3                                                      {
 155   4                                                              if(wire_add==0&&WIRE==ON&&pp.k3==ON)
 156   4                                                                      wire_add=1;
 157   4                                                      }
 158   3                                              }break;
 159   2                      case com_wire_dec:      {                               //抽丝
 160   3                                                      if(work==0)
 161   3                                                              wire_dec=1;
 162   3                                                      else if(work==3)
 163   3                                                      {
 164   4                                                              if(wire_dec==0&&WIRE==ON&&pp.k3==ON)
 165   4                                                                      wire_dec=1;
 166   4                                                      }
 167   3                                              }break;
 168   2                      case com_motor_stop:    {                               //停止点动
 169   3                                                      if(motor_stop==0)
 170   3                                                      {
 171   4                                                              IEN1=IEN1&0XBF;         //CM2
 172   4                                                              c_cm2=0;
 173   4                                                              motor_stop=1;
 174   4                                                      }
 175   3                                              }break;
 176   2                      case com_pre_melt_ok:   start_rot=1;break;
 177   2                      case com_decrease:      decrease=1;break;
 178   2                      case com_decrease_ok:   rot_stop=1;break;
 179   2                      case com_wire:          start_wire=1;break;
C51 COMPILER V7.06   DC1                                                                   09/11/2006 08:21:54 PAGE 4   

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

 242   3                                      decrease_rate=893;
 243   3                              }break;

⌨️ 快捷键说明

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