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

📄 remote.lst

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


C51 COMPILER V6.02, COMPILATION OF MODULE REMOTE
OBJECT MODULE PLACED IN D:\GB_ASC\REMOTE.OBJ
COMPILER INVOKED BY: e:\comp51\COMP51V6\C51.EXE D:\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          bit re_control;
  12          extern uchar xdata remote_state,force_flag,hand_state;
  13          extern bit  period_update;    /*周期更迭标志*/
  14          //bit force_flag;
  15          extern unsigned int xdata use_lamp;
  16          extern unsigned char xdata lamp_state[16];   //灯色状态
  17          extern unsigned char xdata step_num;
  18          extern uint  xdata inuse_lamp_temp;
  19          extern uint  xdata now_phase_temp;
  20          extern uint  xdata now_phase_tempn;
  21          extern uint  xdata now_lamp_temp;
  22          extern uint  xdata now_lamp;
  23          extern uint  xdata inuse_phase[32];          //阶段用到的相位
  24          extern uint  xdata inuse_phasen[32];         //下阶段用到的相位
  25          extern uint  xdata baseaddr_now_phasesch;
  26          extern uchar xdata  max_yellow,max_red_clear,max_green_flash;
  27          extern uchar now_uncount;
  28          extern void read_time();
  29          extern void search_sch();
  30          extern void cacu_dif();
  31          extern  uchar xdata step_counter;              //阶段号
  32          unsigned char data old_key;
  33          unsigned char xdata hand_step_count,hand_step,user_count;
  34          bit hand_step_flag;
  35          unsigned char xdata  hand_lase_state,hand_now_state;
  36          /*秒中断,灯色分配之前执行*/
  37          
  38          /*秒中断,灯色分配之后执行*/
  39          re_ye_allred() using 1
  40          {
  41   1        unsigned char  data kkk=0;
  42   1        unsigned int   toto;
  43   1      
  44   1        if((reph_number==10)||(XBYTE[0X6D28]==0X02)){  /*黄闪*/
  45   2                            remote_state=5;
  46   2                            for(kkk=0;kkk<16;kkk++){
  47   3                              toto = 0x0001;
  48   3                              toto = toto<<kkk;
  49   3                              if((use_lamp&toto)==toto)
  50   3                                                       lamp_state[kkk]=4;      /*使用的灯组置成黄闪先*/
  51   3                                                   else
  52   3                                                       lamp_state[kkk]=7;
  53   3                                                  }
  54   2                            }
  55   1         if((reph_number==11)||(XBYTE[0X6D28]==0X03)){  /*全红*/
C51 COMPILER V6.02  REMOTE                                                                 08/02/2006 14:44:13 PAGE 2   

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

 118   2          hand_step=1;
 119   2         if(hand_state!=2&&hand_state!=4)
 120   2         hand_state=1;
 121   2      }
 122   1      //else if(remote_other&0x01)
 123   1      //hand_step=step_counter;
 124   1      
 125   1      
 126   1       //读取遥控器控制结果,确认遥控的位置1-12
 127   1        XBYTE[0XC080]=0X81;
 128   1         for(i=0;i<8;i++){
 129   2             loop_var=0x01;
 130   2             loop_var=(loop_var<<i);
 131   2          /*   flag=loop_var%256; */
 132   2             if((remote_phase&loop_var)==0)re_phase[i]++;
 133   2                                      else re_phase[i]=0;
 134   2             if(re_phase[i]>20)re_phase[i]=20;
 135   2                         }
 136   1        for(i=0;i<4;i++){
 137   2             loop_var=0x10;
 138   2             loop_var=(loop_var<<i);
 139   2         /*    flag=loop_var%256;   */
 140   2             if((remote_other&loop_var)==0)re_other[i]++;
 141   2                                      else re_other[i]=0;
 142   2             if(re_other[i]>20)re_other[i]=20;
 143   2                         }
 144   1      
 145   1       for(i=0;i<12;i++){
 146   2         if(i<8)re_message[i]=re_phase[i];
 147   2           else re_message[i]=re_other[i-8];
 148   2                        }
 149   1      }
C51 COMPILER V6.02  REMOTE                                                                 08/02/2006 14:44:13 PAGE 4   

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


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
lamp_state . . . . . . . . . . . . . .  EXTERN   XDATA  ARRAY    -----  16
hand_step_flag . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
hand_step. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0010H  1
re_control . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0001H  1
hand_step_count. . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0011H  1
re_phase . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0012H  8
user_count . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   001AH  1
hand_now_state . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   001BH  1
use_lamp . . . . . . . . . . . . . . .  EXTERN   XDATA  U_INT    -----  2
re_other . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    001CH  4
re_first . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0020H  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
remote_number. . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0021H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    642    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     34    ----
   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 + -