⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface.lst

📁 基于c8051f020的应用
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -