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

📄 lcd12864.lst

📁 12864液晶显示多功能电子时钟
💻 LST
📖 第 1 页 / 共 3 页
字号:
 602   3                      {
 603   4                              case 1: adjust_year();break;
 604   4                              case 2: adjust_mon(); break;
 605   4                              case 3: adjust_day(); break;
 606   4                              case 4: adjust_hour();break;
 607   4                              case 5: adjust_min(); break;
 608   4                              case 6: adjust_week(); break;
 609   4                              default:break;
 610   4                      }
 611   3              //      update();
 612   3                      while(KeyBR==0);
 613   3                      delay(1000);
C51 COMPILER V7.09   LCD12864                                                              11/27/2008 20:04:08 PAGE 11  

 614   3                      
 615   3              }
 616   2      
 617   2              if(KeyHR==0)
 618   2              {
 619   3                      delay(1000);
 620   3                      if(type==6)type=0;
 621   3                       type++;
 622   3                              if(type==1) {LCD_WriteStr(1,4,"[+] 调整年份 [-]");}
 623   3                          if(type==2) {LCD_WriteStr(1,4,"[+] 调整月份 [-]"); }
 624   3                              if(type==3) {LCD_WriteStr(1,4,"[+] 调整日份 [-]");}
 625   3                          if(type==4) {LCD_WriteStr(1,4,"[+] 调整小时 [-]");}
 626   3                              if(type==5) {LCD_WriteStr(1,4,"[+] 调整分钟 [-]"); }
 627   3                              if(type==6) {LCD_WriteStr(1,4,"[+] 调整星期 [-]"); }
 628   3                              
 629   3                  while(KeyHR==0);
 630   3                      delay(1000);
 631   3                      
 632   3                      
 633   3              }
 634   2      
 635   2      
 636   2              }
 637   1              adjust=1;
 638   1              type=0x01;
 639   1              LCD_WriteStr(1,1,"[Dis]      [Set]");
 640   1              year=BCD_Coverter(year);
 641   1              day=BCD_Coverter(day);
 642   1              hour=BCD_Coverter(hour);
 643   1              min=BCD_Coverter(min);
 644   1              sec=BCD_Coverter(sec);
 645   1              write_clocks();
 646   1              update();
 647   1      }
 648          
 649          void KeyCheck(void)
 650          {
 651   1      //      unsigned char temp;
 652   1              if(KeyHL==0) 
 653   1              {
 654   2                      delay(1000);
 655   2                      if(KeyHL==0) 
 656   2                      {
 657   3                              write_clock(0x8e,0x00);
 658   3                              write_clock(0x80,0x80);
 659   3                              write_clock(0x8e,0x80);
 660   3                              adjust_time();
 661   3                       }
 662   2              }
 663   1      }
 664          
 665                                  
 666          
 667          
 668          void LCD_Week(void)
 669          {
 670   1              switch(week)
 671   1              {
 672   2                      case 1:LCD_WriteStr(8,3,"一");break;
 673   2                      case 2:LCD_WriteStr(8,3,"二");break;
 674   2                      case 3:LCD_WriteStr(8,3,"三");break;
 675   2                      case 4:LCD_WriteStr(8,3,"四");break;
C51 COMPILER V7.09   LCD12864                                                              11/27/2008 20:04:08 PAGE 12  

 676   2                      case 5:LCD_WriteStr(8,3,"五");break;
 677   2                      case 6:LCD_WriteStr(8,3,"六");break;
 678   2                      case 7:LCD_WriteStr(8,3,"日");break;
 679   2               }
 680   1      }
 681          
 682          
 683            void days (viod)
 684                  {         //公历节日数据库
 685   1                      
 686   1                      unsigned char m=0;
 687   1      
 688   1                      if ( mon == 0x01 && day == 1 ){ LCD_WriteStr(1,4,"Happy New Year!!"); m=1;}//1月
 689   1                      if ( mon == 0x01 && day == 28 ){ LCD_WriteStr(1,4,"  世界麻风日    ");m=1; }
 690   1                      
 691   1                      if ( mon == 0x02 && day == 0x02 ){ LCD_WriteStr(1,4,"  世界湿地日    "); m=1;}//2月
 692   1                      if ( mon == 0x02 && day == 13 ){ LCD_WriteStr(1,4,"  明天情人节了  "); m=1;}            
 693   1                      if ( mon == 0x02 && day == 14 ){ LCD_WriteStr(1,4,"  今天是情人节  "); m=1;}
 694   1                                      
 695   1                      if ( mon == 0x03 && day == 0x01 ){ LCD_WriteStr(1,4,"  国际海豹日    "); m=1;}//3月             
 696   1                      if ( mon == 0x03 && day == 0x03 ){ LCD_WriteStr(1,4,"  全国爱耳日    "); m=1;}          
 697   1                      if ( mon == 0x03 && day == 0x08 ){ LCD_WriteStr(1,4,"   3.8妇女节    "); m=1;}          
 698   1                      if ( mon == 0x03 && day == 12 ){ LCD_WriteStr(1,4,"    植树节      "); m=1;}            
 699   1                      if ( mon == 0x03 && day == 14 ){ LCD_WriteStr(1,4,"  国际警察日    "); m=1;}            
 700   1                      if ( mon == 0x03 && day == 15 ){ LCD_WriteStr(1,4,"  消费者权益日  "); m=1;}            
 701   1                      if ( mon == 0x03 && day == 17 ){ LCD_WriteStr(1,4,"  国际航海日    "); m=1;}            
 702   1                      if ( mon == 0x03 && day == 21 ){ LCD_WriteStr(1,4,"  世界森林日    "); m=1;}            
 703   1                      if ( mon == 0x03 && day == 22 ){ LCD_WriteStr(1,4,"    世界水日    "); m=1;}            
 704   1                      if ( mon == 0x03 && day == 23 ){ LCD_WriteStr(1,4,"  世界气象日    "); m=1;}            
 705   1                      if ( mon == 0x03 && day == 24 ){ LCD_WriteStr(1,4,"世界防治结核病日"); m=1;}
 706   1                                      
 707   1                      if ( mon == 0x04 && day == 0x01 ){ LCD_WriteStr(1,4,"愚人节  小心上当"); m=1;}//4               
 708   1                      if ( mon == 0x04 && day == 0x07 ){ LCD_WriteStr(1,4,"  世界卫生日    ");m=1; }          
 709   1                      if ( mon == 0x04 && day == 0x08 ){ LCD_WriteStr(1,4,"    复活节      ");m=1; }          
 710   1                      if ( mon == 0x04 && day == 13 ){ LCD_WriteStr(1,4,"  黑色星期五    ");m=1;}
 711   1                                      
 712   1                      if ( mon == 0x05 && day == 0x01 ){ LCD_WriteStr(1,4,"  劳动节  放假  "); m=1;}//5               
 713   1                      if ( mon == 0x05 && day == 4 ){ LCD_WriteStr(1,4,"    青年节      ");m=1;}              
 714   1                      if ( mon == 0x05 && day == 0x08 ){ LCD_WriteStr(1,4,"  世界红十字日  "); m=1;}          
 715   1                      if ( mon == 0x05 && day == 12 ){ LCD_WriteStr(1,4,"  国际护士节    "); m=1;}            
 716   1                      if ( mon == 0x05 && day == 0x05 ){ LCD_WriteStr(1,4,"近日注意母亲节  "); m=1;}          
 717   1                      if ( mon == 0x05 && day == 15 ){ LCD_WriteStr(1,4,"  国际家庭日    "); m=1;}
 718   1                      if ( mon == 0x05 && day == 31 ){ LCD_WriteStr(1,4,"  世界无烟日    ");m=1; }            
 719   1                                      
 720   1                      if ( mon == 0x06 && day == 0x01 ){ LCD_WriteStr(1,4,"  国际儿童节    "); m=1;}//6
 721   1                      if ( mon == 0x06 && day == 0x05 ){ LCD_WriteStr(1,4,"  世界环境日    "); m=1;}          
 722   1                      if ( mon == 0x06 && day == 26 ){ LCD_WriteStr(1,4,"  国际禁毒日    "); m=1;}            
 723   1                      if ( mon == 0x06 && day == 0x06 ){ LCD_WriteStr(1,4,"  全国爱眼日    "); m=1;}          
 724   1                      if ( mon == 0x06 && day == 13 ){ LCD_WriteStr(1,4,"近日注意父亲节  "); m=1;}
 725   1                      if ( mon == 0x06 && day == 15 ){ LCD_WriteStr(1,4,"近日注意父亲节  "); m=1;}
 726   1                                      
 727   1                      if ( mon == 0x07 && day == 0x01 ){ LCD_WriteStr(1,4,"香港回归记念日  ");m=1; }//7
 728   1                      if ( mon == 0x07 && day == 0x07 ){ LCD_WriteStr(1,4,"抗日战争记念日  "); m=1;}
 729   1                      if ( mon == 0x07 && day == 11 ){ LCD_WriteStr(1,4,"  世界人口日    "); m=1;}
 730   1      
 731   1                      if ( mon == 0x08 && day == 0x01 ){ LCD_WriteStr(1,4,"  八一建军节    "); m=1;}//8
 732   1                      if ( mon == 0x08 && day == 0x08 ){ LCD_WriteStr(1,4,"  中国男子节    "); m=1;}
 733   1                      if ( mon == 0x08 && day== 15 ){ LCD_WriteStr(1,4,"抗战胜利记念日  "); m=1;}
 734   1      
 735   1                      if ( mon == 0x09 && day == 10 ){ LCD_WriteStr(1,4,"  中国教师节    ");m=1; }//9
 736   1                      if ( mon == 0x09 && day == 18 ){LCD_WriteStr(1,4,"九·一八事变记念");m=1; }
 737   1                      if ( mon == 0x09 && day == 20 ){ LCD_WriteStr(1,4,"  国际爱牙日    "); m=1;}
C51 COMPILER V7.09   LCD12864                                                              11/27/2008 20:04:08 PAGE 13  

 738   1                      if ( mon == 0x09 && day == 27 ){ LCD_WriteStr(1,4,"  世界旅游日    "); m=1;}
 739   1      
 740   1                      if ( mon == 10 && day == 1 ){ LCD_WriteStr(1,4,"  中国国庆节    "); m=1;}//10
 741   1                      if ( mon == 10 && day == 4 ){ LCD_WriteStr(1,4,"  世界动物日    "); m=1;}
 742   1                      if ( mon == 10 && day == 24 ){ LCD_WriteStr(1,4,"    联合国日    "); m=1;}
 743   1                      if ( mon == 10 && day == 12 ){ LCD_WriteStr(1,4,"明天国际教师节  ");m=1; }
 744   1                      if ( mon == 10 && day == 13 ){ LCD_WriteStr(1,4,"  国际教师节    "); m=1;}
 745   1      
 746   1                      if ( mon == 11 && day == 10 ){ LCD_WriteStr(1,4,"  世界青年节    ");m=1; }//11
 747   1                      if ( mon == 11 && week == 4 && day >= 22 && day <= 28){ LCD_WriteStr(1,4,"  今天感恩节    ");m=1;}
 748   1                      if ( mon == 11 && day == 17 ){ LCD_WriteStr(1,4,"  世界学生节    "); m=1;}
 749   1      
 750   1                      if ( mon == 12 && day == 1 ){ LCD_WriteStr(1,4,"  世界艾滋病日  "); m=1;}//12
 751   1                      if ( mon == 12 && day == 23 ){ LCD_WriteStr(1,4,"  明晚平安夜    "); m=1;}
 752   1                      if ( mon == 12 && day == 24 ){ LCD_WriteStr(1,4,"  今晚平安夜    "); m=1;}
 753   1                      if ( mon == 12 && day == 25 ){ LCD_WriteStr(1,4,"    圣诞快乐    "); m=1;}
 754   1                      if ( mon == 12 && day == 31 ){ LCD_WriteStr(1,4,"    明日新年    "); m=1;}
 755   1      
 756   1                      if(m==0)
 757   1                      { 
 758   2                              if ( hour >= 0x04 && hour <  0x06 ){ LCD_WriteStr(1,4,"★★__▲▲__凌晨"); }
 759   2                              if ( hour >= 0x06 && hour <  0x08 ){ LCD_WriteStr(1,4,"☆○__▲△__早晨"); }
 760   2                              if ( hour >= 0x08 && hour <  12 ){ LCD_WriteStr(1,4,"__●__▲▲__上午"); }
 761   2                              if ( hour == 12)               { LCD_WriteStr(1,4,"____▲●▲__中午"); }
 762   2                              if ( hour >= 13 && hour <  18 ){ LCD_WriteStr(1,4,"__▲▲__●__下午"); }
 763   2                              if ( hour >= 18 && hour <  22 ){ LCD_WriteStr(1,4,"△▲__●☆__晚上"); }
 764   2                              if ( hour >= 22 && hour <= 23 ){ LCD_WriteStr(1,4,"△▲__★☆__夜里"); }
 765   2                              if ( hour >= 0x00 && hour <  0x04 ){ LCD_WriteStr(1,4,"__★▲▲★__深夜"); }
 766   2                      }
 767   1      }
 768          void update(void)
 769          {       
 770   1              unsigned char hour_temp;
 771   1              hour_temp=hour;
 772   1              read_clocks();
 773   1              if(hour_temp==23&&hour==4)
 774   1              {
 775   2                      write_clock(0x8e,0x00);
 776   2                      write_clock(0x84,0x00);
 777   2                      write_clock(0x8e,0x80);
 778   2               }
 779   1               read_clocks();
 780   1      //      year=read_clock(0x8d);
 781   1      //      if(0x00<=year&&year<=0x99)
 782   1      //      {
 783   1              LCD_WriteStr(4,1,"20");
 784   1              LCD_data((year/10)+0x30);
 785   1              LCD_data((year%10)+0x30);
 786   1      //      }
 787   1      //      mon=read_clock(0x89);
 788   1              //if(mon>=0x01&&mon<=0x12)
 789   1      //      {
 790   1              LCD_WriteData(5,2,mon/10+0x30);
 791   1              LCD_data(mon%10+0x30);
 792   1              LCD_WriteStr(6,2,"月");
 793   1      //      }
 794   1      
 795   1      //      day=read_clock(0x87);
 796   1      //      if(day>=0x00&&day<=0x31)
 797   1      //      {
 798   1              LCD_WriteData(7,2,day/10+0x30);
 799   1              LCD_data(day%10+0x30);
C51 COMPILER V7.09   LCD12864                                                              11/27/2008 20:04:08 PAGE 14  

 800   1              LCD_WriteStr(8,2,"日");
 801   1      //      }
 802   1              
 803   1      //      min=read_clock(0x83);
 804   1      //      hour=read_clock(0x85);
 805   1      //      hour=read_clock(0x85);
 806   1              
 807   1              
 808   1      //      if(hour>=0x00&&hour<=0x24)
 809   1      //      {
 810   1              LCD_WriteData(1,3,(hour/10)+0x30);
 811   1              LCD_data((hour%10)+0x30);
 812   1      //      }
 813   1      
 814   1              LCD_data(0x3a);
 815   1              
 816   1      
 817   1              
 818   1      //      if(min>=0x00&&min<=0x59)
 819   1      //      {
 820   1      
 821   1              LCD_data((min/10)+0x30);
 822   1              LCD_data((min%10)+0x30);
 823   1      //      }
 824   1      
 825   1              LCD_data(0x3a);
 826   1              LCD_WriteStr(6,3,"星期");
 827   1      //      week=read_clock(0x8b);
 828   1              LCD_Week();
 829   1              
 830   1      //      if(sec==0x00) update();
 831   1      //LCD_WriteData(4,3,(sec/16)+0x30);
 832   1      //      LCD_data((sec%16)+0x30);
 833   1              days();
*** WARNING C209 IN LINE 833 OF LCD12864.C: '_days': too few actual parameters
 834   1       }
 835                  
 836          void main()
 837          {
 838   1      
 839   1              LCD_init();
 840   1              init_1302();
 841   1              getTemValue();          //ds18b20初始化
 842   1      
 843   1        //EX0=1;              //开外部中断
 844   1      //      EA=1;
 845   1              power=1;
 846   1              LCD_WriteStr(1,1,"[Dis]      [Set]");
 847   1              
 848   1              update();
 849   1              while(1)
 850   1              {
 851   2              KeyCheck();
 852   2              sec=read_clock(0x81);
 853   2      
 854   2      //      if(0x00<=sec&&sec<=0x59)
 855   2      //      {
 856   2              if(sec==0x00) update();
 857   2              LCD_WriteData(4,3,(sec/10)+0x30);
 858   2              LCD_data((sec%10)+0x30);
 859   2      //      }
 860   2      
C51 COMPILER V7.09   LCD12864                                                              11/27/2008 20:04:08 PAGE 15  

 861   2      
 862   2      
 863   2              getTemValue();
 864   2              TEMP_BUFF[0]=TMPH/10+0x30;
 865   2              TEMP_BUFF[1]=TMPH%10+0x30;
 866   2              TEMP_BUFF[2]='.';
 867   2              TEMP_BUFF[3]=TMPL+0x30;
 868   2              TEMP_BUFF[4]='\0';
 869   2              LCD_WriteStr(1,2,&TEMP_BUFF);
 870   2              LCD_WriteStr(3,2,"℃");
 871   2              }
 872   1              
 873   1      }
 874          /*void  gas_int(void)  interrupt 0
 875          {
 876                  EX0 =0;
 877                  Beep = 0;
 878                  power = 1;
 879                  LCD_WriteStr(1,2,"   有煤气!   ");
 880                  delay(1000);
 881                  Beep = 1;
 882                  delay(1000);
 883                  EX0 = 1;
 884          }*/
 885          
 886          
 887          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3876    ----
   CONSTANT SIZE    =   1238    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     19      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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