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

📄 searchsch.lst

📁 最先进的信号机程序,经过很多重要场合测试通过
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  SEARCHSCH                                                              08/02/2006 14:44:14 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE SEARCHSCH
OBJECT MODULE PLACED IN D:\GB_ASC\SEARCHSCH.OBJ
COMPILER INVOKED BY: e:\comp51\COMP51V6\C51.EXE D:\GB_ASC\SEARCHSCH.C DB SB OE LARGE

stmt level    source

   1          #include <searchsch.h>
   2          
   3          /*****************************************************************************************************/
   4          // 查找日计划号
   5          /*****************************************************************************************************/
   6          uchar search_day_plan()
   7          {
   8   1          uchar i,j,id;
   9   1          for(i=0; i<10; i++)
  10   1          {
  11   2             j = 6*i;
  12   2             if((XBYTE[0X6CE2+j]!=0) && (XBYTE[0X6CE3+j]!=0) && (XBYTE[0X6CE4+j]!=0) && (XBYTE[0X6CE5+j]!=0))
  13   2             {
  14   3               if(now_month>XBYTE[0X6CE2+j])
  15   3               {
  16   4                  if(now_month<XBYTE[0X6CE4+j])
  17   4                  {
  18   5                     id = XBYTE[0X6CE7+j];
  19   5                     return (id);
  20   5                  }
  21   4                  else if((now_month==XBYTE[0X6CE4+j]) && (now_date<=XBYTE[0X6CE5+j]))
  22   4                  {
  23   5                     id = XBYTE[0X6CE7+j];
  24   5                     return (id);
  25   5                  }
  26   4               }
  27   3               else if((now_month==XBYTE[0X6CE2+j]) && (now_date>=XBYTE[0X6CE3+j]))
  28   3               {
  29   4                  if(now_month<XBYTE[0X6CE4+j])
  30   4                  {
  31   5                     id = XBYTE[0X6CE7+j];
  32   5                     return (id);
  33   5                  }
  34   4                  else if((now_month==XBYTE[0X6CE4+j]) && (now_date<=XBYTE[0X6CE5+j]))
  35   4                  {
  36   5                     id = XBYTE[0X6CE7+j];
  37   5                     return (id);
  38   5                  }
  39   4      
  40   4               }
  41   3             }
  42   2          }
  43   1          for(i=0; i<10; i++)
  44   1          {
  45   2              j = 6*i;
  46   2              if(now_day==XBYTE[0X6CE6+j])
  47   2              {
  48   3                 id = XBYTE[0X6CE7+j];
  49   3                 return (id);
  50   3              }
  51   2          }
  52   1      
  53   1          return 0;
  54   1      }
  55          /*****************************************************************************************************/
C51 COMPILER V6.02  SEARCHSCH                                                              08/02/2006 14:44:14 PAGE 2   

  56          // 查找方案号
  57          /*****************************************************************************************************/
  58          uint timecounter,timecountern;
  59           uint addr_temp;
  60          uchar search_scheme()
  61          {
  62   1          uchar i,j,id;
  63   1          //uint timecounter,timecountern;
  64   1          //uint addr_temp;
  65   1          uchar state_flag=1;
  66   1          addr_temp = 0x63a4+74*(now_day_planid-1);       //当前日计划表基地址
  67   1          for(i=0; i<24; i++)
  68   1          {
  69   2             j = i*3;
  70   2             timecounter = XBYTE[addr_temp+j]*60+XBYTE[addr_temp+1+j];
  71   2             timecountern= XBYTE[addr_temp+j+3]*60+XBYTE[addr_temp+4+j];
  72   2             if(timecountern!=0)
  73   2             {
  74   3                if(timecounter<timecountern)
  75   3                {
  76   4                   if((now_time>=timecounter) && (now_time<timecountern))
  77   4                   {
  78   5                      state_flag=0;
  79   5                      timeid = i+1;
  80   5                      id = XBYTE[addr_temp+2+j];
  81   5                      return (id);
  82   5                   }
  83   4                }
  84   3                else if(timecounter>timecountern)
  85   3                {
  86   4                   if((now_time>=timecounter) || (now_time<timecountern))
  87   4                   {
  88   5                      state_flag=0;
  89   5                      timeid = i+1;
  90   5                      id = XBYTE[addr_temp+2+j];
  91   5                      return (id);
  92   5                   }
  93   4                }
  94   3             }
  95   2             else
  96   2             {
  97   3                 //if(now_time>=timecounter)
  98   3                if(state_flag==1)
  99   3                 {
 100   4                      timeid = i+1;
 101   4                      id = XBYTE[addr_temp+2+j];
 102   4                      return (id);
 103   4                 }
 104   3             }
 105   2          }
 106   1          last_timeid=timeid;
 107   1          return 0 ;
 108   1      }
 109          uchar search_scheme_yellow()
 110          {
 111   1          uchar i,j,id;
 112   1          uint timecounter,timecountern;
 113   1          uint addr_temp;
 114   1          uchar state_flag=1;
 115   1          addr_temp = 0x63a4+74*(now_day_planid-1);       //当前日计划表基地址
 116   1          for(i=0; i<24; i++)
 117   1          {
C51 COMPILER V6.02  SEARCHSCH                                                              08/02/2006 14:44:14 PAGE 3   

 118   2             j = i*3;
 119   2             timecounter = XBYTE[addr_temp+j]*60+XBYTE[addr_temp+1+j];
 120   2             timecountern= XBYTE[addr_temp+j+3]*60+XBYTE[addr_temp+4+j];
 121   2             if(timecountern!=0)
 122   2             {
 123   3                if(timecounter<timecountern)
 124   3                {
 125   4                   if((now_time>=timecounter) && (now_time<timecountern))
 126   4                   {
 127   5                      state_flag=0;
 128   5                      timeid = i+1;
 129   5                      id = XBYTE[addr_temp+2+j];
 130   5                      return (id);
 131   5                   }
 132   4                }
 133   3                else if(timecounter>timecountern)
 134   3                {
 135   4                   if((now_time>=timecounter) || (now_time<timecountern))
 136   4                   {
 137   5                      state_flag=0;
 138   5                      timeid = i+1;
 139   5                      id = XBYTE[addr_temp+2+j];
 140   5                      return (id);
 141   5                   }
 142   4                }
 143   3             }
 144   2             else
 145   2             {
 146   3                 //if(now_time>=timecounter)
 147   3                 if(state_flag==1)
 148   3                 {
 149   4                      timeid = i+1;
 150   4                      id = XBYTE[addr_temp+2+j];
 151   4                      return (id);
 152   4                 }
 153   3             }
 154   2          }
 155   1          last_timeid=timeid;
 156   1          return 0 ;
 157   1      }
 158          
 159          /*****************************************************************************************************/
 160          // 查找方案
 161          /*****************************************************************************************************/
 162          void search_sch()
 163          {
 164   1         uchar i,j,k;
 165   1         uint toto;
 166   1         uint phasek;
 167   1      
 168   1         //fuctioncounter++;
 169   1        // if(fuctioncounter==2)
 170   1        //   fuctioncounter = 0;
 171   1         now_day_planid = search_day_plan();                        //查找日计划表号
 172   1      
 173   1         if(now_day_planid==0)
 174   1         {
 175   2          now_day_planid=0;
 176   2         }
 177   1         else if(now_day_planid<=32)
 178   1         {
 179   2            now_schemeid = search_scheme();                         //查找方案号
C51 COMPILER V6.02  SEARCHSCH                                                              08/02/2006 14:44:14 PAGE 4   

 180   2        //    if(loop_error_flag==1)now_schemeid=32;                  //如果当前相位全部检测器都出现故障,降级为
             -方案32
 181   2            baseaddr_now_schemesch = 0x5E83+41*(now_schemeid-1);
 182   2            now_step_schid = XBYTE[baseaddr_now_schemesch];         //当前阶段表号
 183   2            step_num = XBYTE[0x5243+(now_step_schid-1)*98];
 184   2            XBYTE[baseaddr_now_schemesch+1]=step_num;             //当前阶段数
 185   2      
 186   2            baseaddr_now_stepsch = 0x5243+98*(now_step_schid-1);
 187   2            now_phase_schid = XBYTE[baseaddr_now_stepsch+3];          //当前相位表号
 188   2            if(now_phase_schid==0)
 189   2            {
 190   3               baseaddr_now_phasesch = 0x5001;
 191   3            }
 192   2            else if(now_phase_schid==1)
 193   2            {
 194   3               baseaddr_now_phasesch = 0x5122;
 195   3            }
 196   2      
 197   2            for(i=0; i<step_num; i++)            //lq          //感应阶段标志置成0先
 198   2            {

⌨️ 快捷键说明

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