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

📄 lcd_clock.lst

📁 用Led显示时间,年月日和时分秒。 动态显示的数码管。用定时器控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
 240   4                              }
 241   3                              while(!down);
C51 COMPILER V7.20   LCD_CLOCK                                                             02/27/2008 10:00:01 PAGE 5   

 242   3                      }
 243   2                      write_second();
 244   2                      TR0=1;
 245   2              }
 246   1              if(flag==5)
 247   1              {
 248   2                      if(up==0)
 249   2                      {
 250   3                              delay(20);
 251   3                              if(up==0)
 252   3                              {
 253   4                                      now.minute++;
 254   4                                      if(now.minute==60)
 255   4                                      {
 256   5                                              now.minute=0;
 257   5                                      }
 258   4                              }
 259   3                              while(!up);
 260   3                      }       
 261   2                      if(down==0)
 262   2                      {
 263   3                              delay(20);
 264   3                              if(down==0)
 265   3                              {
 266   4                                      now.minute--;
 267   4                                      if(now.minute==-1)
 268   4                                      {
 269   5                                              now.minute=59;
 270   5                                      }
 271   4                              }
 272   3                              while(!down);   
 273   3                      }
 274   2                      write_minute();
 275   2                      write_second_nocursor();
 276   2              }
 277   1      
 278   1              if(flag==4)
 279   1              {
 280   2                      if(up==0)
 281   2                      {
 282   3                              delay(20);
 283   3                              if(up==0)
 284   3                              {
 285   4                                      now.hour++;
 286   4                                      if(now.hour==24)
 287   4                                      {
 288   5                                              now.hour=0;
 289   5                                      }
 290   4                              }
 291   3                              while(!up);
 292   3                      }       
 293   2                      if(down==0)
 294   2                      {
 295   3                              delay(20);
 296   3                              if(down==0)
 297   3                              {
 298   4                                      now.hour--;
 299   4                                      if(now.minute==-1)
 300   4                                      {
 301   5                                              now.minute=23;
 302   5                                      }
 303   4                              }
C51 COMPILER V7.20   LCD_CLOCK                                                             02/27/2008 10:00:01 PAGE 6   

 304   3                              while(!down);   
 305   3                      }
 306   2                      write_hour();
 307   2                      write_second_nocursor();
 308   2              }       
 309   1      
 310   1              if(flag==3)
 311   1              {
 312   2                      if(up==0)
 313   2                      {
 314   3                              delay(20);
 315   3                              if(up==0)
 316   3                              {
 317   4                                      today.day++;
 318   4                                      if(today.day==monthofday(today.month,today.year))
 319   4                                      {
 320   5                                              today.day=1;
 321   5                                      }
 322   4                              }
 323   3                              while(!up);
 324   3                      }       
 325   2                      if(down==0)
 326   2                      {
 327   3                              delay(20);
 328   3                              if(down==0)
 329   3                              {
 330   4                                      today.day--;
 331   4                                      if(today.day==0)
 332   4                                      {
 333   5                                              today.day=monthofday(today.month,today.year);
 334   5                                      }
 335   4                              }
 336   3                              while(!down);   
 337   3                      }
 338   2                      write_day();
 339   2                      write_second_nocursor();
 340   2              }
 341   1      
 342   1              if(flag==2)
 343   1              {
 344   2                      if(up==0)
 345   2                      {
 346   3                              delay(20);
 347   3                              if(up==0)
 348   3                              {
 349   4                                      today.month++;
 350   4                                      if(today.month==13)
 351   4                                      {
 352   5                                              today.month=1;
 353   5                                      }
 354   4                              }
 355   3                              while(!up);
 356   3                      }       
 357   2                      if(down==0)
 358   2                      {
 359   3                              delay(20);
 360   3                              if(down==0)
 361   3                              {
 362   4                                      today.month--;
 363   4                                      if(today.month==0)
 364   4                                      {
 365   5                                              today.month=12;
C51 COMPILER V7.20   LCD_CLOCK                                                             02/27/2008 10:00:01 PAGE 7   

 366   5                                      }
 367   4                              }
 368   3                              while(!down);   
 369   3                      }
 370   2                      write_month();
 371   2                      write_second_nocursor();
 372   2              }
 373   1      
 374   1              if(flag==1)
 375   1              {
 376   2                      if(up==0)
 377   2                      {
 378   3                              delay(20);
 379   3                              if(up==0)
 380   3                              {
 381   4                                      today.year++;
 382   4                                      if(today.year==9999)
 383   4                                      {
 384   5                                              today.year=0;
 385   5                                      }
 386   4                              }
 387   3                              while(!up);
 388   3                      }       
 389   2                      if(down==0)
 390   2                      {
 391   3                              delay(20);
 392   3                              if(down==0)
 393   3                              {
 394   4                                      today.year--;
 395   4                                      if(today.year==1899)
 396   4                                      {
 397   5                                              today.year=9999;
 398   5                                      }
 399   4                              }
 400   3                              while(!down);   
 401   3                      }
 402   2                      write_year();
 403   2                      write_second_nocursor();
 404   2              }
 405   1      }
 406          
 407          void calculate()
 408          {
 409   1              secondlow=now.second%10;
 410   1              secondhigh=now.second/10;
 411   1              minutelow=now.minute%10;
 412   1              minutehigh=now.minute/10;
 413   1              hourlow=now.hour%10;
 414   1              hourhigh=now.hour/10;
 415   1              daylow=today.day%10;
 416   1              dayhigh=today.day/10;
 417   1              monthlow=today.month%10;
 418   1              monthhigh=today.month/10;
 419   1              yearlow=today.year%10;
 420   1              yearsecondlow=today.year/10%10;
 421   1              yearthirdlow=today.year/100%10;
 422   1              yearhigh=today.year/1000;       
 423   1      }
 424          
 425          void write_sfr()
 426          {
 427   1              write_lcd(lcdcommand,0x06);
C51 COMPILER V7.20   LCD_CLOCK                                                             02/27/2008 10:00:01 PAGE 8   

 428   1              write_lcd(lcdcommand,0x0c);
 429   1              write_lcd(lcdcommand,0x80+4);
 430   1              write_lcd(lcddate,yearhigh+0x30);
 431   1              write_lcd(lcddate,yearthirdlow+0x30);
 432   1              write_lcd(lcddate,yearsecondlow+0x30);
 433   1              write_lcd(lcddate,yearlow+0x30);
 434   1              write_lcd(lcdcommand,0x80+9);
 435   1              write_lcd(lcddate,monthhigh+0x30);
 436   1              write_lcd(lcddate,monthlow+0x30);
 437   1              write_lcd(lcdcommand,0x80+12);
 438   1              write_lcd(lcddate,dayhigh+0x30);
 439   1              write_lcd(lcddate,daylow+0x30);
 440   1              write_lcd(lcdcommand,0x80+0x40+5);
 441   1              write_lcd(lcddate,hourhigh+0x30);
 442   1              write_lcd(lcddate,hourlow+0x30);
 443   1              write_lcd(lcddate,0x30+10);//加上冒号
 444   1              write_lcd(lcdcommand,0x80+0x40+8);
 445   1              write_lcd(lcddate,minutehigh+0x30);
 446   1              write_lcd(lcddate,minutelow+0x30);
 447   1              write_lcd(lcddate,0x30+10);//加上冒号
 448   1          write_lcd(lcdcommand,0x80+0x40+11);
 449   1              write_lcd(lcddate,secondhigh+0x30);
 450   1              write_lcd(lcddate,secondlow+0x30);
 451   1      }
 452          void main()
 453          {
 454   1              initialize();
 455   1              timer0_initialize();
 456   1              while(1)//不加这一句while()循环,光标会一直在闪。
 457   1              {
 458   2                      calculate();
 459   2                      keyscan();
 460   2                      if(flag==0)
 461   2                      {
 462   3                              write_sfr();
 463   3                      }
 464   2              }
 465   1      
 466   1      }
 467          
 468          
 469                             


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1440    ----
   CONSTANT SIZE    =     12    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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