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

📄 current1.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   CURRENT1                                                              07/15/2005 11:04:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CURRENT1
OBJECT MODULE PLACED IN C:\DOCUME~1\HH\桌面\050706\CURRENT\CURRENT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\HH\桌面\050706\CURRENT\CURRENT1.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          xdata unsigned int IM           _at_ 0x6080;
  35          xdata unsigned int IMM          _at_ 0x6084;
  36          xdata unsigned int IB           _at_ 0x6088;
  37          xdata unsigned int IBB          _at_ 0x608C;
  38          unsigned char   COMM,SLA,FF,GET,S_ANSW,R_ANSW,POINTER0,POINTER1,work,RSUM,SSUM,
  39                          err,tab2,tab3,c_adc,c_t1,p_sec,s_byte_nums,r_byte_nums,
  40                          nonce_sec,c_cm2,avc_ok,delt_state;
  41          unsigned int    I11,I12,I21,I22,delt_ahf,last_i_p,last_i_b;
  42          unsigned long   t,c_ahf_p,c_ahf_b;
  43          bit receive_p_out,receive_p_in,demand,in_sector,YOUHU,ad_finish,
  44              pre_melt_ok,igniting,new_sec,close_gas1,close_gas2,i_v,decrease,overtime,
  45              start,urgent_stop,edge,resend,send,called,open_gas1,open_gas2,close_gas1_ok,
  46              close_gas2_ok,close_gas_ok,ans,i_slope_ok,need_para,to_begin,ignit_ok,
  47              current_add,current_dec,kk,err_ok,current_err,ahf_ok,ahf_p_b;
  48          float temp_delt;
  49          
  50          void delay(unsigned int num)
  51          {
  52   1        data unsigned int i,ii;
  53   1        for(i=0;i<num;i++)
  54   1         {
  55   2           for(ii=0;ii<255;ii++);
C51 COMPILER V7.06   CURRENT1                                                              07/15/2005 11:04:46 PAGE 2   

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

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

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

 242          
 243          void answer_judge()
 244          {
 245   1              unsigned char c_err;
 246   1              c_err=0;
 247   1      resend: if(R_ANSW!=OK)
 248   1              {
 249   2                      c_err++;

⌨️ 快捷键说明

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