📄 common.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 + -