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

📄 fk.lst

📁 rs485、八位扫描显示、按键、数字编码器
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   FK                                                                    12/26/2006 10:15:54 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FK
OBJECT MODULE PLACED IN F:\无级灯光\分控\FK.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE F:\无级灯光\分控\FK.C DB SB OE

line level    source

   1          #include<reg51.h>
   2          #include <intrins.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define nop _nop_();
   6          sbit pwm1=P1^1;
   7          sbit pwm2=P1^2;
   8          sbit r485=P1^3;/*0接收,1发送*/
   9          sbit pl_km=P1^4;/*旁路接触器*/
  10          sbit ud_km=P1^5;/*正负补偿*/
  11          sbit sc_b=P1^6;
  12          sbit sc_c=P1^7;
  13          sbit adc_cs=P3^2;
  14          sbit adc_v=P3^3;
  15          sbit adc_a=P3^4;
  16          sbit adc_clk=P3^5;
  17          sbit bx_jd=P3^7;
  18          uchar tj_v,xw,in_v,in_a;
  19          uchar v_av,a_av,v_avl,a_avl,v_gd,i_gd,i_kz,t_add,t_sub,obj_v,gz_bz,v_add,v_sub,t_w,ol_t,
  20                          ol_lj,ol_num,a_bl,bc_bt,bc_t,sr_num,sr_com,sr_pro;
  21          uchar sr_dat[13];
  22          uint t0_lj,a_zs,sr_data,st_data,second,t_run;
  23          bit ud_pwm,t0_int,sr_int,st_int,on_off,bc_zf,bc_ds,gy_gz,sr_zt,sr_ov,t0bit,kz_off;
  24          void delay1(uchar x)
  25          { uchar temp;
  26   1      for (temp=x;temp>0;temp--)
  27   1      {nop;}
  28   1      }
  29          bit jy_ch()
  30          {bit tempbit=0;
  31   1      uchar temp;
  32   1      uint tempint1=0,tempint2=0;
  33   1       if((xw==sr_dat[1])||(sr_dat[1]==0))
  34   1       {
  35   2              for(temp=7;temp>0;temp--)tempint1+=sr_dat[temp];
  36   2        tempint2=sr_dat[8]<<12;
  37   2        tempint2|=sr_dat[9]<<8;
  38   2        tempint2|=sr_dat[10]<<4;
  39   2        tempint2|=sr_dat[11];
  40   2        if(tempint2==tempint1)
  41   2        {     tempbit=1;
  42   3          sr_com=sr_dat[2];
  43   3              sr_pro=sr_dat[3];
  44   3         sr_data=sr_dat[4]<<12;
  45   3        sr_data|=sr_dat[5]<<8;
  46   3        sr_data|=sr_dat[6]<<4;
  47   3        sr_data|=sr_dat[7];
  48   3        }
  49   2       }
  50   1       return(tempbit);
  51   1      }
  52          r_exe()
  53          {
  54   1      uint tempint;
  55   1      uchar temp;
C51 COMPILER V7.50   FK                                                                    12/26/2006 10:15:54 PAGE 2   

  56   1      sr_dat[0]=0xa5;
  57   1      sr_dat[12]=0xe7;
  58   1      switch(sr_dat[2])
  59   1              {
  60   2              case 0:
  61   2                      switch(sr_dat[3])
  62   2                      {
  63   3                      case 0:sr_dat[4]=sr_dat[5]=0;
  64   3                              sr_dat[6]=v_av>>4; sr_dat[7]=v_av&0xf;
  65   3                      break;
  66   3                      case 1: temp=a_zs>>8;
  67   3                                      sr_dat[4]=temp>>4;
  68   3                                  sr_dat[5]=temp&0xf;
  69   3                                      temp=a_zs&0xff;
  70   3                                      sr_dat[6]=temp>>4;
  71   3                                  sr_dat[7]=temp&0xf;
  72   3                      break;
  73   3                      case 2: temp=tj_v/16;
  74   3                                      if(bc_zf)tempint=temp+v_av;
  75   3                                      else tempint=v_av-temp;
  76   3                                      if(tempint>255)tempint=255;
  77   3                                      sr_dat[4]=sr_dat[5]=0;
  78   3                              sr_dat[6]=tempint>>4; sr_dat[7]=tempint&0xf;
  79   3                      }
  80   2              break;
  81   2              case 1:
  82   2              switch(sr_dat[3])
  83   2                      {
  84   3                      case 0:v_gd=sr_dat[6]<<4;v_gd|=sr_dat[7];
  85   3                      break;
  86   3                      case 1:i_gd=sr_dat[6]<<4;i_gd|=sr_dat[7];
  87   3                      break;
  88   3                      case 2:t_run=sr_dat[4]<<12;t_run|=(sr_dat[5]<<8);
  89   3                                      t_run|=(sr_dat[6]<<4);t_run|=sr_dat[7];
  90   3                      break;
  91   3                      case 3:v_add=sr_dat[6]<<4;v_add|=sr_dat[7];
  92   3                      break;
  93   3                      case 4:v_sub=sr_dat[6]<<4;v_sub|=sr_dat[7];
  94   3                      break;
  95   3                      case 5:i_kz=sr_dat[6]<<4;i_kz|=sr_dat[7];
  96   3                      break;
  97   3                      case 6:ol_t=sr_dat[6]<<4;ol_t|=sr_dat[7];
  98   3                      break;
  99   3                      case 7:a_bl=sr_dat[6]<<4;a_bl|=sr_dat[7];
 100   3                      break;
 101   3                      case 8:bc_bt=sr_dat[6]<<4;bc_bt|=sr_dat[7];
 102   3                      break;
 103   3                      case 9:gy_gz=sr_dat[7];
 104   3                      break;
 105   3                      case 10:bc_ds=sr_dat[7];
 106   3                      break;
 107   3                      case 11:kz_off=sr_dat[7];
 108   3                      }
 109   2                      break;
 110   2              case 2:
 111   2                      switch(sr_dat[3])
 112   2                      {
 113   3                      case 0:gz_bz=7;on_off=0;/*强迫关机*/
 114   3                      break;
 115   3                      case 1:if((gz_bz==0)||(gz_bz==7)){gz_bz=0;on_off=1;}
 116   3                      break;
 117   3                      case 2:gz_bz=0;
C51 COMPILER V7.50   FK                                                                    12/26/2006 10:15:54 PAGE 3   

 118   3                      }
 119   2              }
 120   1      if(gz_bz!=0){sr_dat[2]=3;sr_dat[3]=gz_bz;}
 121   1      else
 122   1              {if(!on_off)sr_dat[2]=0;
 123   2              else
 124   2                      {if(bc_zf)sr_dat[2]=1;
 125   3                      else sr_dat[2]=2;
 126   3                      }
 127   2              }
 128   1              tempint=0;
 129   1      for(temp=7;temp>0;temp--)
 130   1              {
 131   2              tempint+=sr_dat[temp];
 132   2              }
 133   1              temp=tempint>>8;
 134   1              sr_dat[8]=temp>>4;
 135   1              sr_dat[9]=temp&0xf;
 136   1              temp=tempint&0xff;
 137   1              sr_dat[10]=temp>>4;
 138   1              sr_dat[11]=temp&0xf;
 139   1      }
 140          main()
 141          {
 142   1      bit tempbit;
 143   1      uint tempint;
 144   1      uchar temp,ch1,ch2;
 145   1      /*初始化*/
 146   1      bx_jd=1;
 147   1      pwm1=0;
 148   1      nop
 149   1      nop
 150   1      pwm2=1;
 151   1      pl_km=1;
 152   1      ud_km=1;
 153   1      r485=0;
 154   1      TMOD=0x22;
 155   1      SCON=0X40;
 156   1      PCON=0;
 157   1      TH1=0XFD;/*9600 *波特*/
 158   1      TH0=0;
 159   1      TR1=1;
 160   1      TR0=1;
 161   1      ET0=1;
 162   1      ES=1;
 163   1      EA=1;
 164   1      t_run=0;
 165   1      second=0;
 166   1      t_run=255;
 167   1      t_add=0;
 168   1      t_sub=0;
 169   1      v_gd=210;
 170   1      on_off=0;
 171   1      ol_lj=0;
 172   1      ol_num=0;
 173   1      sr_num=0;
 174   1      REN=1;
 175   1      RI=0;
 176   1      sr_zt=0;
 177   1      bx_jd=0;
 178   1      /*工作区*/
 179   1      while(1)
C51 COMPILER V7.50   FK                                                                    12/26/2006 10:15:54 PAGE 4   

 180   1              {
 181   2              /*电压读取*电流读取**/
 182   2              ch1=ch2=0;
 183   2              adc_cs=0;
 184   2              for(temp=9;temp>0;temp--)
 185   2              { adc_clk=1;delay1(2);
 186   3                adc_clk=0;delay1(2);
 187   3                ch1=(ch1<<1)|adc_v;
 188   3                ch2=(ch2<<1)|adc_a;
 189   3              }
 190   2              adc_cs=1;
 191   2              tempint=v_av<<8;
 192   2              tempint+=v_avl;
 193   2              tempint-=v_av;
 194   2              tempint+=ch1;
 195   2              v_avl=tempint&0xff;
 196   2              v_av=tempint>>8;
 197   2              tempint=a_av<<8;
 198   2              tempint+=a_avl;
 199   2              tempint-=a_av;
 200   2              tempint+=ch2;
 201   2              a_avl=tempint&0xff;
 202   2              a_av=tempint>>8;
 203   2              /*计算、保护及动作*/
 204   2              a_zs=a_av*a_bl;
 205   2              if(kz_off)
 206   2              {if(a_zs<i_kz)
 207   3                      {gz_bz=6;
 208   4                      on_off=0;
 209   4                      tj_v=0;
 210   4                      }
 211   3              else if(gz_bz==6)gz_bz=0;
 212   3              }
 213   2              else if(gz_bz==6)gz_bz=0;
 214   2              if(a_zs<=i_gd)
 215   2                      {
 216   3                      ol_num=0;
 217   3                      ol_lj=0;
 218   3                      }
 219   2              else
 220   2                      {tempint=i_gd<<1;
 221   3                      tempint+=i_gd;
 222   3                      if(a_zs>tempint)
 223   3                              {gz_bz=4;
 224   4                              on_off=0;
 225   4                              pl_km=1;
 226   4                              tj_v=0;
 227   4                              }
 228   3                       else
 229   3                              {tempint=a_zs-i_gd;
 230   4                              if(tempint<255)ol_num=tempint;
 231   4                              else ol_num=255;
 232   4                              }
 233   3                      }
 234   2              if(ol_lj>ol_t)
 235   2                      {if(!gz_bz)gz_bz=3;
 236   3                      on_off=0;
 237   3                      pl_km=1;
 238   3                      tj_v=0;
 239   3                      }
 240   2              if(v_av<v_gd)
 241   2                      {if(!bc_zf)bc_t=0;
C51 COMPILER V7.50   FK                                                                    12/26/2006 10:15:54 PAGE 5   

 242   3                      if(bc_t>bc_bt){bc_zf=1;ud_km=0;}
 243   3                      if(bc_ds&&bc_zf)
 244   3                              {temp=v_gd-v_av;
 245   4                              if(temp<40)
 246   4                                      {obj_v=temp*6;
 247   5                                      if(gz_bz<3)gz_bz=0;
 248   5                                      }
 249   4                                      else
 250   4                                      {if((!gz_bz)&&(!bc_zf))gz_bz=1;
 251   5                                      if(!bc_ds)on_off=0;
 252   5                                      pl_km=1;
 253   5                                      tj_v=0;
 254   5                                      }
 255   4                              }
 256   3                              else
 257   3                              {if(!gz_bz&&!bc_ds)gz_bz=1;
 258   4                              on_off=0;
 259   4                              pl_km=1;
 260   4                              tj_v=0;
 261   4                              }
 262   3                      }
 263   2              else
 264   2              if(v_av>v_gd)
 265   2                      {if(bc_zf)bc_t=0;
 266   3                      if(bc_t>bc_bt){bc_zf=0;ud_km=1;}
 267   3                      if(!bc_zf)
 268   3                              {temp=v_av-v_gd;
 269   4                              if(temp<40)
 270   4                                      {obj_v=temp*6;
 271   5                                      if(gz_bz<3)gz_bz=0;
 272   5                                      }
 273   4                                      else
 274   4                                      {
 275   5                                      if(gy_gz)
 276   5                                              {
 277   6                                              if(!gz_bz)gz_bz=2;
 278   6                                              on_off=0;
 279   6                                              pl_km=1;
 280   6                                              tj_v=0;
 281   6                                              }
 282   5                                      else {if(gz_bz<3)gz_bz=0;

⌨️ 快捷键说明

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