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

📄 lcdw.lst

📁 12864的万年历时钟加上红外遥控的校准
💻 LST
📖 第 1 页 / 共 2 页
字号:
 301          void xingqi()
 302          {
C51 COMPILER V9.00   LCDW                                                                  06/09/2013 14:34:38 PAGE 6   

 303   1              xq=n1+(n1/4)+(n2/4)-2*n2+(26*(yy+1)/10)+dd-1;
 304   1              xq=xq%7;
 305   1              switch(xq)
 306   1              {
 307   2                      case 1:xq=0;break;
 308   2                      case 2:xq=2;break;
 309   2                      case 3:xq=4;break;
 310   2                      case 4:xq=6;break;
 311   2                      case 5:xq=8;break;
 312   2                      case 6:xq=10;break;
 313   2                      case 0:xq=12;break;
 314   2                      default:break;
 315   2              }               
 316   1      }
 317          //
 318          void busy()                      //
 319          {
 320   1              rs=0;
 321   1              rw=1;
 322   1              ee=1;
 323   1              while(P0&0x80);
 324   1              ee=0;
 325   1      }
 326          //
 327          void write_order(uchar order1)    //
 328          {
 329   1              busy();
 330   1              rs=0;
 331   1              rw=0;
 332   1              ee=1;
 333   1              P0=order1;
 334   1              delay(100);
 335   1              ee=0;
 336   1      }
 337          //
 338          void write_data(uchar data1)    //
 339          {
 340   1              busy();
 341   1              rs=1;
 342   1              rw=0;
 343   1              ee=1;
 344   1              P0=data1;
 345   1              delay(100);
 346   1              ee=0;
 347   1      }
 348          //
 349          void bingxing()                   //
 350          {
 351   1              delay(4000);
 352   1              write_order(0x30);
 353   1              delay(100);
 354   1              write_order(0x30);
 355   1              delay(37);
 356   1              write_order(0x0c);
 357   1              delay(100);
 358   1              write_order(0x01);
 359   1              delay(10000);
 360   1              write_order(0x06);
 361   1      }
 362          //
 363          void in_ram()                   //
 364          {
C51 COMPILER V9.00   LCDW                                                                  06/09/2013 14:34:38 PAGE 7   

 365   1              uchar j;
 366   1              write_order(0x30);
 367   1              write_order(0x40);
 368   1              for(j=0;j<16;j++)
 369   1              {
 370   2                      write_data(table3[j*2]);
 371   2                      write_data(table3[j*2+1]);
 372   2              }
 373   1              write_order(0x50);
 374   1              for(j=0;j<16;j++)
 375   1              {
 376   2                      write_data(table4[j*2]);
 377   2                      write_data(table4[j*2+1]);
 378   2              }
 379   1              write_order(0x60);
 380   1              for(j=0;j<16;j++)
 381   1              {
 382   2                      write_data(table1[j*2]);
 383   2                      write_data(table1[j*2+1]);
 384   2              }
 385   1      /*      write_order(0x70);
 386   1              for(j=0;j<16;j++)
 387   1              {
 388   1                      write_data(table2[j*2]);
 389   1                      write_data(table2[j*2+1]);
 390   1              }*/
 391   1      }
 392          //
 393          
 394          void shijian()
 395          {
 396   1              write_order(0x81);
 397   1              for(num=0;num<11;num++)
 398   1              {
 399   2                      switch(num)
 400   2                      {
 401   3                              case 0:  
 402   3                                      write_data(time0[12]);
 403   3                                      break;  
 404   3                              case 1:  
 405   3                                      write_data(time0[caiji2(n2)]);
 406   3                                      break;
 407   3                              case 2:
 408   3                                      write_data(time0[caiji(n2)]);
 409   3                                      break;
 410   3                              case 3:
 411   3                                      write_data(time0[caiji2(n1)]);
 412   3                                      break;
 413   3                              case 4:
 414   3                                      write_data(time0[caiji(n1)]);
 415   3                                      break;
 416   3                              case 5:
 417   3                                      write_data(time0[10]);
 418   3                                      break;
 419   3                              case 6:
 420   3                                      write_data(time0[caiji2(yy)]);
 421   3                                      break;
 422   3                              case 7:
 423   3                                      write_data(time0[caiji(yy)]);
 424   3                                      break;  
 425   3                              case 8:
 426   3                                      write_data(time0[10]);
C51 COMPILER V9.00   LCDW                                                                  06/09/2013 14:34:38 PAGE 8   

 427   3                                      break;
 428   3                              case 9:
 429   3                                      write_data(time0[caiji2(dd)]);
 430   3                                      break;
 431   3                              case 10:
 432   3                                      write_data(time0[caiji(dd)]);
 433   3                                      break;
 434   3                              default:
 435   3                                      break; 
 436   3                      }
 437   2              }
 438   1              write_order(0x92);
 439   1              for(num=0;num<8;num++)
 440   1              {
 441   2                      switch(num)
 442   2                      {
 443   3                              case 0:  
 444   3                                      write_data(time0[caiji2(aa)]);
 445   3                                      break;
 446   3                              case 1:
 447   3                                      write_data(time0[caiji(aa)]);
 448   3                                      break;
 449   3                              case 2:
 450   3                                      write_data(time0[13]);
 451   3                                      break;
 452   3                              case 3:
 453   3                                      write_data(time0[caiji2(mm)]);
 454   3                                      break;
 455   3                              case 4:
 456   3                                      write_data(time0[caiji(mm)]);
 457   3                                      break;
 458   3                              case 5:
 459   3                                      write_data(time0[13]);
 460   3                                      break;
 461   3                              case 6:
 462   3                                      write_data(time0[caiji2(bb)]);
 463   3                                      break;  
 464   3                              case 7:
 465   3                                      write_data(time0[caiji(bb)]);
 466   3                                      break;
 467   3                              default:
 468   3                                      break; 
 469   3                       }
 470   2              }
 471   1              in_ram();
 472   1              write_order(0x88);
 473   1              for(num=0;num<16;num++)
 474   1              {
 475   2                      if(num<4)
 476   2                              write_data(tab3[num]);          
 477   2                      switch(num)
 478   2                      {
 479   3                              case 4:
 480   3                                      if(xq==4)
 481   3                                      {
 482   4                                              write_data(0x00);
 483   4                                              write_data(0x04);
 484   4                                      }
 485   3                                      else
 486   3                                              write_data(tab5[xq]);
 487   3                                      break;  
 488   3                              case 5:
C51 COMPILER V9.00   LCDW                                                                  06/09/2013 14:34:38 PAGE 9   

 489   3                                      if(xq==4)break;
 490   3                                      else
 491   3                                              write_data(tab5[xq+1]);
 492   3                                      break;  
 493   3                              case 6:
 494   3                                      write_data(time0[12]);
 495   3                                      break;
 496   3                              case 7:
 497   3                                      write_data(0x02);       
 498   3                                      break;  
 499   3                              case 8: 
 500   3                                      write_data(0x02);
 501   3                                      break;
 502   3                              case 9:  
 503   3                                      write_data(time0[ly_dis[0]]);
 504   3                                      break;
 505   3                              case 10:
 506   3                                      write_data(time0[ly_dis[1]]);
 507   3                                      break;
 508   3                              case 11:
 509   3                                      write_data(time0[ly_dis[2]]);
 510   3                                      break;
 511   3                              case 12:
 512   3                                      write_data(time0[11]);
 513   3                                      break;
 514   3                              case 13:
 515   3                                      write_data(time0[ly_dis[3]]);
 516   3                                      break;
 517   3                              default:
 518   3                                      break; 
 519   3                      }
 520   2              }
 521   1              write_order(0x8f);
 522   1              for(num=0;num<2;num++)
 523   1              {
 524   2                      write_data(tab4[num]);
 525   2              }                                                               
 526   1      }
 527          //
 528          void caidan()
 529          {
 530   1              write_order(0x81);
 531   1              for(k=0;k<12;k++)
 532   1              {
 533   2                      write_data(tab3[k+4]);
 534   2              }                                                                                                               
 535   1              write_order(0x92);
 536   1              for(k=0;k<8;k++)
 537   1              {
 538   2                      write_data(tab[k]);
 539   2              }
 540   1              write_order(0x8a);
 541   1              for(k=0;k<8;k++)
 542   1              {
 543   2                      write_data(tab2[k]);
 544   2              }
 545   1      }
 546          //
 547          void main()
 548          {
 549   1              bingxing();
 550   1              suspend();  //
C51 COMPILER V9.00   LCDW                                                                  06/09/2013 14:34:38 PAGE 10  

 551   1              while(1)
 552   1              {       
 553   2                      choose();
 554   2                      caidan();
 555   2                      in_ram();
 556   2                      write_order(0x9b);
 557   2                      write_data(0x00);
 558   2                      write_data(0x00);
 559   2                      write_order(0x9c);
 560   2                      write_data(0x00);
 561   2                      write_data(0x02);       
 562   2                      if(kai==1)
 563   2                      {
 564   3                              bingxing();
 565   3                              kai=0;
 566   3                              TR0=1;
 567   3                              while(1)
 568   3                              {
 569   4                                      choose();
 570   4                                      fuzhi();
 571   4                                      xingqi();
 572   4                                      wendu();
 573   4                                      shijian();
 574   4                                      if(kai==1)
 575   4                                      {
 576   5                                              TR0=0;
 577   5                                              break;
 578   5                                      }
 579   4                              }
 580   3                              bingxing();
 581   3                              kai=0;
 582   3                       } 
 583   2                      //
 584   2      /*              write_order(0x9a);
 585   2                      write_data(0x00);
 586   2                      write_data(0x04);
 587   2                      //
 588   2                      write_order(0x9b);
 589   2                      write_data(0x00);
 590   2                      write_data(0x06);       */
 591   2              }
 592   1      }
 593          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2718    ----
   CONSTANT SIZE    =    165    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     44    ----
   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 + -