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

📄 lcm_t.lst

📁 多功能lcd电子钟 包含世界节日
💻 LST
📖 第 1 页 / 共 3 页
字号:
 469   1              //}
 470   1      }
 471          /*****************************************************************************/
 472          //向LCM中填写 日 数据
 473          void lcm_w_dd(void){
 474   1      //      if(read_clock(0x87) != dd){
 475   1                      dd = read_clock(0x87);
 476   1                      lcm_w_test(0,0x92);
 477   1                              if(dd/16 != 0){lcm_w_test(1,(dd/16)+0x30);}     //十位消隐
 478   1                              else{lcm_w_test(1,0x20);}//同上 
 479   1                      lcm_w_test(1,dd%16+0x30);
 480   1                      lcm_w_test(0,0x93);
 481   1                      lcm_w_word("日  ");
 482   1                                      
 483   1      }       //}
 484          /*****************************************************************************/
 485          //向LCM中填写 小时 数据
 486          void lcm_w_hh(void){
 487   1              if(read_clock(0x85) != hh){
 488   2                      hh = read_clock(0x85);
C51 COMPILER V7.50   LCM_T                                                                 12/08/2007 10:11:44 PAGE 9   

 489   2                              if (hh > 0x07 && hh < 0x22 && w == 0){
 490   3                                      beep = 0; led_r = 0;
 491   3                                      DelayM(100);
 492   3                                      beep = 1; led_r = 1;
 493   3                              }
 494   2                      }
 495   1                      lcm_w_test(0,0x88);
 496   1                      lcm_w_test(1,(hh/16)+0x30);
 497   1                      lcm_w_test(1,hh%16+0x30);
 498   1                                      
 499   1      }       //}
 500          /*****************************************************************************/
 501          //向LCM中填写 分钟 数据
 502          void lcm_w_mm(void){
 503   1              if(read_clock(0x83) != mm){             
 504   2                      mm = read_clock(0x83);
 505   2                      if( w == 0){                            
 506   3                              days();    //节日显示
*** WARNING C209 IN LINE 506 OF LCM_T.C: '_days': too few actual parameters
 507   3                              updata ();      //刷新数据
 508   3                      }                               
 509   2              }
 510   1              lcm_w_test(0,0x89);     
 511   1              lcm_w_test(1,0x3a);       //":"
 512   1              lcm_w_test(1,(mm/16)+0x30);
 513   1              lcm_w_test(1,mm%16+0x30);
 514   1              lcm_w_test(1,0x2e);      //"."  
 515   1      }
 516          /*****************************************************************************/
 517          //刷新数据
 518          void updata (void){
 519   1                      lcm_w_hh();//刷新 小时 
 520   1                      lcm_w_dd();//刷新 日
 521   1                      lcm_w_xq();//更新星期值 
 522   1                      lcm_w_mo();//刷新 月
 523   1                      lcm_w_yy();//刷新 年
 524   1                      
 525   1      }
 526          /*****************************************************************************/
 527          //向LCM中填写 秒 数据
 528          void lcm_w_ss(void){
 529   1              unsigned int i=0;
 530   1              unsigned char a=0,b=0,c=0;
 531   1              if(read_clock(0x81) != ss){     //判断是否需要更新
 532   2                      ss = read_clock(0x81);  //更新数据
 533   2                      lcm_w_test(0,0x8b);             //秒值在LCM上的写入位置
 534   2                      lcm_w_test(1,(ss/16)+0x30);     //写十位                
 535   2                      lcm_w_test(1,ss%16+0x30);       //写个位
 536   2                      led_b = ~led_b;                         //背光闪烁
 537   2                      lcm_w_mm();//刷新 分            
 538   2              lcm_w_test(0,0x8d);             //温度在LCM上的写入位置         
 539   2              i=ReadTemperature();//读温度并送显
 540   2              a=i/100;
 541   2              lcm_w_test(1,a+0x30);   //显示温度十位
 542   2              b=i/10-a*10;
 543   2              lcm_w_test(1,b+0x30);   //个位
 544   2              lcm_w_test(1,0x2e);      //"."
 545   2              c=i-a*100-b*10;
 546   2              lcm_w_test(1,c+0x30); //小位1位         
 547   2              lcm_w_word("℃");       //度C
 548   2      }       }
 549          /*****************************************************************************/
C51 COMPILER V7.50   LCM_T                                                                 12/08/2007 10:11:44 PAGE 10  

 550          //---主程序---//
 551          
 552          main() {
 553   1              
 554   1              unsigned char e=0;
 555   1              KEY_I = 0;KEY_1 = 1;KEY_2 = 1;KEY_3 = 1;KEY_4 = 1;//初始键盘
 556   1              yy=0xff;mo=0xff;dd=0xff;xq=0xff;hh=0xff;mm=0xff;ss=0xff; //各数据刷新
 557   1                      beep = 0;
 558   1                      DelayM(900);
 559   1                      beep = 1;
 560   1              lcm_init();//初始化液晶显示器
 561   1              lcm_clr();//清屏
 562   1              lcm_w_word("  12864LcdClock                  Hello !!       from DoYoung.net");//显示欢迎字
 563   1              //----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺
 564   1              DelayM(3000); //显示等留3秒
 565   1              //lcm_w_test(0,0x80);
 566   1              //lcm_w_word("[Dis]      [Set]");
 567   1      
 568   1      while(1){
 569   2                      if (w == 0){   //正常走时
 570   3                      lcm_w_ss();//刷新 秒
 571   3                      }
 572   2                      else {          //启动调时
 573   3      
 574   3      
 575   3                      }
 576   2      
 577   2                      //------------------------------------------------------------------
 578   2                      if (KEY_3 == 0) // 设置时间
 579   2              {
 580   3                      DelayM(20);        //去抖
 581   3                              led_g3 = 0;led_r = 1;
 582   3                              if(KEY_3 == 0 && w == 1)  //当是调时状态 本键用于调整下一项
 583   3                              {
 584   4                                      e++;
 585   4                                      if (e >= 6 ){e = 0;}
 586   4                                      Set_time(e);//调整                              
 587   4                              }
 588   3                              
 589   3                              if(KEY_3 == 0 && w == 0)  //当是正常状态时就进入调时状态
 590   3                              {
 591   4                                      led_b = 1;//
 592   4                                      lcm_clr();//清屏
 593   4                                      //yy=0xff;mo=0xff;dd=0xff;xq=0xff;hh=0xff;mm=0xff;ss=0xff; //各数据刷新
 594   4                                      w=1;      //进入调时                            
 595   4                                      lcm_w_test(0,0x9e);
 596   4                                      lcm_w_word(" [-]");
 597   4                                      lcm_w_test(0,0x80);
 598   4                                      lcm_w_word("[Esc]");
 599   4                                      lcm_w_test(0,0x85);
 600   4                                      lcm_w_word("[Next]");
 601   4                                      lcm_w_test(0,0x98);
 602   4                                      lcm_w_word("[+]");
 603   4                                      Set_time(e);//调整
 604   4                              }
 605   3                      while(KEY_3 == 0);//等待键松开 
 606   3                              led_g3 = 1; led_r = 0;//红灯亮,表示调时  
 607   3              }
 608   2      
 609   2                      //------------------------------------------------------------------
 610   2                      if (KEY_1 == 0) // 当在调时状态时就退出调时
 611   2              {
C51 COMPILER V7.50   LCM_T                                                                 12/08/2007 10:11:44 PAGE 11  

 612   3                      DelayM(20);led_g1 = 0;led_r = 1;
 613   3                      if(KEY_1 == 0 && w == 1){                               
 614   4                                      w = 0;    //退出调时
 615   4                                      e = 0;          //“下一项”计数器清0                                                           
 616   4                              }
 617   3      
 618   3                              if(KEY_1 == 0 && w == 0){                               
 619   4                                      lcm_clr();//清屏
 620   4                                      lcm_w_test(0,0x80);
 621   4                                      lcm_w_word("  12864LcdClock V1.01 2006-11-26 Hello !!       from DoYoung.net");
 622   4                                      //----------|-------1-------|-------3-------|-------2-------|-------4-------|-----//标尺                                
 623   4                                      while(KEY_1 == 0);//等待键松开  
 624   4                              }
 625   3                                      lcm_clr();//清屏
 626   3                                      //lcm_w_word("[Dis]      [Set]");
 627   3                                      //yy=0xff;mo=0xff;dd=0xff;xq=0xff;hh=0xff;mm=0xff;ss=0xff; //各数据刷新                         
 628   3                                      days();    //节日显示
*** WARNING C209 IN LINE 628 OF LCM_T.C: '_days': too few actual parameters
 629   3                                      updata ();      //刷新数据
 630   3                                      lcm_w_mm();//刷新 分
 631   3                                      
 632   3      
 633   3                      while(KEY_1 == 0);//等待键松开  
 634   3                              led_g1 = 1; 
 635   3              }
 636   2      
 637   2                      //------------------------------------------------------------------
 638   2                      if (KEY_2 == 0 && w == 1){ // 加减调整{
 639   3                      DelayM(20);led_g2 = 0;led_r = 1;
 640   3                      if(KEY_2 == 0 && w == 1){                               
 641   4                                      Set_time(e);//调整
 642   4                              }
 643   3                      while(KEY_2 == 0);//等待键松开
 644   3                              led_g2 = 1; led_r = 0;   
 645   3              }
 646   2      
 647   2                      //------------------------------------------------------------------
 648   2                      if (KEY_4 == 0 && w == 1){ // 加减调整          
 649   3                      DelayM(20);     led_g4 = 0;led_r = 1;
 650   3                      if(KEY_4 == 0 && w == 1){                               
 651   4                                      Set_time(e);//调整
 652   4                              }
 653   3                      while(KEY_4 == 0);//等待键松开
 654   3                              led_g4 = 1; led_r = 0;   
 655   3              }
 656   2      
 657   2                 //------------------------------------------------------------------
 658   2                       if(KEY_1 == 1 && KEY_2 == 0 && KEY_3 == 1 && KEY_4 == 0){      //时钟初始化{
 659   3                              led_r = 0;
 660   3                              DelayM(3000);
 661   3                              led_r = 1;
 662   3                              if(KEY_1 == 0 && KEY_2 == 0&& KEY_3 == 1&& KEY_4 == 0){
 663   4                                      Init_1302();
 664   4                                      lcm_w_test(0,0x80);
 665   4                                      lcm_clr();//清屏
 666   4                                      lcm_w_word("初始化成功!    2007-1-1 00:00.0");
 667   4                                      //----------|-------1-------|-------3-------|   
 668   4                                      while(1);
 669   4                              }
 670   3                      }                       
 671   2      }       }
 672          
C51 COMPILER V7.50   LCM_T                                                                 12/08/2007 10:11:44 PAGE 12  

 673          /*****************************************************************************/
 674          /*
 675          //编程日志
 676          2007-02-10 修改为正式发布版。
 677          2007-01-26 用每分钟刷新数据,防止显示乱码。
 678          2006-11-30 
 679          2006-11-29 时钟主显示部分完成。
 680          2006-11-28 时钟驱动程序植入完成。
 681          2006-11-27 LCM驱动程序植入完成。
 682          2006-11-26 硬件制作完成。
 683          
 684          /*****************************************************************************/
 685          
 686          
 687          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3312    ----
   CONSTANT SIZE    =   1323    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10      25
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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