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

📄 tenms.lst

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


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

stmt level    source

   1           #include <tenms.h>
   2          void judge_lamp_error() using 1
   3          {
   4   1         //  if((drive_no_lamp&last_drive_no_lamp)!=last_drive_no_lamp){
   5   1         if((drive_no_lamp^last_drive_no_lamp)!=0) {
   6   2                         if(start_counter>=3){
   7   3                              error_type=0x02;
   8   3                              save_to_error();
   9   3                                              }
  10   2                                                }
  11   1        //   if((no_drive_lamp&last_no_drive_lamp)!=last_drive_no_lamp){
  12   1         if((no_drive_lamp^last_no_drive_lamp)!=0){
  13   2                       if(start_counter>=3){
  14   3                              error_type=0x03;
  15   3                              save_to_error();
  16   3                                              }
  17   2                                                 }
  18   1           last_drive_no_lamp=drive_no_lamp;
  19   1           last_no_drive_lamp=no_drive_lamp;
  20   1      }
  21          /*****************************************************************************************************/
  22          //     定时器0中断
  23          /*****************************************************************************************************/
  24          void timer0_ms() interrupt 1 using 1
  25          {
  26   1          TH0=-(18432/256);  /*9216  10毫秒定时*/
  27   1          TL0=-(18432%256);
  28   1          WatchDog = !WatchDog;
  29   1          XBYTE[0XC083]=0X8b;         //CPU板内8255设置,绿灯电源为输出,遥控为输入
  30   1          XBYTE[0XC080]=0X81;         //输出绿灯电源
  31   1          lei++;
  32   1          if(lei>50)
  33   1          {
  34   2             lei = 0;
  35   2             FrontLed = !FrontLed;
  36   2          }      
  37   1          read_state();
  38   1          far_detect();
  39   1          lei++;
  40   1          lei--;
  41   1          IP=0X10;
  42   1      
  43   1      }
  44          /*****************************************************************************************************/
  45          //    输出灯组检测函数
  46          /*****************************************************************************************************/
  47          void  read_state(void)  using 1
  48          {
  49   1          uint    lod;
  50   1          uchar    i;
  51   1          g_load1=0;
  52   1          y_load1=0;
  53   1          r_load1=0;
  54   1          g_load2=0;
  55   1          y_load2=0;
C51 COMPILER V6.02  TENMS                                                                  09/28/2006 21:46:50 PAGE 2   

  56   1          r_load2=0;
  57   1          gl_read=XBYTE[0XC200];       //绿灯1-8 /*实际信息,来自硬件端口*/
  58   1          yl_read=XBYTE[0XC201];       //黄灯1-8
  59   1          rl_read=XBYTE[0XC202];       //红灯1-8
  60   1          gh_read=XBYTE[0XC280];       //绿灯9-16
  61   1          yh_read=XBYTE[0XC281];       //黄灯9-16
  62   1          rh_read=XBYTE[0XC282];       //红灯9-16
  63   1      
  64   1          g_read=gh_read*256+gl_read;    /*16位分别代表16个灯组的绿灯情况*/
  65   1          y_read=yh_read*256+yl_read;    /*16位分别代表16个灯组的黄灯情况*/
  66   1          r_read=rh_read*256+rl_read;    /*16位分别代表16个灯组的红灯情况*/
  67   1      
  68   1          g_out=greenh*256+greenl;       /*16位分别代表16个灯组的绿灯程序输出情况*/
  69   1          y_out=yelh*256+yell;           /*16位分别代表16个灯组的黄灯程序输出情况*/
  70   1          r_out=redh*256+redl;           /*16位分别代表16个灯组的红灯程序输出情况*/
  71   1      
  72   1      
  73   1       for(i=0;i<16;i++){
  74   2           lod=0x0001;
  75   2           lod=(lod<<i);
  76   2           if(((g_out&lod)==lod)&&((g_read&lod)!=lod))  //灯组有输出,但状态回读时该灯并没有被点亮
  77   2               {if(gtemp1[i]>=10)gtemp1[i]=10;          //故障计数
  78   3                            else gtemp1[i]++;
  79   3                }else gtemp1[i]=0;
  80   2           if(((y_out&lod)==lod)&&((y_read&lod)!=lod))
  81   2               {if(ytemp1[i]>=10)ytemp1[i]=10;
  82   3                else ytemp1[i]++;
  83   3                }else ytemp1[i]=0;
  84   2           if(((r_out&lod)==lod)&&((r_read&lod)!=lod))
  85   2               {if(rtemp1[i]>=10)rtemp1[i]=10;
  86   3                else rtemp1[i]++;
  87   3                }else rtemp1[i]=0;
  88   2           if(((g_read&lod)==lod)&&((g_out&lod)!=lod))
  89   2                {if(gtemp2[i]>=10)gtemp2[i]=10;
  90   3                else gtemp2[i]++;
  91   3                }else gtemp2[i]=0;
  92   2           if(((y_read&lod)==lod)&&((y_out&lod)!=lod))
  93   2                {if(ytemp2[i]>=10)ytemp2[i]=10;
  94   3                else ytemp2[i]++;
  95   3                }else ytemp2[i]=0;
  96   2           if(((r_read&lod)==lod)&&((r_out&lod)!=lod))
  97   2                {if(rtemp2[i]>=10)rtemp2[i]=10;
  98   3                else rtemp2[i]++;
  99   3                }else rtemp2[i]=0;
 100   2          }
 101   1          for(i=0;i<16;i++){
 102   2              if(gtemp1[i]==10)g_load1=(g_load1|(0x0001<<i));
 103   2              if(ytemp1[i]==10)y_load1=(y_load1|(0x0001<<i));
 104   2              if(rtemp1[i]==10)r_load1=(r_load1|(0x0001<<i));
 105   2              if(gtemp2[i]==10)g_load2=(g_load2|(0x0001<<i));
 106   2              if(ytemp2[i]==10)y_load2=(y_load2|(0x0001<<i));
 107   2              if(rtemp2[i]==10)r_load2=(r_load2|(0x0001<<i));
 108   2                            }
 109   1          // drive_no_lamp=g_load1|y_load1|r_load1;  //驱而不亮的灯组
 110   1          // no_drive_lamp=g_load2|y_load2|r_load2;  //不驱而亮的灯组
 111   1      
 112   1      }
 113          judge_lamp() using 1
 114          {
 115   1          drive_no_lamp=g_load1|y_load1|r_load1;  //驱而不亮的灯组
 116   1          no_drive_lamp=g_load2|y_load2|r_load2;  //不驱而亮的灯组
 117   1      
C51 COMPILER V6.02  TENMS                                                                  09/28/2006 21:46:50 PAGE 3   

 118   1      
 119   1      }
C51 COMPILER V6.02  TENMS                                                                  09/28/2006 21:46:50 PAGE 4   

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


last_no_drive_lamp . . . . . . . . . .  PUBLIC   XDATA  U_INT    0000H  2
last_drive_no_lamp . . . . . . . . . .  PUBLIC   XDATA  U_INT    0002H  2
greenl . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
save_to_error. . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
timer0_ms. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
WatchDog . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
start_counter. . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
far_detect . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
g_load1. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0004H  2
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
g_load2. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0006H  2
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
judge_lamp . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
g_out. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0008H  2
read_state . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  lod. . . . . . . . . . . . . . . . .  AUTO     XDATA  U_INT    0000H  2
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   000DH  1
FrontLed . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
redh . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
g_error1 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    000AH  2
r_load1. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    000CH  2
g_error2 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    000EH  2
r_load2. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0010H  2
redl . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
r_out. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0012H  2
judge_lamp_error . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
y_load1. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0014H  2
y_load2. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0016H  2
r_error1 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0018H  2
r_error2 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    001AH  2
y_out. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    001CH  2
yelh . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
yell . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
y_error1 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    001EH  2
y_error2 . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0020H  2
lei. . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0022H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
ing. . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0023H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
C51 COMPILER V6.02  TENMS                                                                  09/28/2006 21:46:50 PAGE 5   

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


RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
gh_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0024H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
gtemp1 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0025H  16
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
error_type . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
gl_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0035H  1
gtemp2 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0036H  16
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
rh_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0046H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
rtemp1 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0047H  16
rl_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0057H  1
rtemp2 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0058H  16
yh_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0068H  1
ytemp1 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0069H  16
yl_read. . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0079H  1
ytemp2 . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    007AH  16
g_read . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    008AH  2
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
no_drive_lamp. . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    008CH  2
drive_no_lamp. . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    008EH  2
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
r_read . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0090H  2
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
y_read . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    0092H  2
greenh . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1347    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    148       2
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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