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

📄 display.lst

📁 一整套电梯控制器源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1      =3  /*--------------------------------------------------------------------------
   2      =3  ABSACC.H
   3      =3  
   4      =3  Direct access to 8051 memory areas.
   5      =3  Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
   6      =3  All rights reserved.
   7      =3  --------------------------------------------------------------------------*/
   8      =3  
   9      =3  #define CBYTE ((unsigned char volatile code  *) 0)
  10      =3  #define DBYTE ((unsigned char volatile data  *) 0)
  11      =3  #define PBYTE ((unsigned char volatile pdata *) 0)
  12      =3  #define XBYTE ((unsigned char volatile xdata *) 0)
  13      =3  
  14      =3  #define CWORD ((unsigned int volatile code  *) 0)
  15      =3  #define DWORD ((unsigned int volatile data  *) 0)
C51 COMPILER V6.12  DISPLAY                                                                06/01/2005 16:41:48 PAGE 5   

  16      =3  #define PWORD ((unsigned int volatile pdata *) 0)
  17      =3  #define XWORD ((unsigned int volatile xdata *) 0)
   3      =2  #include <intrins.h>
   1      =3  /*--------------------------------------------------------------------------
   2      =3  INTRINS.H
   3      =3  
   4      =3  Intrinsic functions for C51.
   5      =3  Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
   6      =3  All rights reserved.
   7      =3  --------------------------------------------------------------------------*/
   8      =3  
   9      =3  extern void          _nop_     (void);
  10      =3  extern bit           _testbit_ (bit);
  11      =3  extern unsigned char _cror_    (unsigned char, unsigned char);
  12      =3  extern unsigned int  _iror_    (unsigned int,  unsigned char);
  13      =3  extern unsigned long _lror_    (unsigned long, unsigned char);
  14      =3  extern unsigned char _crol_    (unsigned char, unsigned char);
  15      =3  extern unsigned int  _irol_    (unsigned int,  unsigned char);
  16      =3  extern unsigned long _lrol_    (unsigned long, unsigned char);
  17      =3  extern unsigned char _chkfloat_(float);
   4      =2  #include <stdio.h>
   1      =3  /*--------------------------------------------------------------------------
   2      =3  STDIO.H
   3      =3  
   4      =3  Prototypes for standard I/O functions.
   5      =3  Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
   6      =3  All rights reserved.
   7      =3  --------------------------------------------------------------------------*/
   8      =3  
   9      =3  #ifndef EOF
  10      =3   #define EOF -1
  11      =3  #endif
  12      =3  
  13      =3  #ifndef NULL
  14      =3   #define NULL ((void *) 0)
  15      =3  #endif
  16      =3  
  17      =3  #ifndef _SIZE_T
  18      =3   #define _SIZE_T
  19      =3   typedef unsigned int size_t;
  20      =3  #endif
  21      =3  
  22      =3  #pragma SAVE
  23      =3  #pragma REGPARMS
  24      =3  extern char _getkey (void);
  25      =3  extern char getchar (void);
  26      =3  extern char ungetchar (char);
  27      =3  extern char putchar (char);
  28      =3  extern int printf   (const char *, ...);
  29      =3  extern int sprintf  (char *, const char *, ...);
  30      =3  extern int vprintf  (const char *, char *);
  31      =3  extern int vsprintf (char *, const char *, char *);
  32      =3  extern char *gets (char *, int n);
  33      =3  extern int scanf (const char *, ...);
  34      =3  extern int sscanf (char *, const char *, ...);
  35      =3  extern int puts (const char *);
  36      =3  
  37      =3  #pragma RESTORE
   5      =2  
   6      =2  #define EXTERN extern
   7      =2  #define uchar unsigned char
   8      =2  #define uint unsigned int
C51 COMPILER V6.12  DISPLAY                                                                06/01/2005 16:41:48 PAGE 6   

   9      =2  
  10      =2  #define TIMER_FUNC_NUM          60      //功能切换间隔计数  3s
  11      =2  #define TIMER_SUBFUNC_NUM       4       //子功能切换间隔计数 200ms
  12      =2  #define TIMER_FILTER_NUM        2       //开入点滤波计数    100ms
  13      =2  #define TIMER_SUBTOPAR_NUM      60      //"子功能切换"转为"功能切换"计数  3s
  14      =2  #define TIMER_ONELINE_NUM		3		//滚动时一行的保留时间		      150ms
  15      =2  #define TIMER_STOP_NUM          40      //到站动作持续时间                2s
  16      =2  #define TIMER_200ms				4
  17      =2  #define TIMER_400ms             8
  18      =2  #define TIMER_1000ms            20
  19      =2  
  20      =2  //以前用8255
  21      =2  #define PA377  XBYTE[((P2&0x60)|0x9e)*256+P0]
  22      =2  #define PB377  XBYTE[((P2&0x60)|0x9d)*256+P0]
  23      =2  #define PC377  XBYTE[((P2&0x60)|0x9b)*256+P0]
  24      =2  #define PD377  XBYTE[((P2&0x60)|0x97)*256+P0]
  25      =2  
  26      =2  #define FLOOR_DISP_BYTENUM  7  // 显示楼层缓冲区对应字节数
  27      =2  #define DIRECT_DISP_BYTENUM  7  // 显示楼层缓冲区对应字节数
  28      =2  //----------------------------------5045用----------------------------------------//
  29      =2  struct data5
  30      =2  {uchar cF0;//设定F0,设定控制器号(0~7), 显示(1-8)
  31      =2   uchar cF1;//设定F1, 设定层楼数(0~47),  显示(1-48)
  32      =2   uchar cF2;//设定F2, 设定显示方式(0~2), 显示(1-3)
  33      =2   uchar cF3;//设定F3, 设定锁梯(0~1), 显示(0-1)
  34      =2   uchar cF4;//设定F4, 设定消防(0~1), 显示(0-1)
  35      =2  };
  36      =2  #define DATA5 struct data5 
  37      =2  
  38      =2  EXTERN DATA5 data5045;
  39      =2  
  40      =2  sbit SO=P3^4;   //5045输出
  41      =2  sbit SI=P3^2;   //5045输入
  42      =2  sbit SCK=P3^3;  //5045时钟
  43      =2  sbit CS=P3^5;   //5045片选
  44      =2  
  45      =2  EXTERN uchar code WREN_INST;     // Write enable latch instruction (WREN)
  46      =2  EXTERN uchar code WRDI_INST;     // Write disable latch instruction (WRDI)
  47      =2  EXTERN uchar code WRSR_INST;     // Write status register instruction (WRSR)
  48      =2  EXTERN uchar code RDSR_INST;     // Read status register instruction (RDSR)
  49      =2  
  50      =2  //写入25045的先导字,应当为0000A010,其中的A为写入25045的高位地址
  51      =2  //将此WRITE_INST和写入高位地址相或后即为正确的写先导字
  52      =2  EXTERN uchar code WRITE_INST;    // Write memory instruction (WRITE)
  53      =2  
  54      =2  //读出25045的先导字,应当为0000A011,其中的A为读出25045的高位地址
  55      =2  //将此READ_INST和读出高位地址相或后即为正确的读先导字
  56      =2  EXTERN uchar code READ_INST;     // Read memory instruction (READ)
  57      =2  
  58      =2  EXTERN uint code BYTE_ADDR;      // Memory address for byte mode operations
  59      =2  EXTERN uchar code BYTE_DATA;     // Data byte for byte write operation
  60      =2  EXTERN uint  code PAGE_ADDR;     // Memory address for page mode operations 页面写入的其始地址
  61      =2  EXTERN uchar code PAGE_DATA1;    // 1st data byte for page write operation
  62      =2  EXTERN uchar code PAGE_DATA2;    // 2nd data byte for page write operation
  63      =2  EXTERN uchar code PAGE_DATA3;    // 3rd data byte for page write operation
  64      =2  
  65      =2  //这是状态寄存器的值,他的意义在于第5,第4位为WDI1,WDI0代表DOG的时间,00为1.4秒,01为600毫秒,10为200毫秒,00为d
             -isabled
  66      =2  //第3位和第2位为BL1,BL0,是写保护设置位,00为无保护,01为保护180-1FF,10为保护100-1FF,11为保护000-1FF.第1位为W
             -EL,
  67      =2  //当他为1时代表已经"写使能"设置了,现在可以写了,只读位.第0位为WIP,当他为1时代表正在进行写操作,是只读
  68      =2  EXTERN uchar code STATUS_REG;    // Status register,设置DOG时间设置为200毫秒,无写保护
C51 COMPILER V6.12  DISPLAY                                                                06/01/2005 16:41:48 PAGE 7   

  69      =2  
  70      =2  EXTERN uchar code  MAX_POLL;     // Maximum number of polls(最大写过程时间,确定25045的最大的写入过程的时间
             -)
  71      =2  EXTERN uchar code INIT_STATE;    // Initialization value for control ports
  72      =2  EXTERN uint code SLIC;           // Address location of SLIC
  73      =2  EXTERN uchar m_set5045flg;		 // 当设置位为1时,表示前面设置过,此时要重新的写入5045中。 如果没有,则不需要
             -进行这个步骤。 
  74      =2  
  75      =2  //----------------------------------can用----------------------------------//
  76      =2  EXTERN uchar  code cCtrlNum[8];      //控制器号的转换
  77      =2  EXTERN uchar  whacr0,whacr1;    //sja1000代码(接收标示符)
  78      =2  EXTERN uchar  whid1,whid2;      //sja1000代码(发送标示符)    
  79      =2  struct rec_data{
  80      =2  uchar  cCurFloor;               //当前楼层数
  81      =2  uchar  cDirect;                 //当前方向(0:下   1:上  0xFF:无)
  82      =2  uchar  cMaxFloor;               //最大楼层数
  83      =2  };
  84      =2  #define REC_DATA struct rec_data 
  85      =2  EXTERN REC_DATA m_RecData;      //can接收数据
  86      =2  EXTERN bdata uchar abit;
  87      =2  EXTERN bit abit_0;
  88      =2  EXTERN bit abit_1;
  89      =2  EXTERN bit abit_2;
  90      =2  EXTERN bit abit_3;
  91      =2  EXTERN bit abit_4;
  92      =2  EXTERN bit abit_5;
  93      =2  EXTERN bit abit_6;
  94      =2  EXTERN bit abit_7;
  95      =2  EXTERN uchar time1_count;     //上呼计数
  96      =2  EXTERN uchar time2_count;     //下呼计数
  97      =2  EXTERN uchar time3_count;     //锁梯计数
  98      =2  EXTERN uchar time4_count;     //消防计数
  99      =2  EXTERN uchar time5_count;     //消防返回计数
 100      =2  EXTERN uchar time6_count;	  //锁梯消防有效时定时发送计数
 101      =2  EXTERN uchar time7_count;     //
 102      =2  EXTERN bit time1_flg;       //上呼计数
 103      =2  EXTERN bit time2_flg;       //下呼计数
 104      =2  EXTERN bit time3_flg;       //消防计数
 105      =2  EXTERN bit time4_flg;       //消防返回计数
 106      =2  EXTERN bit time5_flg;       //锁梯计数
 107      =2  EXTERN bit time6_flg;	      //锁梯消防有效时定时发送标记
 108      =2  EXTERN bit time7_flg;       //
 109      =2  EXTERN bit m_existupcallflg;//上呼存在标记
 110      =2  EXTERN bit m_existdowncallflg;//下呼存在标记
 111      =2  EXTERN uchar time_nocan_count;
 112      =2  EXTERN bit time_nocan_flg;	   //
 113      =2  
 114      =2  //----------------------------------显示用----------------------------------//
 115      =2  /*struct disp_data{
 116      =2  uchar  cHigh;               //当前楼层数
 117      =2  uchar  cLow;                //当前方向(0:下   1:上  0xFF:无)
 118      =2                
 119      =2  };
 120      =2  #define DISP_DATA struct disp_data*/
 121      =2  //EXTERN DISP_DATA   m_dSrcFloor[FLOOR_DISP_BYTENUM];         //源楼层buffer
 122      =2  EXTERN uchar			m_cSrcFloorHigh[FLOOR_DISP_BYTENUM];	 	//源楼层buffer高字符
 123      =2  EXTERN uchar			m_cSrcFloorLow[FLOOR_DISP_BYTENUM];	 		//源楼层buffer低字符
 124      =2  //EXTERN uchar       m_cSrcDirect[DIRECT_DISP_BYTENUM];       //源方向buffer
 125      =2  //EXTERN DISP_DATA   m_dDispFloor[FLOOR_DISP_BYTENUM];        //显示楼层buffer
 126      =2  EXTERN uchar			m_cDispFloorHigh[FLOOR_DISP_BYTENUM];	 	//显示楼层buffer高字符
 127      =2  EXTERN uchar			m_cDispFloorLow[FLOOR_DISP_BYTENUM];	 	//显示楼层buffer低字符
 128      =2  EXTERN uchar       m_cDispDirect[DIRECT_DISP_BYTENUM];      //显示方向buffer
C51 COMPILER V6.12  DISPLAY                                                                06/01/2005 16:41:48 PAGE 8   

 129      =2  
 130      =2  //EXTERN uchar code PB[][5];
 131      =2  //EXTERN uchar code PDUp[5];
 132      =2  //EXTERN uchar code PDDown[5];
 133      =2  EXTERN uchar code PR[13][7];
 134      =2  EXTERN uchar code PRDUp[7];
 135      =2  EXTERN uchar code PRDDown[7];
 136      =2  EXTERN uchar code PR_FIRE[7][2];
 137      =2  EXTERN uchar code PR_REPAIRE[7][2];
 138      =2  EXTERN uchar code PR_LOCK[7][2];
 139      =2  //EXTERN uchar  m_cMakeNewFlg;                           //新文字做标记
 140      =2  EXTERN uchar  m_c7_11singledoubleFlg;                  //0:单字 1:双字
 141      =2  
 142      =2  //----------------------------------设置功能用----------------------------------//
 143      =2  EXTERN uchar  m_cFuncCnt;                              //F0-F4标记计数(0-4)
 144      =2  EXTERN uchar  m_cFuncTimer;                            //功能切换计数器(每2秒切换一次)
 145      =2  EXTERN uchar  m_cSettingFuncFlg;                       //功能设置标记(标志当前处于F0-F4切换阶段)
 146      =2  EXTERN uchar  m_cNewFuncFlg;
 147      =2                                                         //    显示为(F0:1-8 F1:1-48 F2:1-3 F3:0-1 F4:0-1)
 148      =2  EXTERN uchar  m_cSubFuncCnt;                           //各功能计数(F0:0-7 F1:0-47 F2:0-2 F3:0-1 F4:0-1)  
             -                                                     
 149      =2  EXTERN uchar  m_cSubFuncTimer;                         //功能切换计数器(每500毫秒切换一次)
 150      =2  EXTERN uchar  m_cSettingSubFuncFlg;                    //子功能设置标记(标志当前处于各功能的子功能设置阶段
             -)
 151      =2  EXTERN uchar  m_cNewSubFuncFlg;
 152      =2  EXTERN uchar  m_cMaxSubNum;
 153      =2  
 154      =2  EXTERN uchar  m_cSubToParTimer;
 155      =2  EXTERN uchar  m_cSubToParLess2sFlg;
 156      =2  
 157      =2  //滚动专用
 158      =2  EXTERN uchar  m_cWholeMoveOKFlg;					   //整组移动完成标记(出现新楼层时,进行一组滚动,滚动完成后等待下一新

⌨️ 快捷键说明

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