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

📄 keyb.lst

📁 nokia3310多功能温度计设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
 306   3                }
 307   2               }
 308   1               else
 309   1              {
 310   2           LPH7366_write_str(6,4,(shi+16));
 311   2               LPH7366_write_str(6,5,(ge+16));
 312   2              }
 313   1      
 314   1           if(second_flag==1)
 315   1           LPH7366_write_str(6,6,26);  //:
 316   1               else
 317   1           LPH7366_write_str(6,6,0);  // 
 318   1      
 319   1                data_tick(i.second);   //second
 320   1                if(flash3==1)
 321   1               {
 322   2                if(second_flag==1)
 323   2            {
 324   3                 LPH7366_write_str(6,7,(shi+16));
 325   3                 LPH7366_write_str(6,8,(ge+16));
 326   3                }
 327   2                else
 328   2            { 
 329   3                 LPH7366_write_str(6,7,60);  //55
 330   3                 LPH7366_write_str(6,8,60);
 331   3                }
 332   2               }
 333   1               else
 334   1               {
 335   2                LPH7366_write_str(6,7,(shi+16));
 336   2                LPH7366_write_str(6,8,(ge+16));
 337   2               }
 338   1      }
 339          
 340          /***************************温度切换显示函数***************************/
 341          /*函数原型:void temp_set_display(unsigned char option_i)
 342          /*函数功能:温度切换显示
 343          /*输入参数:无
 344          /*输出参数:无
 345          /*调用模块:temp_set_option_display(),LPH7366_write_str()
 346          
 347          /**********************************************************************/
 348          void temp_set_display(unsigned char option_i)
 349          {
 350   1        if(option_i==1)  //TH
 351   1       { 
 352   2         temp_set_option_display(temp_TH);
 353   2         LPH7366_write_str(3,6,52);  //显示T
 354   2         LPH7366_write_str(3,7,40);  //显示H
 355   2       }
 356   1      
 357   1       if(option_i==2)  //TL
 358   1       {  
 359   2         temp_set_option_display(temp_TL);
 360   2         LPH7366_write_str(3,6,52);  //显示T
 361   2         LPH7366_write_str(3,7,44);  //显示L
 362   2       }
 363   1      }
 364          
C51 COMPILER V8.05a   KEYB                                                                 04/15/2009 22:04:18 PAGE 7   

 365          
 366          /***************************温度切换显示子函数函数*********************/
 367          /*函数原型:void temp_set_option_display(signed char option_i)
 368          /*函数功能:温度切换显示子函数
 369          /*输入参数:无
 370          /*输出参数:无
 371          /*调用模块:temp_data_turn(),LPH7366_write_str(),
 372          
 373          /**********************************************************************/
 374          void temp_set_option_display(signed char temp)
 375          {
 376   1           if(temp>0)   //正值
 377   1           T_sign=0;
 378   1      
 379   1            else   //负值
 380   1           { 
 381   2           T_sign=1;
 382   2               temp_TLTH_dis=temp*(-1);
 383   2           }
 384   1      
 385   1           if(T_sign==1)  //负值
 386   1           temp_data_turn(temp_TLTH_dis); //转换温度数值
 387   1           else  //正值
 388   1           temp_data_turn(temp); //转换温度数值
 389   1      
 390   1           temp_display(); 
 391   1      
 392   1           data_tick(local_time.hour);
 393   1           LPH7366_write_str(6,1,(shi+16));
 394   1               LPH7366_write_str(6,2,(ge+16));
 395   1      
 396   1           if(second_flag==1)
 397   1           LPH7366_write_str(6,3,26);  //:
 398   1               else
 399   1           LPH7366_write_str(6,3,0);  // 
 400   1      
 401   1           data_tick(local_time.minute);
 402   1           LPH7366_write_str(6,4,(shi+16));
 403   1               LPH7366_write_str(6,5,(ge+16));
 404   1      
 405   1           if(second_flag==1)
 406   1           LPH7366_write_str(6,6,26);  //:
 407   1               else
 408   1           LPH7366_write_str(6,6,0);  // 
 409   1      
 410   1               data_tick(local_time.second);
 411   1           LPH7366_write_str(6,7,(shi+16));
 412   1               LPH7366_write_str(6,8,(ge+16));  
 413   1      }
 414          
 415          /***************************时间调整函数************************/
 416          /*函数原型:void key_time_setdone(struct time *i)
 417          /*函数功能:时间调整
 418          /*输入参数:无
 419          /*输出参数:无
 420          /*调用模块:无
 421          
 422          /***************************************************************/
 423          void key_time_setdone(struct time *i)
 424          {
 425   1        unsigned char set_i=1;  //设置计数器
 426   1        
C51 COMPILER V8.05a   KEYB                                                                 04/15/2009 22:04:18 PAGE 8   

 427   1         while(1)
 428   1        {
 429   2          keyB();
 430   2      
 431   2              if(key==1&&key_flag)  //+
 432   2              {
 433   3            key_flag=0;
 434   3                if(set_i==1)
 435   3            {
 436   4                 i->hour++;
 437   4                 if(i->hour==24)
 438   4                 i->hour=0;
 439   4                }
 440   3      
 441   3                if(set_i==2)
 442   3            {
 443   4                 i->minute++;
 444   4                 if(i->minute==60)
 445   4                 i->minute=0;
 446   4                }
 447   3      
 448   3                if(set_i==3)
 449   3            {
 450   4                 i->second++;
 451   4                 if(i->second==60)
 452   4                 i->second=0;
 453   4                }
 454   3              }
 455   2      
 456   2              if(key==2&&key_flag)  //-
 457   2              {
 458   3                key_flag=0;
 459   3                 if(set_i==1)
 460   3            {
 461   4                 i->hour--;
 462   4                 if(i->hour==0xff)
 463   4                 i->hour=23;
 464   4                }
 465   3      
 466   3                if(set_i==2)
 467   3            {
 468   4                 i->minute--;
 469   4                 if(i->minute==0xff)
 470   4                 i->minute=59;
 471   4                }
 472   3      
 473   3                if(set_i==3)
 474   3            {
 475   4                 i->second--;
 476   4                 if(i->second==0xff)
 477   4                 i->second=59;
 478   4                }
 479   3              }
 480   2      
 481   2              if(key==3&&key_flag)  //设置位调整
 482   2              {
 483   3                key_flag=0;
 484   3            set_i++;
 485   3                if(set_i==4)
 486   3                set_i=1;
 487   3              }
 488   2      
C51 COMPILER V8.05a   KEYB                                                                 04/15/2009 22:04:18 PAGE 9   

 489   2              if(key==4&&key_flag)  //背光
 490   2              {
 491   3            key_flag=0;
 492   3            BLACK_LIGHT=~BLACK_LIGHT;
 493   3              }
 494   2      
 495   2              if(key==5&&key_flag)  //跳出
 496   2              {
 497   3                key_flag=0;
 498   3            break;
 499   3              }
 500   2      
 501   2              if(key==0)
 502   2              {
 503   3               key_flag=1;
 504   3              }
 505   2              flash=1;
 506   2              flash_co(set_i);
 507   2              time_set_display(key_option_i);
 508   2        }
 509   1      }
 510          
 511          /***************************温度调整函数************************/
 512          /*函数原型:void key_temp_setdone(unsigned char i)
 513          /*函数功能:温度调整
 514          /*输入参数:无
 515          /*输出参数:无
 516          /*调用模块:keyB(),temp_set_display()
 517          
 518          /***************************************************************/
 519          void key_temp_setdone(signed char *i)
 520          {
 521   1          while(1)
 522   1        {
 523   2          keyB();
 524   2      
 525   2              if(key==1&&key_flag)  //+  温度设置在-55~125C
 526   2              {
 527   3             key_flag=0;
 528   3                 (*i)++;
 529   3                 if((*i)>125)
 530   3                 (*i)=-55;
 531   3              }
 532   2      
 533   2              if(key==2&&key_flag)  //-
 534   2              {
 535   3                key_flag=0;
 536   3                 (*i)--;
 537   3                 if((*i)<-55)
 538   3                 (*i)=125;
 539   3              }
 540   2      
 541   2              if(key==4&&key_flag)  //背光
 542   2              {
 543   3            key_flag=0;
 544   3            BLACK_LIGHT=~BLACK_LIGHT;
 545   3              }
 546   2      
 547   2              if(key==5&&key_flag)  //跳出
 548   2              {
 549   3                key_flag=0;
 550   3            break;
C51 COMPILER V8.05a   KEYB                                                                 04/15/2009 22:04:18 PAGE 10  

 551   3              }
 552   2      
 553   2              if(key==0||key==3)
 554   2              {
 555   3               key_flag=1;
 556   3              }
 557   2              temp_set_display(key_option_i);
 558   2        }
 559   1      }
 560          
 561          /********************************闪烁控制函数******************************/
 562          /*函数原型:void flash_co(unsigned char set_i)
 563          /*函数功能:闪烁控制
 564          /*输入参数:无
 565          /*输出参数:无
 566          /*调用模块:无
 567          
 568          /**************************************************************************/
 569          void flash_co(unsigned char set_i)
 570          {
 571   1         if(flash==1)
 572   1       { if(set_i==1)   //第1个标志位闪烁
 573   2        {
 574   3          flash1=1;
 575   3              flash2=0;
 576   3              flash3=0;
 577   3        }
 578   2      
 579   2         if(set_i==2)  //第2个标志位闪烁
 580   2        {
 581   3          flash1=0;
 582   3              flash2=1;
 583   3              flash3=0;
 584   3        }
 585   2      
 586   2         if(set_i==3)  //第3个标志位闪烁
 587   2        {
 588   3          flash1=0;
 589   3              flash2=0;
 590   3              flash3=1;
 591   3        }
 592   2       }
 593   1        else 
 594   1       {
 595   2        if(set_i==0)
 596   2        {
 597   3         flash1=0;
 598   3         flash2=0;
 599   3         flash3=0;
 600   3        }
 601   2       }
 602   1      }
 603          
 604          
 605          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1447    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.05a   KEYB                                                                 04/15/2009 22:04:18 PAGE 11  

   DATA SIZE        =      3      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -