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

📄 current.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   CURRENT                                                               06/21/2005 15:24:34 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CURRENT
OBJECT MODULE PLACED IN D:\程序05~1\CURRENT\CURRENT.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\程序05~1\CURRENT\CURRENT.C DB SB OE

stmt level    source

   1          #include <current.h>
   2          sbit con_hf=P4^0;
   3          sbit con_water=P4^1;
   4          sbit con_gas1=P4^6;
   5          sbit con_gas2=P4^7;
   6          sbit current_out=P4^4;
   7          sbit current_enable=P4^5;
   8          sbit send_enable=P3^4;
   9          sbit stop=P3^5;
  10          
  11          xdata unsigned char sbuffer[7]  _at_ 0x6000;
  12          xdata unsigned char rbuffer[55] _at_ 0x6007;
  13          xdata unsigned int  *point      _at_ 0x603E;
  14          xdata unsigned int  adl         _at_ 0x6040;
  15          xdata unsigned int  adh         _at_ 0x6042;
  16          xdata unsigned int  ad          _at_ 0x6044;
  17          xdata unsigned int  numbers     _at_ 0x6046;
  18          xdata unsigned int  I1          _at_ 0x6048;
  19          xdata unsigned int  I2          _at_ 0x604A;
  20          xdata unsigned int  ad_v        _at_ 0x604C;
  21          xdata unsigned int  ad_i        _at_ 0x604E;
  22          xdata unsigned long delt        _at_ 0x6050;
  23          xdata unsigned long delt1       _at_ 0x6054;
  24          xdata unsigned long c_t0        _at_ 0x6058;
  25          xdata unsigned long AD1         _at_ 0x605C;
  26          xdata unsigned long AD2         _at_ 0x6060;
  27          xdata unsigned long AD3         _at_ 0x6064;
  28          xdata unsigned long AD4         _at_ 0x6068;
  29          xdata unsigned long AD5         _at_ 0x606C;
  30          xdata unsigned long da          _at_ 0x6070;
  31          xdata unsigned char c_cm1       _at_ 0x6074;
  32          xdata unsigned char n_pulse     _at_ 0x6076;
  33          xdata unsigned char n_base      _at_ 0x6078;
  34          
  35          unsigned char   COMM,SLA,FF,GET,S_ANSW,R_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,
  36                          err,tab2,tab3,c_adc,c_t1,p_sec,s_byte_nums,r_byte_nums,
  37                          nonce_sec,c_cm2,avc_ok,delt_state;
  38          bit receive_p_out,receive_p_in,demand,in_sector,YOUHU,ad_finish,
  39              pre_melt_ok,igniting,new_sec,close_gas1,close_gas2,i_v,decrease,overtime,
  40              start,urgent_stop,edge,resend,send,called,open_gas1,open_gas2,close_gas1_ok,
  41              close_gas2_ok,close_gas_ok,ans,i_slope_ok,need_para,to_begin,ignit_ok,
  42              current_add,current_dec,kk,err_ok,current_err;
  43          xdata unsigned int IM   _at_ 0x6080;
  44          xdata unsigned int IB   _at_ 0x6084;
  45          
  46          void delay(unsigned int num)
  47          {
  48   1        data unsigned int i,ii;
  49   1        for(i=0;i<num;i++)
  50   1         {
  51   2           for(ii=0;ii<255;ii++);
  52   2         }
  53   1      }
  54          
  55          void start_i2()
C51 COMPILER V7.06   CURRENT                                                               06/21/2005 15:24:34 PAGE 2   

  56          {
  57   1         data unsigned int time;
  58   1         P1_6=1;              //SCL
  59   1         P1_7=1;              //SDA
  60   1         S1CON=0x47;          //ENS1=1 STA=0 STO=0 SI=0 AA=1
  61   1         PS1=1;FF=0;
  62   1         EA=1;
  63   1         ES1=1;
  64   1         STA=1;
  65   1         time=0;
  66   1         do
  67   1           {
  68   2            time++;
  69   2            if(time>10000)
  70   2                {
  71   3                 FF=1;
  72   3                }
  73   2           }while(FF==0);
  74   1         FF=0;
  75   1         ES1=0;
  76   1      }
  77          
  78          void start_i2a()
  79          {
  80   1         P1_6=1;              //SCL
  81   1         P1_7=1;              //SDA
  82   1         S1CON=0x47;          //ENS1=1 STA=0 STO=0 SI=0 AA=1
  83   1         PS1=1;
  84   1         EA=1;
  85   1         ES1=1;
  86   1         STA=1;
  87   1      }
  88          
  89          void ini_sbuf(unsigned char a,b,c,d,e,f,g)
  90          {
  91   1              sbuffer[0]=a;
  92   1              sbuffer[1]=b;
  93   1              sbuffer[2]=c;
  94   1              sbuffer[3]=d;
  95   1              sbuffer[4]=e;
  96   1              sbuffer[5]=f;
  97   1              sbuffer[6]=g;
  98   1      }
  99          
 100          unsigned char get_byte_nums(unsigned char type)
 101          {
 102   1              unsigned char numbers;
 103   1              switch(type)
 104   1              {
 105   2                      case    infor_sec:
 106   2                      case    command:
 107   2                      case    program:
 108   2                      case    answer:         numbers=4;
 109   2                                              break;
 110   2                      case    err_infor:
 111   2                      case    parameter1:     numbers=5;
 112   2                                              break;
 113   2                      case    parameter:
 114   2                      case    infor:          numbers=6;
 115   2                                              break;
 116   2                      case    parameter2:     numbers=7;
 117   2                                              break;
C51 COMPILER V7.06   CURRENT                                                               06/21/2005 15:24:34 PAGE 3   

 118   2                      case    call_result:    numbers=8;
 119   2                                              break;
 120   2                      case    p_out_sec:      numbers=55;
 121   2                                              break;
 122   2                      case    p_in_sec:       numbers=24;
 123   2                                              break;
 124   2                      case    edit_sec:       numbers=64;
 125   2                                              break;
 126   2                      default:                break;
 127   2              }
 128   1              return numbers;
 129   1      }
 130          
 131          void TR_noans()
 132          {
 133   1              REN=0;
 134   1              POINTER0=0;
 135   1              SSUM=0;
 136   1              send=1;
 137   1              send_enable=0;
 138   1              c_t1=0;
 139   1              TR1=1;
 140   1              while(POINTER0<s_byte_nums);
 141   1              TR1=0;
 142   1              send_enable=1;
 143   1              REN=1;
 144   1      }
 145          
 146          void TR_ans()
 147          {
 148   1              ans=1;
 149   1              REN=0;
 150   1              POINTER1=0;
 151   1              RSUM=0;
 152   1      //      TB8=1;
 153   1              POINTER0=0;
 154   1              SSUM=0;
 155   1              send=1;
 156   1              send_enable=0;
 157   1              c_t1=0;
 158   1              TR1=1;
 159   1              while(POINTER0<s_byte_nums);
 160   1              TR1=0;
 161   1              send_enable=1;
 162   1              if(overtime==1)
 163   1                      overtime=0;
 164   1      
 165   1              REN=1;
 166   1              send=0;
 167   1              c_t1=0;
 168   1              TR1=1;
 169   1              while(POINTER1<r_byte_nums&&overtime==0);
 170   1              TR1=0;
 171   1              POINTER1=0;
 172   1              RSUM=0;
 173   1              if(overtime==1)
 174   1              {
 175   2                      err=2;
 176   2                      overtime=0;
 177   2              }
 178   1              ans=0;
 179   1      }
C51 COMPILER V7.06   CURRENT                                                               06/21/2005 15:24:34 PAGE 4   

 180          
 181          void com_type()
 182          {
 183   1              switch(rbuffer[2])
 184   1              {
 185   2                      case com_calling:       called=1;break;
 186   2                      case com_start:         start=1;break;
 187   2                      case com_decrease:      decrease=1;break;       //衰减
 188   2                      case com_decrease_ok:   kk=0;break;
 189   2                      case com_current_add:   current_add=1;break;    //电流加
 190   2                      case com_current_dec:   current_dec=1;break;    //电流减
 191   2                      case com_demand:        demand=1;break;
 192   2                      case com_open_gas1:     open_gas1=1;break;
 193   2                      case com_open_gas2:     open_gas2=1;break;
 194   2                      case com_close_gas1:    close_gas1=1;break;
 195   2                      case com_close_gas2:    close_gas2=1;break;
 196   2                      case com_ignit:         igniting=1;break;
 197   2                      case com_ignit_ok:      ignit_ok=1;break;
 198   2                      case com_i_slope_ok:    i_slope_ok=1;break;
 199   2      //              case com_ignit_fail:    ignit_fail=1;break;
 200   2                      case com_pre_melt_ok:   pre_melt_ok=1;break;
 201   2                      case com_need_para:     need_para=1;break;
 202   2                      case com_goto_begin:    to_begin=1;break;
 203   2                      case com_err_ok:        err_ok=1;break;
 204   2                      default:                 break;
 205   2              }
 206   1      }
 207          
 208          void data_type()                                                //对接收到的数据分辨类型
 209          {
 210   1              switch(rbuffer[1])
 211   1              {
 212   2                      case command:   com_type();break;
 213   2      
 214   2                      case answer:    R_ANSW=rbuffer[1];break;
 215   2      /*
 216   2                      case infor_sec: nonce_sec=rbuffer[2];break;
 217   2      
 218   2                      case edit_sec:  if(in_sector==0)
 219   2                                      {
 220   2                                              nonce_sec=rbuffer[2];
 221   2                                              in_sector=1;
 222   2                                      }break;
 223   2      */
 224   2                      case infor:     {
 225   3                                              switch(rbuffer[2])
 226   3                                              {
 227   4                                                      case com_sector:        {
 228   5                                                                                      nonce_sec=rbuffer[3];
 229   5                                                                                      in_sector=1;
 230   5                                                                                      new_sec=1;
 231   5                                                                              }break;
 232   4                                                      case com_weld_simu:     YOUHU=rbuffer[3];break;
 233   4                                                      case com_delt_switch:   delt_state=rbuffer[3];break;
 234   4                                                      default:                break;
 235   4                                              }
 236   3                                      }break;
 237   2      
 238   2                      case p_out_sec: receive_p_out=1;break;
 239   2      
 240   2                      case p_in_sec:  {
 241   3                                              nonce_sec=rbuffer[2];
C51 COMPILER V7.06   CURRENT                                                               06/21/2005 15:24:34 PAGE 5   

 242   3                                              receive_p_in=1;
 243   3                                      }break;
 244   2                      default:        break;
 245   2              }
 246   1      }
 247          

⌨️ 快捷键说明

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