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

📄 remote.lst

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


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

stmt level    source

   1            #include <absacc.h>
   2          #define   uchar  unsigned char
   3          #define   uint   unsigned int
   4          unsigned char remote_number;
   5          unsigned char remote_phase;
   6          unsigned char remote_other;
   7          unsigned char re_phase[8],re_other[4];
   8          unsigned char re_message[12];
   9          unsigned char reph_number=0;
  10          unsigned char re_first;
  11          unsigned char last_door;
  12          extern unsigned char c080;
  13          bit re_control;
  14          extern uchar xdata remote_state,force_flag,hand_state;
  15          extern bit  period_update;    /*周期更迭标志*/
  16          //bit force_flag;
  17          extern unsigned int xdata use_lamp;
  18          extern unsigned char xdata lamp_state[16];   //灯色状态
  19          extern unsigned char xdata step_num;
  20          extern uint  xdata inuse_lamp_temp;
  21          extern uint  xdata now_phase_temp;
  22          extern uint  xdata now_phase_tempn;
  23          extern uint  xdata now_lamp_temp;
  24          extern uint  xdata now_lamp;
  25          extern uint  xdata inuse_phase[32];          //阶段用到的相位
  26          extern uint  xdata inuse_phasen[32];         //下阶段用到的相位
  27          extern uint  xdata baseaddr_now_phasesch;
  28          extern uchar xdata  max_yellow,max_red_clear,max_green_flash;
  29          extern unsigned char error_type;
  30          extern uchar now_uncount;
  31          extern unsigned char xdata door,door_front,door_back;
  32          extern void read_time();
  33          extern void search_sch();
  34          extern void cacu_dif();
  35          extern void save_to_error();
  36          extern  uchar xdata step_counter;              //阶段号
  37          unsigned char data old_key;
  38          unsigned char xdata hand_step_count,hand_step,user_count;
  39          bit hand_step_flag;
  40          unsigned char xdata  hand_lase_state,hand_now_state;
  41          /*秒中断,灯色分配之前执行*/
  42          
  43          /*秒中断,灯色分配之后执行*/
  44          re_ye_allred() using 1
  45          {
  46   1        unsigned char  data kkk=0;
  47   1        unsigned int   toto;
  48   1      
  49   1        if((reph_number==10)||(XBYTE[0X6D28]==0X02)){  /*黄闪*/
  50   2                            remote_state=5;
  51   2                            for(kkk=0;kkk<16;kkk++){
  52   3                              toto = 0x0001;
  53   3                              toto = toto<<kkk;
  54   3                              if((use_lamp&toto)==toto)
  55   3                                                       lamp_state[kkk]=4;      /*使用的灯组置成黄闪先*/
C51 COMPILER V6.02  REMOTE                                                                 09/28/2006 21:46:49 PAGE 2   

  56   3                                                   else
  57   3                                                       lamp_state[kkk]=7;
  58   3                                                  }
  59   2                            }
  60   1         if((reph_number==11)||(XBYTE[0X6D28]==0X03)){  /*全红*/
  61   2                              remote_state=5;
  62   2                              for(kkk=0;kkk<16;kkk++){
  63   3                              toto = 0x0001;
  64   3                              toto = toto<<kkk;
  65   3                              if((use_lamp&toto)==toto)
  66   3                                                       lamp_state[kkk]=5;      /*使用的灯组置成红色先*/
  67   3                                                   else
  68   3                                                        lamp_state[kkk]=7;
  69   3                                         }
  70   2                            }
  71   1      
  72   1      
  73   1      }
  74          
  75          
  76          far_detect() using 1
  77          {
  78   1        unsigned char data loop_var;
  79   1        unsigned char data i;
  80   1      
  81   1        XBYTE[0XC083]=0X8B;
  82   1        remote_phase=XBYTE[0XC082];
  83   1        remote_other=XBYTE[0XC081];
  84   1        hand_lase_state=hand_now_state;
  85   1        if(remote_other&0x04)door_front++;
  86   1                       else  door_front=0;
  87   1        if(door_front>200)door_front=200;
  88   1        if(door_front==50)door=0xc0;
  89   1        
  90   1        if(remote_other&0x08)door_back++;
  91   1                       else  door_back=0;
  92   1        if(door_back>200)door_back=200;
  93   1        if(door_back==50)door=0x03;
  94   1        if(door!=last_door){  
  95   2                    error_type=0x04;
  96   2                    save_to_error(); 
  97   2                            }
  98   1        last_door=door;
  99   1        
 100   1        if(remote_other&0x01)           //手动标志
 101   1        {
 102   2          hand_step_flag=1;             //手动标志
 103   2                                        //检测到手动标志的一瞬间,获得当前手动阶段号
 104   2          if(user_count==0)hand_step=step_counter+1;
 105   2          user_count++;
 106   2          if(user_count>20)user_count=20;
 107   2          if(remote_other&0x02)hand_step_count++; //点动计数开始
 108   2                          else{
 109   3                          hand_step_count=0;
 110   3                          hand_now_state=0;
 111   3                               }
 112   2      
 113   2          if(hand_step_count>10)
 114   2                 {
 115   3                  hand_step_count=10;
 116   3                  hand_now_state=1;
 117   3                  }
C51 COMPILER V6.02  REMOTE                                                                 09/28/2006 21:46:49 PAGE 3   

 118   2         }
 119   1        else                //解除手动控制
 120   1        {
 121   2         hand_step_flag=0;  //手动标志
 122   2      
 123   2         if(hand_state==2)
 124   2                             hand_state=3;
 125   2      /*    if(hand_state==5)
 126   2                              {
 127   2                               period_update = 1;
 128   2                               step_counter=1;
 129   2                               hand_state=0;
 130   2                               }
 131   2                                    */
 132   2         }
 133   1      
 134   1      if(hand_lase_state==1&&hand_now_state==0)
 135   1      {
 136   2          hand_step++;
 137   2          if(hand_step>step_num)
 138   2          hand_step=1;
 139   2         if(hand_state!=2&&hand_state!=4)
 140   2         hand_state=1;
 141   2      }
 142   1      //else if(remote_other&0x01)
 143   1      //hand_step=step_counter;
 144   1      
 145   1      
 146   1       //读取遥控器控制结果,确认遥控的位置1-12
 147   1        XBYTE[0XC080]=c080;
 148   1         for(i=0;i<8;i++){
 149   2             loop_var=0x01;
 150   2             loop_var=(loop_var<<i);
 151   2          /*   flag=loop_var%256; */
 152   2             if((remote_phase&loop_var)==0)re_phase[i]++;
 153   2                                      else re_phase[i]=0;
 154   2             if(re_phase[i]>20)re_phase[i]=20;
 155   2                         }
 156   1        for(i=0;i<4;i++){
 157   2             loop_var=0x10;
 158   2             loop_var=(loop_var<<i);
 159   2         /*    flag=loop_var%256;   */
 160   2             if((remote_other&loop_var)==0)re_other[i]++;
 161   2                                      else re_other[i]=0;
 162   2             if(re_other[i]>20)re_other[i]=20;
 163   2                         }
 164   1      
 165   1       for(i=0;i<12;i++){
 166   2         if(i<8)re_message[i]=re_phase[i];
 167   2           else re_message[i]=re_other[i-8];
 168   2                        }
 169   1      }
C51 COMPILER V6.02  REMOTE                                                                 09/28/2006 21:46:49 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


save_to_error. . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
remote_phase . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0000H  1
remote_state . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
remote_other . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0001H  1
far_detect . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  loop_var . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
reph_number. . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0002H  1
hand_state . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
re_message . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0003H  12
step_counter . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
hand_lase_state. . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   000FH  1
door_back. . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
lamp_state . . . . . . . . . . . . . .  EXTERN   XDATA  ARRAY    -----  16
door . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
hand_step_flag . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
hand_step. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0010H  1
re_control . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0001H  1
door_front . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
hand_step_count. . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0011H  1
re_phase . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0012H  8
last_door. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   001AH  1
user_count . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   001BH  1
error_type . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
hand_now_state . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   001CH  1
use_lamp . . . . . . . . . . . . . . .  EXTERN   XDATA  U_INT    -----  2
re_other . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    001DH  4
re_first . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0021H  1
old_key. . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
re_ye_allred . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  kkk. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  toto . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    000CH  2
step_num . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
c080 . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
remote_number. . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0022H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    761    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     35    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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