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

📄 common.lst

📁 一整套电梯控制器源程序
💻 LST
字号:
C51 COMPILER V6.12  COMMON                                                                 05/25/2005 14:58:14 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE COMMON
OBJECT MODULE PLACED IN .\common.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\common.h DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89X52.H>
   2          #include <absacc.h>
   3          #include <intrins.h>
   4          #include <stdio.h>
   5          
   6          #define EXTERN extern
   7          #define uchar unsigned char
   8          #define uint  unsigned int
   9          #define schar signed char
  10          
  11          #define TIMER_FUNC_NUM          60      //功能切换间隔计数   3s
  12          #define TIMER_SUBFUNC_NUM       4       //子功能切换间隔计数 200ms
  13          #define TIMER_FILTER_NUM        2       //开入点滤波计数     100ms
  14          #define TIMER_SUBTOPAR_NUM      60      //"子功能切换"转为"功能切换"计数 3s
  15          #define TIMER_ONELINE_NUM		1		//滚动时一行的保留时间			 100ms
  16          #define TIMER_NOCANDATA_NUM     4       //无CAN数据计数                  200ms
  17          #define TIMER_REPORT_NUM        80      //报站持续时间                   4s
  18          #define FUNC_NUM                7       //功能数
  19          
  20          
  21          #define PA377  XBYTE[((P2&0x60)|0x9e)*256+P2]
  22          #define PB377  XBYTE[((P2&0x60)|0x9d)*256+P2]
  23          #define PC377  XBYTE[((P2&0x60)|0x9b)*256+P2]
  24          #define PD377  XBYTE[((P2&0x60)|0x97)*256+P2]
  25          #define PE377  XBYTE[((P2&0x40)|0x9F)*256+P2]
  26          #define PF377  XBYTE[((P2&0x20)|0x9F)*256+P2]
  27          
  28          #define FLOOR_DISP_BYTENUM   15  // 显示楼层缓冲区对应字节数
  29          #define DIRECT_DISP_BYTENUM  15  // 显示方向缓冲区对应字节数
  30          
  31          //----------------------------------显示用----------------------------------//
  32          EXTERN uchar       m_cSrcDirect;       //方向行缓冲区
  33          EXTERN uchar       m_cAsciiHigh;       //显示楼层的高字符
  34          EXTERN uchar       m_cAsciiLow;        //显示楼层的低字符
  35          EXTERN uchar       m_cSrcFloorHigh;    //楼层高字符行缓冲区
  36          EXTERN uchar       m_cSrcFloorLow;     //楼层低字符行缓冲区
  37          EXTERN uchar       m_cLineIdx;         //行索引(自上而下0-14)
  38          EXTERN uchar       m_c15_16singledoubleFlg;//0:单字 1:双字
  39          
  40          EXTERN uchar code PR[13][16];
  41          EXTERN uchar code PRDUp[16];
  42          EXTERN uchar code PRDDown[16];
  43          EXTERN uchar code PR_FIRE[15][2];
  44          EXTERN uchar code PR_REPAIRE[15][2];
  45          EXTERN uchar code PR_LOCK[15][2];
  46          EXTERN uchar code PR_OVERLOAD[15][3];
  47          //----------------------------------5045用----------------------------------------//
  48          struct data5
  49          {uchar cF0;//设定F0,设定控制器号(0~7), 显示(1-8)
  50           uchar cF1;//设定F1, 设定层楼数(0~47), 显示(1-48)
  51           uchar cF2;//设定F2, 设定显示方式(0~2), 显示(1-3)
  52           uchar cF3;//设定F3, 设定显示方式(0~1), 显示(0-1)
  53           uchar cF4;//设定F4, 设定显示方式(0~1), 显示(0-1)
  54           uchar cF5;//设定F5, 设定距地楼层数(-8~47), 显示(-8-47),报站专用
  55           uchar cF6;//设定F6, 设定始终居中显示(0~1),显示(0-1),1并非始终居中,0始终居中
C51 COMPILER V6.12  COMMON                                                                 05/25/2005 14:58:14 PAGE 2   

  56           uchar cF7;//设定F7, 设定语音报站输出高有效/低有效(0~1),显示(0~1)
  57          };
  58          #define DATA5 struct data5 
  59          
  60          EXTERN DATA5 data5045;
  61          
  62          sbit SO=P3^4;   //5045输出
  63          sbit SI=P3^2;   //5045输入
  64          sbit SCK=P3^3;  //5045时钟
  65          sbit CS=P3^5;   //5045片选
  66          
  67          EXTERN uchar code WREN_INST;     // Write enable latch instruction (WREN)
  68          EXTERN uchar code WRDI_INST;     // Write disable latch instruction (WRDI)
  69          EXTERN uchar code WRSR_INST;     // Write status register instruction (WRSR)
  70          EXTERN uchar code RDSR_INST;     // Read status register instruction (RDSR)
  71          
  72          //写入25045的先导字,应当为0000A010,其中的A为写入25045的高位地址
  73          //将此WRITE_INST和写入高位地址相或后即为正确的写先导字
  74          EXTERN uchar code WRITE_INST;    // Write memory instruction (WRITE)
  75          
  76          //读出25045的先导字,应当为0000A011,其中的A为读出25045的高位地址
  77          //将此READ_INST和读出高位地址相或后即为正确的读先导字
  78          EXTERN uchar code READ_INST;     // Read memory instruction (READ)
  79          
  80          EXTERN uint code BYTE_ADDR;      // Memory address for byte mode operations
  81          EXTERN uchar code BYTE_DATA;     // Data byte for byte write operation
  82          EXTERN uint  code PAGE_ADDR;     // Memory address for page mode operations 页面写入的其始地址
  83          EXTERN uchar code PAGE_DATA1;    // 1st data byte for page write operation
  84          EXTERN uchar code PAGE_DATA2;    // 2nd data byte for page write operation
  85          EXTERN uchar code PAGE_DATA3;    // 3rd data byte for page write operation
  86          
  87          //这是状态寄存器的值,他的意义在于第5,第4位为WDI1,WDI0代表DOG的时间,00为1.4秒,01为600毫秒,10为200毫秒,00为d
             -isabled
  88          //第3位和第2位为BL1,BL0,是写保护设置位,00为无保护,01为保护180-1FF,10为保护100-1FF,11为保护000-1FF.第1位为W
             -EL,
  89          //当他为1时代表已经"写使能"设置了,现在可以写了,只读位.第0位为WIP,当他为1时代表正在进行写操作,是只读
  90          EXTERN uchar code STATUS_REG;    // Status register,设置DOG时间设置为200毫秒,无写保护
  91          
  92          EXTERN uchar code  MAX_POLL;     // Maximum number of polls(最大写过程时间,确定25045的最大的写入过程的时间
             -)
  93          EXTERN uchar code INIT_STATE;    // Initialization value for control ports
  94          EXTERN uint code SLIC;           // Address location of SLIC
  95          EXTERN uchar m_set5045flg;		 // 当设置位为1时,表示前面设置过,此时要重新的写入5045中。 如果没有,则不需要
             -进行这个步骤。 
  96          
  97          //----------------------------------can用----------------------------------//
  98          EXTERN uchar  cCtrlNum[8];      //控制器号的转换
  99          EXTERN uchar  whacr0,whacr1;    //sja1000代码(接收标示符)
 100          EXTERN uchar  whid1,whid2;      //sja1000代码(发送标示符)    
 101          struct rec_data{
 102          uchar  cCurFloor;               //当前楼层数
 103          uchar  cDirect;                 //当前方向(0:下   1:上  0xFF:无)
 104          uchar  cMaxFloor;               //最大楼层数
 105          };
 106          #define REC_DATA struct rec_data 
 107          EXTERN REC_DATA m_RecData;      //can接收数据
 108          EXTERN bdata uchar abit;
 109          EXTERN bit abit_0;
 110          EXTERN bit abit_1;
 111          EXTERN bit abit_2;
 112          EXTERN bit abit_3;
 113          EXTERN bit abit_4;
C51 COMPILER V6.12  COMMON                                                                 05/25/2005 14:58:14 PAGE 3   

 114          EXTERN bit abit_5;
 115          EXTERN bit abit_6;
 116          EXTERN bit abit_7;
 117          /*
 118          EXTERN uchar time1_count;     //上呼计数
 119          EXTERN uchar time2_count;     //下呼计数
 120          EXTERN uchar time3_count;     //锁梯计数
 121          EXTERN uchar time4_count;     //消防计数
 122          EXTERN uchar time5_count;     //消防返回计数
 123          EXTERN uchar time1_flg;       //上呼计数
 124          EXTERN uchar time2_flg;       //下呼计数
 125          EXTERN uchar time3_flg;       //锁梯计数
 126          EXTERN uchar time4_flg;       //消防计数
 127          EXTERN uchar time5_flg;       //消防返回计数
 128          EXTERN uchar m_existupcallflg;//上呼存在标记
 129          EXTERN uchar m_existdowncallflg;//下呼存在标记
 130          */
 131          EXTERN uchar time_nocan_count;       //无CAN数据计数(若200ms没有CAN数据则认为应该复位CAN)
 132          EXTERN uchar time_nocan_flg;         //无CAN数据标志
 133          EXTERN uchar time_nocan200ms_flg;    //无CAN数据计时到标志
 134          
 135          EXTERN uchar time_report_count;      //报站计数
 136          EXTERN uchar time_report_flg;        //报站标志
 137          EXTERN uchar time_report2s_flg;      //报站计时到标志
 138          EXTERN uchar m_cReportIdx;           //报站索引
 139          //----------------------------------设置功能用----------------------------------//
 140          EXTERN uchar  m_cFuncCnt;                              //F0-F5标记计数(0-5)
 141          EXTERN uchar  m_cFuncTimer;                            //功能切换计数器(每2秒切换一次)
 142          EXTERN uchar  m_cSettingFuncFlg;                       //功能设置标记(标志当前处于F0-F4切换阶段)
 143          EXTERN uchar  m_cNewFuncFlg;
 144                                                                 //    显示为(F0:1-8 F1:1-48 F2:1-3 F3:0-1 F4:0-1)
 145          EXTERN uchar  m_cSubFuncCnt;                           //各功能计数(F0:0-7 F1:0-47 F2:0-2 F3:0-1 F4:0-1)  
             -                                                     
 146          EXTERN uchar  m_cSubFuncTimer;                         //功能切换计数器(每500毫秒切换一次)
 147          EXTERN uchar  m_cSettingSubFuncFlg;                    //子功能设置标记(标志当前处于各功能的子功能设置阶段
             -)
 148          EXTERN uchar  m_cNewSubFuncFlg;
 149          EXTERN uchar  m_cMaxSubNum;
 150          
 151          EXTERN uchar  m_cSubToParTimer;                        
 152          EXTERN uchar  m_cSubToParLess2sFlg;
 153          
 154          //滚动专用
 155          EXTERN uchar  m_cWholeMoveOKFlg;					   //整组移动完成标记(出现新楼层时,进行一组滚动,滚动完成后等待下一新

⌨️ 快捷键说明

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