📄 init.lst
字号:
200 * 函 数 名: void level_conditions_init(void)
201 * 功能描述: 水位门限初始化
202 * 函数说明:
203 * 调用函数: 无
204 * 全局变量:无
205 * 输 入: 无
206 * 返 回: 无
207 * 设 计 者:
208 ***********************************************************************/
209 void level_conditions_init(void)
210 {
211 1 unsigned char i,j;
212 1 unsigned char xdata cd_config[11][10],new_cd[11][10];
213 1
214 1 for(i=0;i<11;i++)
215 1 for(j=0;j<10;j++)
216 1 {
217 2 new_cd[i][j]=0x00;
218 2 }
219 1
220 1 R_block(WPAGE2,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);
221 1 if(cd_config[0][0]==0xff)
222 1 {
223 2 R_block(WPAGE3,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);
224 2 if(cd_config[0][0]==0xff)
225 2 {
226 3 W_block(WPAGE3,i2c_addr_lvct,&new_cd[0][0],110);
227 3 }
228 2
229 2 new_cd[0][0]|=0x80;
230 2 W_block(WPAGE2,i2c_addr_lvct,&new_cd[0][0],110);
231 2
232 2 for(i=0;i<11;i++)
233 2 for(j=0;j<10;j++)
234 2 {
235 3 cd_config[i][j]=new_cd[i][j];
236 3 }
237 2 }
238 1
239 1 if((cd_config[0][0]&0x80)!=0x80)
240 1 {
241 2 R_block(WPAGE3,RPAGE3,i2c_addr_lvct,&cd_config[0][0],110);
C51 COMPILER V7.50 INIT 10/08/2006 08:51:40 PAGE 5
242 2 }
243 1 cd_config[0][0]&=0x7f;
244 1 for(i=0;i<11;i++)
245 1 {
246 2 level_cd[i].cd_time=CHAR_TO_LONG(&cd_config[i][0],4);
247 2 level_cd[i].cd_data=CHAR_TO_LONG(&cd_config[i][4],6);
248 2 }
249 1 }
250
251
252 /*********************************************************************
253 * 函 数 名: void rainfall_5min_init(void)
254 * 功能描述: 初始化读取每5分钟的雨量
255 * 函数说明:
256 * 调用函数: 无
257 * 全局变量:无
258 * 输 入: 无
259 * 返 回: 无
260 * 设 计 者:
261 ***********************************************************************/
262 void rainfall_5min_init(void)
263 {
264 1 unsigned char i,j;
265 1
266 1 R_block(WPAGE4,RPAGE4,i2c_addr_rainfall,&RainFall_5Min[0][0],rf_dlen*2);
267 1 if((RainFall_5Min[0][0]==0xff)||(RainFall_5Min[0][1]==0xff))
268 1 {
269 2 for(i=0;i<rf_dlen;i++)
270 2 for(j=0;j<2;j++)
271 2 RainFall_5Min[i][j]=0;
272 2 W_block(WPAGE4,i2c_addr_rainfall,&RainFall_5Min[0][0],rf_dlen*2);
273 2 }
274 1 }
275
276 /*********************************************************************
277 * 函 数 名: void Rd_i2c_init(void)
278 * 功能描述: 读I2C初始化数据
279 * 函数说明:
280 * 调用函数: 无
281 * 全局变量:无
282 * 输 入: 无
283 * 返 回: 无
284 * 设 计 者:
285 ***********************************************************************/
286 void Rd_i2c_init(void)
287 {
288 1 mult_rainfall_init();
289 1 basiclevel_init();
290 1 rainfall_config_init();
291 1 waterlevel_config_init();
292 1 rain_conditions_init();
293 1 level_conditions_init();
294 1 rainfall_5min_init();
295 1 }
296
297
298 /*********************************************************************
299 * 函 数 名: init
300 * 功能描述: 初始化
301 * 函数说明:
302 * 调用函数: 无
303 * 全局变量:无
C51 COMPILER V7.50 INIT 10/08/2006 08:51:40 PAGE 6
304 * 输 入: 无
305 * 返 回: 无
306 * 设 计 者:
307 ***********************************************************************/
308 void init(void)
309 {
310 1 unsigned char i,j;
311 1
312 1 for(i=0;i<5;i++)
313 1 Scan_WaterLevel[i]=0; //水位初始化
314 1
315 1 rfcd_1min=0;
316 1 for(j=0;j<11;j++)
317 1 {
318 2 rfcd_time[j]=0; //雨量门限定时
319 2 }
320 1 save_time=0;
321 1
322 1 new_cfg=0; //新门限配置初始化
323 1
324 1 // sum_rf=0; //门限雨量和初始化
325 1
326 1 RainFall=0; //雨量初始化
327 1 WaterLevel=0; //平均水位初始化
328 1 Scan_RainFall=0; //雨量门限累加初始化
329 1
330 1 rain_1min=0;
331 1 r_time=0; //雨量采集初始化
332 1
333 1 level_1min=0;
334 1 l_time=0; //水位采集初始化
335 1 }
336
337 /*********************************************************************
338 * 函 数 名: sys_init
339 * 功能描述: 系统初始化
340 * 函数说明: 定时器1产生通信波特率9600
341 * 调用函数: 无
342 * 全局变量:无
343 * 输 入: 无
344 * 返 回: 无
345 * 设 计 者:
346 ***********************************************************************/
347
348 void sys_init(void)
349 {
350 1 con_485=R_CON;
351 1
352 1 TMOD=0x21; // 设置定时器1工作方式 2
353 1 TH0=0xfc; // 定时1MS
354 1 TL0=0x66;
355 1 TR0=1;
356 1 ET0=1;
357 1
358 1 TH1=0xfd; // 设置波特率9600bps
359 1 TL1=0xfd;
360 1 PCON&=0x00; // SMOD=0
361 1 TR1=1; // 开启定时器
362 1 SCON=0x40; // 设置串行口工作方式 1
363 1 REN=1; // 允许接收
364 1 EA=1; // 总中断允许
365 1 ES=1; // 串行口中断允许
C51 COMPILER V7.50 INIT 10/08/2006 08:51:40 PAGE 7
366 1
367 1 SCONF=0x02; // 片内扩展ram使能
368 1
369 1 RCAP2H=0xb8; // 重装值
370 1 RCAP2L=0x00;
371 1 TH2=0xb8; //定时器2定时20ms
372 1 TL2=0x00;
373 1 ET2= 1; // 允许T2中断
374 1 T2CON= 0x00;
375 1 TR2= 1;
376 1
377 1 WDTKEY=0x1E;
378 1 WDTKEY=0xE1;
379 1 WDTC=0x85; // 看门狗定时器使能,溢出时间为65.536ms
380 1 WDTKEY=0xE1;
381 1 WDTKEY=0x1E;
382 1
383 1 EX0=1; // INT0中断开
384 1 IT0=0; // INT0低电平触发
385 1
386 1 P4=0x0f;
387 1 init();
388 1 Rd_i2c_init();
389 1
390 1 }
391
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1625 ----
CONSTANT SIZE = 6 ----
XDATA SIZE = ---- 440
PDATA SIZE = ---- ----
DATA SIZE = ---- 22
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -