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

📄 display.lst

📁 基于51单片机的源码,内有液晶显示(IIC)接口,还实现串口和定时操作等功能.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 310          void Time_Data(void)
 311          {
 312   1              unsigned char hour,sec,min;
 313   1              unsigned char year,mon,date;
 314   1      /**********************************/
 315   1              hour = (LED_Time[1]-0x30)*10+(LED_Time[2]-0x30);
 316   1              sec =  (LED_Time[3]-0x30)*10+(LED_Time[4]-0x30);
 317   1              min =  (LED_Time[5]-0x30)*10+(LED_Time[6]-0x30);
 318   1              year = (LED_Date[1]-0x30)*10+(LED_Date[2]-0x30);
 319   1              mon =  (LED_Date[3]-0x30)*10+(LED_Date[4]-0x30);
 320   1              date = (LED_Date[5]-0x30)*10+(LED_Date[6]-0x30);
 321   1      /*********************************/
 322   1              if(Count_1ms >= 1000)
 323   1              {
 324   2                      Count_1ms = Count_1ms - 1000;
 325   2                      min++;
 326   2              }
 327   1              if(min > 59)
 328   1              {
 329   2                      min = 0;
 330   2                      sec ++;
 331   2              }
 332   1              if(sec > 59)
 333   1              {
 334   2                      sec = 0;
 335   2                      hour++;
 336   2              }
 337   1              if(hour > 23)
 338   1              {
 339   2                      hour = 0;
 340   2                      date ++;
 341   2              }
 342   1              switch(mon)
 343   1              {
 344   2                      case 1:
 345   2                      {
 346   3                              if(date>31)
 347   3                              {
 348   4                                      mon++;
 349   4                                      date=1;
 350   4                              }
 351   3                              break;
 352   3                      }
 353   2                      case 2:
 354   2                      {
 355   3                              if(year%4==0)
 356   3                              {
 357   4                                      if(date>29)
 358   4                                      {
 359   5                                              mon++;
 360   5                                              date=1;
 361   5                                      }
 362   4                              }
 363   3                              else 
 364   3                              {
 365   4                                      if(date>28)
C51 COMPILER V7.08   DISPLAY                                                               06/07/2008 20:06:02 PAGE 7   

 366   4                                      {
 367   5                                              mon++;
 368   5                                              date = 1;
 369   5                                      }
 370   4                              }
 371   3                              break;                          
 372   3                      }
 373   2                      case 3:
 374   2                      {
 375   3                              if(date>31)
 376   3                              {
 377   4                                      mon++;
 378   4                                      date=1;
 379   4                              }
 380   3                              break;
 381   3                      }
 382   2                      case 4:
 383   2                      {
 384   3                              if(date>30)
 385   3                              {
 386   4                                      mon++;
 387   4                                      date=1;
 388   4                              }
 389   3                              break;
 390   3                      }
 391   2                      case 5:
 392   2                      {
 393   3                              if(date>31)
 394   3                              {
 395   4                                      mon++;
 396   4                                      date=1;
 397   4                              }
 398   3                              break;
 399   3                      }
 400   2                      case 6:
 401   2                      {
 402   3                              if(date>30)
 403   3                              {
 404   4                                      mon++;
 405   4                                      date=1;
 406   4                              }
 407   3                              break;
 408   3                      }
 409   2                      case 7:
 410   2                      {
 411   3                              if(date>31)
 412   3                              {
 413   4                                      mon++;
 414   4                                      date=1;
 415   4                              }
 416   3                              break;
 417   3                      }
 418   2                      case 8:
 419   2                      {
 420   3                              if(date>31)
 421   3                              {
 422   4                                      mon++;
 423   4                                      date=1;
 424   4                              }
 425   3                              break;
 426   3                      }
 427   2                      case 9:
C51 COMPILER V7.08   DISPLAY                                                               06/07/2008 20:06:02 PAGE 8   

 428   2                      {
 429   3                              if(date>30)
 430   3                              {
 431   4                                      mon++;
 432   4                                      date=1;
 433   4                              }
 434   3                              break;
 435   3                      }
 436   2                      case 10:
 437   2                      {
 438   3                              if(date>31)
 439   3                              {
 440   4                                      mon++;
 441   4                                      date=1;
 442   4                              }
 443   3                              break;
 444   3                      }
 445   2                      case 11:
 446   2                      {
 447   3                              if(date>30)
 448   3                              {
 449   4                                      mon++;
 450   4                                      date=1;
 451   4                              }
 452   3                              break;
 453   3                      }
 454   2                      case 12:
 455   2                      {
 456   3                              if(date>31)
 457   3                              {
 458   4                                      mon++;
 459   4                                      date=1;
 460   4                              }
 461   3                              break;
 462   3                      }
 463   2                      default: break;
 464   2              }
 465   1              if(mon>12)
 466   1              {
 467   2                      mon=1;
 468   2                      year++;
 469   2              }
 470   1              /**********************************/
 471   1              LED_Time[1] = hour/10+0x30;
 472   1              LED_Time[2]     = hour%10+0x30;
 473   1              LED_Time[3]     = sec/10+0x30;
 474   1              LED_Time[4]     = sec%10+0x30;
 475   1              LED_Time[5]     = min/10+0x30;
 476   1              LED_Time[6]     = min%10+0x30;
 477   1      
 478   1              LED_Date[1] = year/10+0x30;
 479   1              LED_Date[2]     = year%10+0x30;
 480   1              LED_Date[3]     = mon/10+0x30;
 481   1              LED_Date[4]     = mon%10+0x30;
 482   1              LED_Date[5]     = date/10+0x30;
 483   1              LED_Date[6]     = date%10+0x30;
 484   1              /*********************************/
 485   1      }
 486          /****************************************************/
 487          /*主函数入口*/
 488          /****************************************************/
 489          void main()
C51 COMPILER V7.08   DISPLAY                                                               06/07/2008 20:06:02 PAGE 9   

 490          {       
 491   1              unsigned char i;
 492   1              bit RS_Flag,Date_Flag;
 493   1              unsigned int LED_count,Display_count;
 494   1              
 495   1              STATUS          = 0x00;
 496   1              Rx_Count        = 0x00;
 497   1              Tx_Count        = 0x00;
 498   1              Tx_Length       = 0x00;
 499   1              Timeout         = 0x00;
 500   1              Count_1ms   = 0x00;
 501   1      
 502   1              Buzzer          = 1;
 503   1              IIC_DI          = 0;
 504   1              IIC_CLK         = 0;
 505   1              LED                     = 0;
 506   1              Flag            = 1;
 507   1              RS_Flag         = 0;
 508   1              Date_Flag       = 0;
 509   1      
 510   1              Init();
 511   1              LED_Display_Init();
 512   1              Tx_Length       = 14;
 513   1      /*************RS初始化*******************/      
 514   1              for(i=0;i<15;i++)
 515   1              {
 516   2                      Tx_Buffer[i] = string[i];
 517   2              }
 518   1              Tx_Count = 0x00;
 519   1              SBUF = Tx_Buffer[0];
 520   1              STATUS = Sending;
 521   1      /***************************************/
 522   1              while(1)
 523   1              {
 524   2                      switch(STATUS)
 525   2                      {
 526   3                              case Data:
 527   3                              {
 528   4                                      RS_Data();
 529   4                                      STATUS = Idle;
 530   4                                      RS_Flag = 1;
 531   4                                      break;
 532   4                              }
 533   3                              case Idle:
 534   3                              {
 535   4                                      if(RS_Flag)
 536   4                                      {
 537   5                                              Tx_Count = 0x00;
 538   5                                              SBUF = Tx_Buffer[0];
 539   5                                              STATUS = Sending;
 540   5                                              RS_Flag = 0;
 541   5                                      }
 542   4                                      break;
 543   4                              }  
 544   3                              default: break;
 545   3                      }
 546   2      /**************************************************/
 547   2                      if(Date_Flag == 1)
 548   2                      {
 549   3                              LED = 0;
 550   3                      }
 551   2                      else
C51 COMPILER V7.08   DISPLAY                                                               06/07/2008 20:06:02 PAGE 10  

 552   2                      {
 553   3                              if(LED_count<10)
 554   3                              {
 555   4                                      LED = 0;
 556   4                              }
 557   3                              else if(LED_count <20)
 558   3                              {
 559   4                                      LED = 1;
 560   4                              }
 561   3                              else LED_count = 0;
 562   3                              LED_count++;
 563   3                      }               
 564   2      /**************************************************/
 565   2                      Key = P1;
 566   2                      if( (Key & 0x80) == 0)
 567   2                      {
 568   3                              //deplay();
 569   3                              deplay();
 570   3                              Key = P1;
 571   3                              if( (Key & 0x80) == 0)
 572   3                              {
 573   4                                      if(Flag == 1)
 574   4                                      {
 575   5                                              Flag = 0;
 576   5                                      }
 577   4                                      else Flag = 1;
 578   4                                      while( (Key & 0x80) == 0)
 579   4                                      {
 580   5                                              Key = P1;
 581   5                                      }
 582   4                              }
 583   3                      }
 584   2                      Buzzer = Flag;
 585   2      /********************************************************/
 586   2                      deplay();
 587   2                      Time_Data();
 588   2                      if(Display_count<100)
 589   2                      {
 590   3                              
 591   3                              LED_display_Date();
 592   3                              if(!Date_Flag)
 593   3                              {
 594   4                                      write_LED(LED_Disp[0],LED_Disp[1],LED_Disp[2],
 595   4                                                      LED_Disp[3],LED_Disp[4],LED_Disp[5],LED_Disp[6]);
 596   4                                      Date_Flag = 1;
 597   4                              }
 598   3      
 599   3                      }
 600   2                      else if(Display_count <1000)
 601   2                      {
 602   3                              LED_display_Time();
 603   3                              write_LED(LED_Disp[0],LED_Disp[1],LED_Disp[2],
 604   3                                              LED_Disp[3],LED_Disp[4],LED_Disp[5],LED_Disp[6]);
 605   3                              Date_Flag = 0;
 606   3      
 607   3                      }
 608   2                      else Display_count = 0;
 609   2                      Display_count++;
 610   2              }
 611   1      }


C51 COMPILER V7.08   DISPLAY                                                               06/07/2008 20:06:02 PAGE 11  

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1315    ----
   CONSTANT SIZE    =     88    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     62      16
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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