📄 interface.lst
字号:
328 3 }
329 2 }
330 1 }
331 //********************************************************************************************************
-******************
332 void Sys_Setup(void)
333 {
334 1 xdata unsigned char SubFK=0x00;
335 1
336 1 while(1)
337 1 {
338 2 LCD_CLEAR();
339 2 //LCD_DispStr("U:Set Time.",8,5);
340 2 disp_chn_str("↑丰设置时间",2,10,12,1);
341 2 //LCD_DispStr("D:Set Well Num.",16,5);
342 2 disp_chn_str("↓丰设置井号",14,10,12,1);
343 2 //LCD_DispStr("L:Set test time.",24,5);
344 2 disp_chn_str("←丰设置测试时间",26,10,12,1);
345 2 //LCD_DispStr("R:Force ReNew Date.",32,5);
346 2 disp_chn_str("→丰恢复所有数据",38,10,12,1);
347 2 //LCD_DispStr("E:Return.",48,5);
348 2 //disp_chn_str("确定 返回",50,15,12,1);
349 2 Display_Data();
350 2 while(!(SubFK=get_key(1)));
351 2 switch(SubFK)
352 2 {
353 3 case UP_ARROW_KEY:
354 3 {
355 4 Input_Time();
356 4 break;
357 4 }
358 3 case DOWN_ARROW_KEY:
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 7
359 3 {
360 4 Input_WellNameNum();
361 4 break;
362 4 }
363 3 case LEFT_ARROW_KEY:
364 3 {
365 4 Set_Test_Time();
366 4 break;
367 4 }
368 3 case RIGHT_ARROW_KEY:
369 3 {
370 4 ReNew_All_Date();
371 4 break;
372 4 }
373 3 case RETURN_KEY:
374 3 {
375 4 return ;
376 4 }
377 3 default:break;
378 3 SubFK=0x00;
379 3 }
380 2 }
381 1
382 1 }
383 //********************************************************************************************************
-******************
384 void Input_Time(void)
385 {
386 1 xdata unsigned char SubSubFK=0x00,cur_x,cur_y ;
387 1 xdata unsigned char key_num; // 输入位置(光标)
388 1 xdata unsigned char input_key[6]; // 输入数据存储
389 1
390 1 LCD_CLEAR();
391 1 //LCD_DispStr("Please input time.",4,5);
392 1 disp_chn_str("请输入时间",14,10,12,1);
393 1 //LCD_DispStr("E:OK + Return.",48,5);
394 1 //disp_chn_str("确定 返回",50,15,12,1);
395 1 DS1302_Read();
396 1 LCD_SHOW_TIME();
397 1 Display_Data();
398 1
399 1 key_num = 0;
400 1 cur_x = TimeShowAddrX;
401 1 cur_y = TimeShowAddrY1;
402 1 LCD_Cursor_Show(cur_y,cur_x);
403 1 Display_Data();
404 1 while(1)
405 1 {
406 2 while (! (SubSubFK = get_key(1)));
407 2
408 2 if( SubSubFK == LEFT_ARROW_KEY) // 左移键,用于光标位置左移
409 2 {
410 3 if( key_num == 0 ) // 左极端跳转
411 3 {
412 4 key_num = 15;
413 4 cur_x = TimeShowAddrX+42 ; cur_y = TimeShowAddrY2;
414 4 }
415 3 else if( key_num == 1 || key_num == 4 || key_num == 7 )// 双位时间的右侧位置
416 3 {
417 4 key_num--;
418 4 cur_x -=6 ; cur_y = TimeShowAddrY1;
419 4 }
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 8
420 3 else if( key_num == 3 || key_num == 6 ) // 光标在"-"右侧的位置
421 3 {
422 4 key_num -= 2 ;
423 4 cur_x -= 2*6 ; cur_y = TimeShowAddrY1 ;
424 4 }
425 3 else if( key_num == 8 ) // 十时位置,必须跳转
426 3 {
427 4 key_num--;
428 4 cur_x = TimeShowAddrX+42 ; cur_y = TimeShowAddrY1;
429 4 }
430 3 else if( key_num == 9 || key_num == 12 || key_num == 15 )// 双位日期的右侧位置
431 3 {
432 4 key_num--;
433 4 cur_x -=6 ; cur_y = TimeShowAddrY2;
434 4 }
435 3 else if( key_num == 11 || key_num == 14 ) // 光标在":"右侧的位置
436 3 {
437 4 key_num -= 2 ;
438 4 cur_x -= 2*6 ; cur_y = TimeShowAddrY2;
439 4 }
440 3 }
441 2 else if(SubSubFK == RIGHT_ARROW_KEY )
442 2 {
443 3 if(key_num == 0 || key_num == 3 ||key_num == 6 )
444 3 {
445 4 key_num ++ ; cur_x +=6; cur_y = TimeShowAddrY1;
446 4 }
447 3 else if( key_num == 1 || key_num == 4 )
448 3 {
449 4 key_num += 2; cur_x += 12; cur_y = TimeShowAddrY1;
450 4 }
451 3 else if( key_num == 7)
452 3 {
453 4 key_num ++ ; cur_x = TimeShowAddrX; cur_y = TimeShowAddrY2;
454 4
455 4 }
456 3 else if(key_num == 8 || key_num == 11 || key_num == 14 )
457 3 {
458 4 key_num++; cur_x +=6; cur_y = TimeShowAddrY2;
459 4 }
460 3 else if( key_num == 9 || key_num == 12 )
461 3 {
462 4 key_num += 2 ; cur_x += 12; cur_y = TimeShowAddrY2;
463 4 }
464 3 else if( key_num == 15)
465 3 {
466 4 cur_x = TimeShowAddrX; cur_y = TimeShowAddrY1;
467 4 key_num = 0;
468 4 }
469 3 }
470 2 else if( SubSubFK == RETURN_KEY ) // 确定键,注意该段程序允许输入非法日期
471 2 {
472 3 input_key[0] = (Clock_Date_Str[0] - 0x30)*16 + Clock_Date_Str[1] - 0x30;// 年
473 3 input_key[1] = (Clock_Date_Str[3] - 0x30)*16 + Clock_Date_Str[4] - 0x30;// 月
474 3 if(input_key[1] > 0x12) input_key[1] = 0x12;
475 3 input_key[2] = (Clock_Date_Str[6] - 0x30)*16 + Clock_Date_Str[7] - 0x30;// 日
476 3 if(input_key[2] > 0x31) input_key[2] = 0x31;
477 3 input_key[3] = (Clock_Time_Str[0] - 0x30)*16 + Clock_Time_Str[1] - 0x30;// 时
478 3 if(input_key[3] > 0x23) input_key[3] = 0x23;
479 3 input_key[4] = (Clock_Time_Str[3] - 0x30)*16 + Clock_Time_Str[4] - 0x30;// 分
480 3 if(input_key[4] > 0x59) input_key[4] = 0x59;
481 3 input_key[5] = (Clock_Time_Str[6] - 0x30)*16 + Clock_Time_Str[7] - 0x30;// 秒
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 9
482 3 if(input_key[5] > 0x59) input_key[5] = 0x59;
483 3 DS1302_Write(input_key);
484 3 return ;
485 3 }
486 2 else if(SubSubFK == UP_ARROW_KEY) // 数字键,用于输入时间数据
487 2 {
488 3 if(key_num==0 || key_num==1 || key_num==3 || key_num==4 || key_num==6 || key_num==7) // 输入日期限制:月
-日
489 3 {
490 4 Clock_Date_Str[key_num]++;
491 4 if(Clock_Date_Str[key_num]>=0x3A)
492 4 Clock_Date_Str[key_num]=0x30;
493 4 }
494 3 if(key_num==8 || key_num==9 || key_num==11 || key_num==12 || key_num==14 || key_num==15) // 输入日期限
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -