📄 main.lst
字号:
140 #define addr_c_over_peak_max_count 0x0021 // C级 峰值上限超限次数(uchar)I2C存储地址
141 #define addr_c_over_peak_min_count 0x0022 // C级 峰值下限超限次数(uchar)I2C存储地址
142 #define addr_c_over_average_max_count 0x0023 // C级 均值上限超限次数(uchar)I2C存储地址
143 #define addr_c_over_average_min_count 0x0024 // C级 均值下限超限次数(uchar)I2C存储地址
144 #define addr_c_over_cv_max_count 0x0025 // C级 CV值极限超限次数(uchar)I2C存储地址
145 #define addr_c_over_max_total 0x0026 // C级 超过上限次数的总和(uchar)I2C存储地址
146 #define addr_c_over_min_total 0x0027 // C级 超过下限次数的总和(uchar)I2C存储地址
147 #define addr_c_over_time_total 0x0028 // C级 超限持续时间的总和(uchar)I2C存储地址(毫秒)
148 #define addr_c_super_max 0x0029 // C级 上上限(uchar)I2C存储地址
149 #define addr_c_cut_silk_output 0x002A // C级 判断是否输出(uchar)I2C存储地址(1-输出)
150
151 #define addr_work_sill 0x002B // 非0区(工作区)门限(uchar)I2C存储地址
152 #define addr_work_delay 0x002C // 过非0区(进入工作区)延时(uchar)I2C存储地址
153
154 sbit out_clkled = P3^3; //LED输出控制---时钟
155 sbit out_dataled = P3^4; //LED输出控制---数据
156 sbit out_ctrlled = P3^5; //LED输出控制---使能
157 sbit out_clkjdq = P0^5; //继电器输出控制---时钟
158 sbit out_datajdq = P0^3; //继电器输出控制---数据
159 sbit out_ctrljdq = P0^4; //继电器输出控制---使能
160 sbit out_bell = P2^5; //蜂鸣器控制
161 sbit out_work = P2^4; //工作指示灯控制
162 sbit in_button = P2^6; //按键输入
163 sbit out_adctrl1 = P1^3; //24路AD切换控制,前8路选择
164 sbit out_adctrl2 = P1^2; //24路AD切换控制,中8路选择
165 sbit out_adctrl3 = P1^1; //24路AD切换控制,后8路选择
166 sbit SDA = P3^7; //I2C数据线,注意双向端口在输入和输出时的设置切换
167 sbit SCL = P3^6; //I2C时钟线
168
169 sbit debug_flag = P1^0; //调试程序检测位,0 进入调试程序
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 4
170
171 //--------------------------------------------------------------------------
172 // F020全局变量定义
173 //--------------------------------------------------------------------------
174 uchar bdata bit_byte;//定义可位操作的字节
175 sbit bit_byte_7=bit_byte^7;
176 sbit bit_byte_6=bit_byte^6;
177 sbit bit_byte_5=bit_byte^5;
178 sbit bit_byte_4=bit_byte^4;
179 sbit bit_byte_3=bit_byte^3;
180 sbit bit_byte_2=bit_byte^2;
181 sbit bit_byte_1=bit_byte^1;
182 sbit bit_byte_0=bit_byte^0;
183
184 //uchar xdata year _at_ 4096;//时钟芯片操作变量
185 //uchar xdata month _at_ 4095;
186 //uchar xdata date _at_ 4094;
187 //uchar xdata week _at_ 4093;
188 //uchar xdata hour _at_ 4092;
189 //uchar xdata minute _at_ 4091;
190 //uchar xdata second _at_ 4090;
191
192 uchar weizhi;//表示在字符串匹配函数中第一个匹配字符与该串头部之间的距离
193 uchar timer0_interrupt_counter;//定时器中断次数计数器
194 uchar no_ethernet_data_timer; //无网络数据持续时间计数器
195 bit i2c_response_signal; //I2C应答信号状态
196
197 uchar xdata force_data[24][100] _at_ 600; //24路,每路100点,力值循环存储器
198
199 uchar xdata jdq_state[25] _at_ 3000; //下标从1到24,表示24路继电器的状态
200 uchar xdata led_state[25] _at_ 3025; //下标从1到24,表示24路指示灯的状态
201
202 uchar xdata uart0_buffer[30] _at_ 3050; //串口接收缓冲区
203 uchar uart0_buffer_address;//串口接收缓冲区地址计数器
204 uchar uart0_receive_start; //串口接收启动
205 bit uart0_receive_ok; //串口接收(UART0)中断里已接收完整消息标志
206
207 uchar xdata askii_data[5] _at_ 4085; //临时变量
208 bit ad_start;//AD采样开始标志,在中断里置1,主程序中清0
209 uint xdata ad_temporary_data[10] _at_ 4065;//单通道测量10点//串口接收程序也使用了该数组
210 uchar xdata circle_save_pointer _at_ 4064;//AD采样循环存储位置标志
211 bit one_second_come_flag;//整数秒标志
212
213 uchar xdata in_work_flag[24] _at_ 3080; //采样点是否在工作区中的标志
214 uchar xdata grade[24] _at_ 3104; //等级
215
216 uchar xdata previous_error_state[24] _at_ 3128;//上一次故障状态
217 uchar xdata current_error_state[24] _at_ 3152;//这一次故障状态
218
219 uchar xdata one_second_average[24] _at_ 3176;//24路AD量每秒平均值
220 uchar xdata one_second_cv[24] _at_ 3200;//24路AD量每秒CV值
221
222 uchar xdata over_peak_max_counter[24] _at_ 3224; //峰值上限超限次数
223 uchar xdata over_peak_min_counter[24] _at_ 3248; //峰值下限超限次数
224 uchar xdata over_average_max_counter[24] _at_ 3272;//均值上限超限次数
225 uchar xdata over_average_min_counter[24] _at_ 3296;//均值下限超限次数
226 uchar xdata over_cv_counter[24] _at_ 3320; //CV值极限超限次数
227 uint xdata in_work_delay_counter[24] _at_ 3344;//进入工作区后的延时计数器
228 ulong xdata over_time_total[24] _at_ 3392; //超限时间总和
229
230 uchar xdata b_cut_silk_flag _at_ 4063;
231 uchar xdata c_cut_silk_flag _at_ 4062;
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 5
232
233 float KKK;//用于AD量到力的转换
234 float CCC;//用于AD量到力的转换
235 //----------set by uart----------
236 uint xdata AD1 _at_ 4060;//标定传感器用第一点 AD采样值
237 uchar xdata Force1 _at_ 4059;//标定传感器用第一点 对传感器施加的外力值
238 uint xdata AD2 _at_ 4057;//标定传感器用第二点 AD采样值
239 uchar xdata Force2 _at_ 4056;//标定传感器用第二点 对传感器施加的外力值
240 ulong xdata my_ipaddr _at_ 4052;//0xC0A8000AL: This sets my IP address to 192.168.0.10
241 uint xdata server_assign_port _at_ 4050;//服务器分配的端口号
242 uchar xdata work_sill _at_ 4049;//非0区(工作区)门限,力
243 uchar xdata work_delay _at_ 4048;//过非0区(进入工作区)延时(默认90秒)
244
245 //----------set by ethnet----------
246 uchar xdata peak_max _at_ 4047;// 峰值上限
247 uchar xdata peak_min _at_ 4046;// 峰值下限
248 uchar xdata average_max _at_ 4045;// 均值上限
249 uchar xdata average_min _at_ 4044;// 均值下限
250 uchar xdata cv_max _at_ 4043;// CV值极限
251
252 uchar xdata b_over_peak_max_count _at_ 4042;// B级 峰值上限超限次数
253 uchar xdata b_over_peak_min_count _at_ 4041;// B级 峰值下限超限次数
254 uchar xdata b_over_average_max_count _at_ 4040;// B级 均值上限超限次数
255 uchar xdata b_over_average_min_count _at_ 4039;// B级 均值下限超限次数
256 uchar xdata b_over_cv_max_count _at_ 4038;// B级 CV值极限超限次数
257 uchar xdata b_over_max_total _at_ 4037;// B级 超过上限次数的总和
258 uchar xdata b_over_min_total _at_ 4036;// B级 超过下限次数的总和
259 uchar xdata b_over_time_total _at_ 4035;// B级 超限持续时间的总和(毫秒)
260 uchar xdata b_super_max _at_ 4034;// B级 上上限
261 uchar xdata b_cut_silk_output _at_ 4033;// B级 判断是否输出(1-输出)
262
263 uchar xdata c_over_peak_max_count _at_ 4032;// C级 峰值上限超限次数
264 uchar xdata c_over_peak_min_count _at_ 4031;// C级 峰值下限超限次数
265 uchar xdata c_over_average_max_count _at_ 4030;// C级 均值上限超限次数
266 uchar xdata c_over_average_min_count _at_ 4029;// C级 均值下限超限次数
267 uchar xdata c_over_cv_max_count _at_ 4028;// C级 CV值极限超限次数
268 uchar xdata c_over_max_total _at_ 4027;// C级 超过上限次数的总和
269 uchar xdata c_over_min_total _at_ 4026;// C级 超过下限次数的总和
270 uchar xdata c_over_time_total _at_ 4025;// C级 超限持续时间的总和(秒)
271 uchar xdata c_super_max _at_ 4024;// C级 上上限
272 uchar xdata c_cut_silk_output _at_ 4023;// C级 判断是否输出(1-输出)
273
274
275 //--------------------------------------------------------------------------
276 // f020 函数说明
277 //--------------------------------------------------------------------------
278 void init_cpu(void);
279 void init_system(void);
280 void ad_24route_switch(uchar ad_8route_select);
281 uchar ad_sampling(uchar cpu_ad_channel_select, uchar sampling_amount, uchar badpoint_amount);
282 uint ask_data(uchar cpu_ad_channel_select);
283 uchar split_askii(uint data_to_out);
284 //uchar change_bcd_to_hex(uchar shu);// 转换BCD码成十进制数
285 //uchar change_hex_to_bcd(uchar shu);// 转换十进制数成BCD码
286 //void i2c_ack(void);//I2C
287 //uchar reverse_byte_hl(uchar clock_data);//时钟数据反转
288 //void set_sd2000(void);//设置时钟
289 //void read_sd2000_ys(void);//从SD2000A读入当前时间数据,从年到秒
290 uchar change_askii_to_hex(uchar askii); // 转换ASKII码成HEX,实参范围:30-39、41-46
291 uchar change_hex_to_askii(uchar data_hex);// HEX转换成ASKII,实参范围:0-9、A-F
292 void i2c_delay(void);//I2C
293 void i2c_start(void);//I2C
C51 COMPILER V7.50 MAIN 05/30/2007 20:43:12 PAGE 6
294 void i2c_stop(void); //I2C
295 void i2c_send8bit(uchar shu);//I2C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -