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

📄 time.lst

📁 51edn开发板程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 8   

 428   5                                              break;
 429   5                                              
 430   5                                              case 12:  //秒高位
 431   5                                               t=(Time[0]>>4)&0x07;
 432   5                                                      if(t<5)t++;
 433   5                                                      else t=0;
 434   5                                                      Time[0]&=0x0F;
 435   5                                                      Time[0]|=t<<4;
 436   5                                              break;
 437   5                                              
 438   5                                              case 13: //秒低位
 439   5                                               t=Time[0]&0x0F;
 440   5                                                      if(t<9)t++;
 441   5                                                      else t=0;
 442   5                                                      Time[0]&=0xF0;
 443   5                                                      Time[0]|=t;
 444   5                                              break;
 445   5                                      }
 446   4                               KeyDown&=~KEY7;
 447   4                              }
 448   3                      }
 449   2                      
 450   2               if(SystemTick-OldTick>=70)
 451   2                      {
 452   3                              NeedRefresh=1;
 453   3                              OldTick=SystemTick;
 454   3                      }
 455   2                      if(NeedRefresh)
 456   2                      {
 457   3                              NeedRefresh=0;
 458   3                              DateToString();
 459   3                              on=!on;
 460   3                              if(!on)
 461   3                              {
 462   4                                      switch(SetDigit)
 463   4                                      {
 464   5                                       case 1: DispBuffer[2]=' ';break;
 465   5                                              case 2: DispBuffer[3]=' ';break;
 466   5                                              case 3: DispBuffer[5]=' ';break;
 467   5                                              case 4: DispBuffer[6]=' ';break;
 468   5                                              case 5: DispBuffer[8]=' ';break;
 469   5                                              case 6: DispBuffer[9]=' ';break;
 470   5                                              case 7: DispBuffer[12]=' ';break;
 471   5                                              default: break;
 472   5                                      }
 473   4                              }
 474   3                              Prints(DispBuffer);
 475   3                              Prints("   ");
 476   3                      #ifdef LCD //如果有LCD,则同时显示到LCD上
 477   3                       if(DispStatus==DISP_SET_TIME)
 478   3                              {
 479   4                                      LcdCls();
 480   4                                      LcdSetPosition(0x02);
 481   4                                      LcdPrints(DispBuffer);
 482   4                              }
 483   3                      #endif
 484   3                      
 485   3                              TimeToString();
 486   3                              if(!on)
 487   3                              {
 488   4                                      switch(SetDigit)
 489   4                                      {
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 9   

 490   5                                       case 8: DispBuffer[0]=' ';break;
 491   5                                              case 9: DispBuffer[1]=' ';break;
 492   5                                              case 10: DispBuffer[3]=' ';break;
 493   5                                              case 11: DispBuffer[4]=' ';break;
 494   5                                              case 12: DispBuffer[6]=' ';break;
 495   5                                              case 13: DispBuffer[7]=' ';break;
 496   5                                              default: break;
 497   5                                      }
 498   4                              }
 499   3                              Prints(DispBuffer);
 500   3                              Prints("\r\n");
 501   3                      #ifdef LCD //如果有LCD,则同时显示到LCD上
 502   3                       if(DispStatus==DISP_SET_TIME)
 503   3                              {
 504   4                                      LcdSetPosition(0x44);
 505   4                                      LcdPrints(DispBuffer);
 506   4                              }
 507   3                      #endif
 508   3                      }
 509   2       }
 510   1      }
 511          ////////////////////////End of function//////////////////////////////
 512          
 513          /********************************************************************
 514          函数功能:保存闹钟时间和报警温度函数。
 515          入口参数:无。
 516          返    回:无。
 517          备    注:无。
 518          ********************************************************************/
 519          void SaveAlarmClock(void)
 520          {
 521   1       uint8 i;
 522   1              for(i=0;i<4;i++)
 523   1              {
 524   2               EepromWriteByte(0xA0,i,AlarmTime[i]);
 525   2              }
 526   1              EepromWriteByte(0xA0,4,AlarmTemperature);
 527   1      }
 528          ////////////////////////End of function//////////////////////////////
 529          
 530          /********************************************************************
 531          函数功能:读闹钟时间和报警温度参数。
 532          入口参数:无。
 533          返    回:无。
 534          备    注:无。
 535          ********************************************************************/
 536          void ReadAlarmClock(void)
 537          {
 538   1       uint8 i;
 539   1              for(i=0;i<4;i++)
 540   1              {
 541   2               AlarmTime[i]=EepromReadByte(0xA0,i);
 542   2              }
 543   1              AlarmTemperature=EepromReadByte(0xA0,4);
 544   1      }
 545          ////////////////////////End of function//////////////////////////////
 546          
 547          /********************************************************************
 548          函数功能:设置闹钟时钟和报警温度函数。
 549          入口参数:无。
 550          返    回:无。
 551          备    注:无。
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 10  

 552          ********************************************************************/
 553          void SetAlarmClock(void)
 554          {
 555   1       uint8 SetDigit=8;
 556   1              uint8 on=0;
 557   1              uint8 TimeModified=0;
 558   1              uint8 t;
 559   1              uint8 NeedRefresh;
 560   1              uint16 OldTick;
 561   1              
 562   1              Prints("Set alarm clock: ");
 563   1      #ifdef LCD
 564   1              LcdCls();
 565   1              LcdPrints("Set alarm clock:");
 566   1      #endif
 567   1              while(1)
 568   1              {
 569   2               if(KeyDown) //有按键按下
 570   2                      {
 571   3                       if(KeyDown&(KEY1|KEY2|KEY3|KEY4))return; //按下这些键放弃设置闹钟,返回
 572   3                              if(KeyDown&KEY8)
 573   3                              {
 574   4                               if(TimeModified) //如果对闹钟时间做了修改
 575   4                                      {
 576   5                                       BeepOn(); //蜂鸣器响,提示正在保存设置
 577   5                                       SaveAlarmClock(); //保存设置的时间
 578   5                                              BeepOff();
 579   5                                      }
 580   4                                      DispStatus=DISP_TIME; //切换回时间显示状态
 581   4                                      KeyDown&=~KEY8;
 582   4                                      return;
 583   4                              }
 584   3                              
 585   3                              if(KeyDown&KEY5) //切换调整位
 586   3                              {
 587   4                                      SetDigit++; //切换到下一位
 588   4                                      if(SetDigit>=17)SetDigit=8; //到最后一位,返回
 589   4                               KeyDown&=~KEY5;
 590   4                                      NeedRefresh=1; //需要刷新显示
 591   4                              }
 592   3                              
 593   3                              if(KeyDown&KEY6) //减1调整
 594   3                              {
 595   4                                      TimeModified=1; //修改了时钟
 596   4                                      NeedRefresh=1; //需要刷新显示
 597   4                               switch(SetDigit) //调整不同的位
 598   4                                      {
 599   5                                              case 8: //小时高位
 600   5                                               t=(AlarmTime[2]>>4)&0x03;
 601   5                                                      if(t>0)t--;
 602   5                                                      else t=2;
 603   5                                                      AlarmTime[2]&=0x0F;
 604   5                                                      AlarmTime[2]|=t<<4;
 605   5                                              break;
 606   5                                              
 607   5                                              case 9: //小时低位
 608   5                                               t=AlarmTime[2]&0x0F;
 609   5                                                      if(((AlarmTime[2]>>4)&0x03)==2)
 610   5                                                      {
 611   6                                                              if(t>0)t--;
 612   6                                                              else t=3;
 613   6                                                      }
C51 COMPILER V7.50   TIME                                                                  06/02/2008 20:59:15 PAGE 11  

 614   5                                                      else
 615   5                                                      {
 616   6                                                              if(t>0)t--;
 617   6                                                              else t=9;
 618   6                                                      }
 619   5                                                      AlarmTime[2]&=0xF0;
 620   5                                                      AlarmTime[2]|=t;
 621   5                                              break;
 622   5                                              
 623   5                                              case 10: //分高位
 624   5                                               t=(AlarmTime[1]>>4)&0x07;
 625   5                                                      if(t>0)t--;
 626   5                                                      else t=5;
 627   5                                                      AlarmTime[1]&=0x0F;
 628   5                                                      AlarmTime[1]|=t<<4;
 629   5                                              break;
 630   5                                              
 631   5                                              case 11: //分低位
 632   5                                               t=AlarmTime[1]&0x0F;
 633   5                                                      if(t>0)t--;
 634   5                                                      else t=9;
 635   5                                                      AlarmTime[1]&=0xF0;
 636   5                                                      AlarmTime[1]|=t;
 637   5                                              break;
 638   5                                              
 639   5                                              case 12:  //秒高位
 640   5                                               t=(AlarmTime[0]>>4)&0x07;
 641   5                                                      if(t>0)t--;
 642   5                                                      else t=5;
 643   5                                                      AlarmTime[0]&=0x0F;

⌨️ 快捷键说明

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