📄 public.lst
字号:
2 =2 ABSACC.H
3 =2
4 =2 Direct access to 8051 memory areas.
5 =2 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #define CBYTE ((unsigned char volatile code *) 0)
10 =2 #define DBYTE ((unsigned char volatile data *) 0)
11 =2 #define PBYTE ((unsigned char volatile pdata *) 0)
12 =2 #define XBYTE ((unsigned char volatile xdata *) 0)
13 =2
14 =2 #define CWORD ((unsigned int volatile code *) 0)
15 =2 #define DWORD ((unsigned int volatile data *) 0)
16 =2 #define PWORD ((unsigned int volatile pdata *) 0)
C51 COMPILER V6.12 PUBLIC 06/01/2005 16:41:48 PAGE 5
17 =2 #define XWORD ((unsigned int volatile xdata *) 0)
3 =1 #include <intrins.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 INTRINS.H
3 =2
4 =2 Intrinsic functions for C51.
5 =2 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 extern void _nop_ (void);
10 =2 extern bit _testbit_ (bit);
11 =2 extern unsigned char _cror_ (unsigned char, unsigned char);
12 =2 extern unsigned int _iror_ (unsigned int, unsigned char);
13 =2 extern unsigned long _lror_ (unsigned long, unsigned char);
14 =2 extern unsigned char _crol_ (unsigned char, unsigned char);
15 =2 extern unsigned int _irol_ (unsigned int, unsigned char);
16 =2 extern unsigned long _lrol_ (unsigned long, unsigned char);
17 =2 extern unsigned char _chkfloat_(float);
4 =1 #include <stdio.h>
1 =2 /*--------------------------------------------------------------------------
2 =2 STDIO.H
3 =2
4 =2 Prototypes for standard I/O functions.
5 =2 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =2 All rights reserved.
7 =2 --------------------------------------------------------------------------*/
8 =2
9 =2 #ifndef EOF
10 =2 #define EOF -1
11 =2 #endif
12 =2
13 =2 #ifndef NULL
14 =2 #define NULL ((void *) 0)
15 =2 #endif
16 =2
17 =2 #ifndef _SIZE_T
18 =2 #define _SIZE_T
19 =2 typedef unsigned int size_t;
20 =2 #endif
21 =2
22 =2 #pragma SAVE
23 =2 #pragma REGPARMS
24 =2 extern char _getkey (void);
25 =2 extern char getchar (void);
26 =2 extern char ungetchar (char);
27 =2 extern char putchar (char);
28 =2 extern int printf (const char *, ...);
29 =2 extern int sprintf (char *, const char *, ...);
30 =2 extern int vprintf (const char *, char *);
31 =2 extern int vsprintf (char *, const char *, char *);
32 =2 extern char *gets (char *, int n);
33 =2 extern int scanf (const char *, ...);
34 =2 extern int sscanf (char *, const char *, ...);
35 =2 extern int puts (const char *);
36 =2
37 =2 #pragma RESTORE
5 =1
6 =1 #define EXTERN extern
7 =1 #define uchar unsigned char
8 =1 #define uint unsigned int
9 =1
C51 COMPILER V6.12 PUBLIC 06/01/2005 16:41:48 PAGE 6
10 =1 #define TIMER_FUNC_NUM 60 //功能切换间隔计数 3s
11 =1 #define TIMER_SUBFUNC_NUM 4 //子功能切换间隔计数 200ms
12 =1 #define TIMER_FILTER_NUM 2 //开入点滤波计数 100ms
13 =1 #define TIMER_SUBTOPAR_NUM 60 //"子功能切换"转为"功能切换"计数 3s
14 =1 #define TIMER_ONELINE_NUM 3 //滚动时一行的保留时间 150ms
15 =1 #define TIMER_STOP_NUM 40 //到站动作持续时间 2s
16 =1 #define TIMER_200ms 4
17 =1 #define TIMER_400ms 8
18 =1 #define TIMER_1000ms 20
19 =1
20 =1 //以前用8255
21 =1 #define PA377 XBYTE[((P2&0x60)|0x9e)*256+P0]
22 =1 #define PB377 XBYTE[((P2&0x60)|0x9d)*256+P0]
23 =1 #define PC377 XBYTE[((P2&0x60)|0x9b)*256+P0]
24 =1 #define PD377 XBYTE[((P2&0x60)|0x97)*256+P0]
25 =1
26 =1 #define FLOOR_DISP_BYTENUM 7 // 显示楼层缓冲区对应字节数
27 =1 #define DIRECT_DISP_BYTENUM 7 // 显示楼层缓冲区对应字节数
28 =1 //----------------------------------5045用----------------------------------------//
29 =1 struct data5
30 =1 {uchar cF0;//设定F0,设定控制器号(0~7), 显示(1-8)
31 =1 uchar cF1;//设定F1, 设定层楼数(0~47), 显示(1-48)
32 =1 uchar cF2;//设定F2, 设定显示方式(0~2), 显示(1-3)
33 =1 uchar cF3;//设定F3, 设定锁梯(0~1), 显示(0-1)
34 =1 uchar cF4;//设定F4, 设定消防(0~1), 显示(0-1)
35 =1 };
36 =1 #define DATA5 struct data5
37 =1
38 =1 EXTERN DATA5 data5045;
39 =1
40 =1 sbit SO=P3^4; //5045输出
41 =1 sbit SI=P3^2; //5045输入
42 =1 sbit SCK=P3^3; //5045时钟
43 =1 sbit CS=P3^5; //5045片选
44 =1
45 =1 EXTERN uchar code WREN_INST; // Write enable latch instruction (WREN)
46 =1 EXTERN uchar code WRDI_INST; // Write disable latch instruction (WRDI)
47 =1 EXTERN uchar code WRSR_INST; // Write status register instruction (WRSR)
48 =1 EXTERN uchar code RDSR_INST; // Read status register instruction (RDSR)
49 =1
50 =1 //写入25045的先导字,应当为0000A010,其中的A为写入25045的高位地址
51 =1 //将此WRITE_INST和写入高位地址相或后即为正确的写先导字
52 =1 EXTERN uchar code WRITE_INST; // Write memory instruction (WRITE)
53 =1
54 =1 //读出25045的先导字,应当为0000A011,其中的A为读出25045的高位地址
55 =1 //将此READ_INST和读出高位地址相或后即为正确的读先导字
56 =1 EXTERN uchar code READ_INST; // Read memory instruction (READ)
57 =1
58 =1 EXTERN uint code BYTE_ADDR; // Memory address for byte mode operations
59 =1 EXTERN uchar code BYTE_DATA; // Data byte for byte write operation
60 =1 EXTERN uint code PAGE_ADDR; // Memory address for page mode operations 页面写入的其始地址
61 =1 EXTERN uchar code PAGE_DATA1; // 1st data byte for page write operation
62 =1 EXTERN uchar code PAGE_DATA2; // 2nd data byte for page write operation
63 =1 EXTERN uchar code PAGE_DATA3; // 3rd data byte for page write operation
64 =1
65 =1 //这是状态寄存器的值,他的意义在于第5,第4位为WDI1,WDI0代表DOG的时间,00为1.4秒,01为600毫秒,10为200毫秒,00为d
-isabled
66 =1 //第3位和第2位为BL1,BL0,是写保护设置位,00为无保护,01为保护180-1FF,10为保护100-1FF,11为保护000-1FF.第1位为W
-EL,
67 =1 //当他为1时代表已经"写使能"设置了,现在可以写了,只读位.第0位为WIP,当他为1时代表正在进行写操作,是只读
68 =1 EXTERN uchar code STATUS_REG; // Status register,设置DOG时间设置为200毫秒,无写保护
69 =1
C51 COMPILER V6.12 PUBLIC 06/01/2005 16:41:48 PAGE 7
70 =1 EXTERN uchar code MAX_POLL; // Maximum number of polls(最大写过程时间,确定25045的最大的写入过程的时间
-)
71 =1 EXTERN uchar code INIT_STATE; // Initialization value for control ports
72 =1 EXTERN uint code SLIC; // Address location of SLIC
73 =1 EXTERN uchar m_set5045flg; // 当设置位为1时,表示前面设置过,此时要重新的写入5045中。 如果没有,则不需要
-进行这个步骤。
74 =1
75 =1 //----------------------------------can用----------------------------------//
76 =1 EXTERN uchar code cCtrlNum[8]; //控制器号的转换
77 =1 EXTERN uchar whacr0,whacr1; //sja1000代码(接收标示符)
78 =1 EXTERN uchar whid1,whid2; //sja1000代码(发送标示符)
79 =1 struct rec_data{
80 =1 uchar cCurFloor; //当前楼层数
81 =1 uchar cDirect; //当前方向(0:下 1:上 0xFF:无)
82 =1 uchar cMaxFloor; //最大楼层数
83 =1 };
84 =1 #define REC_DATA struct rec_data
85 =1 EXTERN REC_DATA m_RecData; //can接收数据
86 =1 EXTERN bdata uchar abit;
87 =1 EXTERN bit abit_0;
88 =1 EXTERN bit abit_1;
89 =1 EXTERN bit abit_2;
90 =1 EXTERN bit abit_3;
91 =1 EXTERN bit abit_4;
92 =1 EXTERN bit abit_5;
93 =1 EXTERN bit abit_6;
94 =1 EXTERN bit abit_7;
95 =1 EXTERN uchar time1_count; //上呼计数
96 =1 EXTERN uchar time2_count; //下呼计数
97 =1 EXTERN uchar time3_count; //锁梯计数
98 =1 EXTERN uchar time4_count; //消防计数
99 =1 EXTERN uchar time5_count; //消防返回计数
100 =1 EXTERN uchar time6_count; //锁梯消防有效时定时发送计数
101 =1 EXTERN uchar time7_count; //
102 =1 EXTERN bit time1_flg; //上呼计数
103 =1 EXTERN bit time2_flg; //下呼计数
104 =1 EXTERN bit time3_flg; //消防计数
105 =1 EXTERN bit time4_flg; //消防返回计数
106 =1 EXTERN bit time5_flg; //锁梯计数
107 =1 EXTERN bit time6_flg; //锁梯消防有效时定时发送标记
108 =1 EXTERN bit time7_flg; //
109 =1 EXTERN bit m_existupcallflg;//上呼存在标记
110 =1 EXTERN bit m_existdowncallflg;//下呼存在标记
111 =1 EXTERN uchar time_nocan_count;
112 =1 EXTERN bit time_nocan_flg; //
113 =1
114 =1 //----------------------------------显示用----------------------------------//
115 =1 /*struct disp_data{
116 =1 uchar cHigh; //当前楼层数
117 =1 uchar cLow; //当前方向(0:下 1:上 0xFF:无)
118 =1
119 =1 };
120 =1 #define DISP_DATA struct disp_data*/
121 =1 //EXTERN DISP_DATA m_dSrcFloor[FLOOR_DISP_BYTENUM]; //源楼层buffer
122 =1 EXTERN uchar m_cSrcFloorHigh[FLOOR_DISP_BYTENUM]; //源楼层buffer高字符
123 =1 EXTERN uchar m_cSrcFloorLow[FLOOR_DISP_BYTENUM]; //源楼层buffer低字符
124 =1 //EXTERN uchar m_cSrcDirect[DIRECT_DISP_BYTENUM]; //源方向buffer
125 =1 //EXTERN DISP_DATA m_dDispFloor[FLOOR_DISP_BYTENUM]; //显示楼层buffer
126 =1 EXTERN uchar m_cDispFloorHigh[FLOOR_DISP_BYTENUM]; //显示楼层buffer高字符
127 =1 EXTERN uchar m_cDispFloorLow[FLOOR_DISP_BYTENUM]; //显示楼层buffer低字符
128 =1 EXTERN uchar m_cDispDirect[DIRECT_DISP_BYTENUM]; //显示方向buffer
129 =1
C51 COMPILER V6.12 PUBLIC 06/01/2005 16:41:48 PAGE 8
130 =1 //EXTERN uchar code PB[][5];
131 =1 //EXTERN uchar code PDUp[5];
132 =1 //EXTERN uchar code PDDown[5];
133 =1 EXTERN uchar code PR[13][7];
134 =1 EXTERN uchar code PRDUp[7];
135 =1 EXTERN uchar code PRDDown[7];
136 =1 EXTERN uchar code PR_FIRE[7][2];
137 =1 EXTERN uchar code PR_REPAIRE[7][2];
138 =1 EXTERN uchar code PR_LOCK[7][2];
139 =1 //EXTERN uchar m_cMakeNewFlg; //新文字做标记
140 =1 EXTERN uchar m_c7_11singledoubleFlg; //0:单字 1:双字
141 =1
142 =1 //----------------------------------设置功能用----------------------------------//
143 =1 EXTERN uchar m_cFuncCnt; //F0-F4标记计数(0-4)
144 =1 EXTERN uchar m_cFuncTimer; //功能切换计数器(每2秒切换一次)
145 =1 EXTERN uchar m_cSettingFuncFlg; //功能设置标记(标志当前处于F0-F4切换阶段)
146 =1 EXTERN uchar m_cNewFuncFlg;
147 =1 // 显示为(F0:1-8 F1:1-48 F2:1-3 F3:0-1 F4:0-1)
148 =1 EXTERN uchar m_cSubFuncCnt; //各功能计数(F0:0-7 F1:0-47 F2:0-2 F3:0-1 F4:0-1)
-
149 =1 EXTERN uchar m_cSubFuncTimer; //功能切换计数器(每500毫秒切换一次)
150 =1 EXTERN uchar m_cSettingSubFuncFlg; //子功能设置标记(标志当前处于各功能的子功能设置阶段
-)
151 =1 EXTERN uchar m_cNewSubFuncFlg;
152 =1 EXTERN uchar m_cMaxSubNum;
153 =1
154 =1 EXTERN uchar m_cSubToParTimer;
155 =1 EXTERN uchar m_cSubToParLess2sFlg;
156 =1
157 =1 //滚动专用
158 =1 EXTERN uchar m_cWholeMoveOKFlg; //整组移动完成标记(出现新楼层时,进行一组滚动,滚动完成后等待下一新
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -