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

📄 stru.lst

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  STRU                                                                   09/28/2006 21:46:49 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE STRU
OBJECT MODULE PLACED IN F:\LAIWORK\GB_ASC\STRU.OBJ
COMPILER INVOKED BY: c:\COMP51V6\C51.EXE F:\LAIWORK\GB_ASC\STRU.C DB SB OE LARGE

stmt level    source

   1          #include <stru.h>
   2          /*****************************************************************************************************/
   3          //    初始化函数
   4          /*****************************************************************************************************/
   5          extern uchar xdata loop_now[32],loop_last[32];
   6          void init(void)
   7          {
   8   1          uchar i,j;
   9   1          uint k;
  10   1      
  11   1      
  12   1          D12887A=0x2f;               /*对时钟中断进行设置 */
  13   1          D12887B=0x4e;
  14   1          XBYTE[0XC083]=0X8b;         //CPU板内8255设置,绿灯电源为输出,遥控为输入
  15   1          XBYTE[0XC080]=0X81;         //输出绿灯电源
  16   1          XBYTE[0Xc103]=0x80;         //灯输出板设置,都设为输出
  17   1          XBYTE[0Xc183]=0x80;
  18   1          XBYTE[0XC203]=0X9b;         //灯检测输入板设置,都设为输入
  19   1          XBYTE[0XC283]=0X9b;
  20   1          XBYTE[0XC303]=0X93;         //车辆检测输入板设置
  21   1          XBYTE[0XC383]=0X93;
  22   1          XBYTE[0X6D28]=0;            //强制标志为0
  23   1          force_flag=0;
  24   1          XBYTE[0X6D29]=0;
  25   1          EA=0;
  26   1          TMOD=0X21;        /*定时器0工作在方式1,定时器1工作在方式2*/
  27   1          TH0=-(18432/256);  /*10毫秒定时  9216*/
  28   1          TL0=-(18432%256);
  29   1          TH1=0XFd;
  30   1          TL1=0XFd;
  31   1          PCON=0X00;
  32   1          SCON=0X50;         /*串行口初始化*/
  33   1      
  34   1          IE=0X96;          /*允许串口中断,外部事件1中断,定时器0中断*/
  35   1          IP=0X10;
  36   1          IT1=1;             /*下降沿触发方式  */
  37   1          TR0=1;             /*允许T0计数*/
  38   1          TR1=1;
  39   1          ET0=1;             /*T0中断开*/
  40   1          EX1=1;
  41   1          PX1=1;
  42   1          PS=1;
  43   1          ES=1;
  44   1          IP=0X10;
  45   1          user_count=0;
  46   1          for(k=0;k<512;k++){
  47   2               RX_BUF[k]=0xee;
  48   2                             }
  49   1      
  50   1      
  51   1          for(i=0;i<32;i++){
  52   2                loop_now[i]=0;
  53   2                loop_last[i]=0;             }
  54   1          for(i=0;i<41;i++){
  55   2                period_sch[i]=0;
C51 COMPILER V6.02  STRU                                                                   09/28/2006 21:46:49 PAGE 2   

  56   2                             }
  57   1          for(i=0;i<6;i++){
  58   2             XBYTE[0XA030+i*5]=0x87;            //发送寄存器
  59   2                           }
  60   1          XBYTE[0XA021]=0X00;
  61   1          XBYTE[0XA022]=0X80;
  62   1          XBYTE[0XA023]=0;
  63   1          XBYTE[0XA024]=0;
  64   1          for(i=0; i<32; i++)
  65   1          {
  66   2              loop_error[i] = 0;
  67   2              forsense[i] = 0;
  68   2              liul[i] = 0;
  69   2              send_liul[i] = 0;
  70   2             // send_occ[i]=0;
  71   2             no_vehicle_step[i]=0;
  72   2          }
  73   1         //初始化协调路口数据
  74   1         //zone_count[5][60]; //5个路口,没个路口60个备用变化,每个阶段提供60秒的变化范围
  75   1         //zone_step_time[5][60];//对应的阶段时间
  76   1         // zone_now_step_key[5][60];//对应的阶段历时
  77   1           EA=0;
  78   1          for(i=0;i<5;i++){
  79   2                 WatchDog = !WatchDog;
  80   2               for(j=0;j<60;j++){
  81   3                 zone_count[i][j]=0;
  82   3                 zone_step_time[i][j]=0;
  83   3                 zone_now_step_key[i][j]=0;
  84   3                                 }
  85   2                           }
  86   1      
  87   1      
  88   1          //start_counter = 0;
  89   1          period_update = 0;
  90   1          fuctioncounter=0;
  91   1          remote_state=0;
  92   1          hand_state=0;
  93   1          force_state=0;
  94   1          for(i=0;i<32;i++){    //mei
  95   2        	   	  for(j=0;j<70;j++){
  96   3        	   	  	  per[i][j]=0;
  97   3        	   	  	     	}
  98   2        	   	  }
  99   1          EA=1;
 100   1      
 101   1       }
 102          
 103          void updatanv()
 104           {
 105   1        unsigned int i ;
 106   1        updatanvram=0;
 107   1        EA=0;
 108   1        for(i=0;i<0x1d1d;i++){
 109   2            WatchDog = !WatchDog;
 110   2            XBYTE[0X5000+i]=XBYTE[0X8050+i];
 111   2                       }
 112   1         EA=1;
 113   1      
 114   1      }
 115          
 116          /*****************************************************************************************************/
 117          //   主函数
C51 COMPILER V6.02  STRU                                                                   09/28/2006 21:46:49 PAGE 3   

 118          /*****************************************************************************************************/
 119          void main (void)  using 1
 120          {
 121   1      
 122   1          unsigned char i,j;
 123   1          unsigned int  addr_w,addr_r,addr_day;
 124   1          unsigned char cal_flag,day;
 125   1          unsigned char day_code;
 126   1          cal_flag=0x01;
 127   1          init();
 128   1          EA=1;
 129   1          IP=0X10;
 130   1          while(1)
 131   1          {
 132   2          XBYTE[0XC083]=0X8b;         //CPU板内8255设置,绿灯电源为输出,遥控为输入
 133   2          XBYTE[0XC080]=0X81;         //输出绿灯电源
 134   2          InternalLed = !InternalLed;
 135   2          WatchDog = !WatchDog;
 136   2          if(selcal_flag==0x01)tran_psh();
 137   2      
 138   2           if((start_counter==7)&&(cal_flag==0x01)){
 139   3           last_recetimeid=timeid;
 140   3           cal_flag=0;
 141   3          //根据方案表中内容对,自学习优化结果进行重新初始化
 142   3           day = XBYTE[0XC006]; /*星期*/
 143   3           if(day>7)day=3;
 144   3           addr_w=0x3f00+(day-1)*384+(timeid-1)*16;
 145   3           addr_r=0x5e8b+(day-1)*1312+(timeid-1)*41;
 146   3           for(j=0;j<7;j++){
 147   4                addr_day=0x6ce7+6*j;
 148   4                day_code=XBYTE[addr_day];         //日计划
 149   4                addr_day=0x63a6+day_code*74;
 150   4                day_code=XBYTE[addr_day];         //日计划中对应的方案
 151   4                addr_day=0x5e8b+day_code*41;
 152   4                addr_r=addr_day;
 153   4                for(i=0;i<16;i++){
 154   5               XBYTE[addr_w+i]=XBYTE[addr_r+i];
 155   5                            }
 156   4                            }
 157   3                 }
 158   2      
 159   2             h_address=XBYTE[0X8000];
 160   2             l_address=XBYTE[0X8001];
 161   2            // EA=0;
 162   2             deal_fpgadram();
 163   2           //  deal_lcddram();
 164   2           //  EA=1;
 165   2             if(tran_count>=15){
 166   3                                bid_flag();
 167   3                                tran_count=0;
 168   3                                }
 169   2             read_time();
 170   2             if(updatanvram==1)updatanv();
 171   2      
 172   2             if(start_counter>=3)
 173   2             {
 174   3                nowforce=XBYTE[0X6D29];
 175   3                if(nowforce!=lastforce){
 176   4                       hand_counter=0;
 177   4                                }
 178   3               lastforce=nowforce;
 179   3               now_schemeid = search_scheme_yellow();
C51 COMPILER V6.02  STRU                                                                   09/28/2006 21:46:49 PAGE 4   

 180   3               cljc();                //车辆检测
 181   3               phase_loop();          //相位流量检测
 182   3               jude_looperror();
 183   3      
 184   3               if((last_schemeid!=now_schemeid)&&(last_schemeid==0x21))period_update=1;  //黄闪时段进入正常时段
 185   3               if(period_update)   //周期结束时算一次
 186   3               {
 187   4                  alt_change=1;
 188   4                  period_update = 0;

⌨️ 快捷键说明

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