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

📄 youbing.lst

📁 基于80S52控制的12864液晶显示万年历程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
             -]%16)/8)*16+abs((d[i][j]%8)/4)*32+abs((d[i][j]%4)/2)*64+abs(d[i][j]%2)*128;
 614   3         Data=temp;
 615   3         p_e=1;
 616   3         p_e=0;
 617   3       }  
 618   2      }
 619   1      }
 620          ///****清屏***//
 621          void clear()
 622          {
 623   1        unsigned char i,j;
 624   1        for(i=0;i<8;i++)
 625   1          for(j=0;j<128;j++)
 626   1          writedata(i,j);
 627   1      }
 628          
 629          //*******设定清屏********
 630          
 631          void clearset(unsigned x,unsigned y)
 632          {
 633   1        unsigned char i,j;
 634   1        for(i=x;i<x+2;i++)
 635   1          for(j=y;j<y+16;j++)
 636   1          writedata(i,j);
 637   1      }
 638          
 639          ///***主函数****///
 640          void main(void)
 641          { 
 642   1        unsigned char m,n;
 643   1       
 644   1          IE = 0x8f;                                                  //CPU开中断,INT0,INT1,Timer0开中断
 645   1              IP = 0x04;                                                      //设置INT0为中断最高优先级
 646   1              IT0=1;IT1=1;                                            //外部INT0,IT1设置为边沿触发方式
 647   1              TMOD = 0x11;                                            //Timer0工作于模式1, 16位定时方式
 648   1              TH0 = 0xdc;
 649   1              TL0 = 0x00;                             //Timer0置10ms定时初值          
 650   1              TR0 = 1;
 651   1       
 652   1               Init();
 653   1              display(m,n);
 654   1              delay(1500);    
 655   1          clear();
 656   1        while(1)
 657   1       {
 658   2        keyhangdle();
 659   2        pro_timedate();
 660   2        timedisplay();
 661   2       
 662   2        }
 663   1       }
 664          
 665          
 666          
 667          
 668          
 669          
 670          
C51 COMPILER V7.01  YOUBING                                                                12/27/2006 14:57:19 PAGE 12  

 671          
 672          void display(unsigned char k,unsigned char j)
 673          {
 674   1         //if(m==0)
 675   1        // {
 676   1      /****第一屏****/
 677   1          clear();
 678   1          busy();
 679   1          writeword1(1,32,huang);//
 680   1          writeword1(1,48,ying);//
 681   1          writeword1(1,64,guang);//
 682   1              writeword1(1,80,lin);//
 683   1          
 684   1      
 685   1              writeword2(3,0,w);//
 686   1          writeword2(3,8,w);//
 687   1          writeword2(3,16,w);//
 688   1              writeword2(3,24,diang);//
 689   1          writeword2(3,32,y);//
 690   1              writeword2(3,40,O);//
 691   1          writeword2(3,48,u);//
 692   1          writeword2(3,56,b);//
 693   1          writeword2(3,64,i);//
 694   1              writeword2(3,72,n);//
 695   1              writeword2(3,80,g);//
 696   1              writeword2(3,88,diang);//
 697   1              writeword2(3,96,c);//
 698   1              writeword2(3,104,O);//
 699   1              writeword2(3,112,m);//
 700   1      
 701   1          writeword1(5,0,bang);//
 702   1              writeword1(5,16,quan);//
 703   1          writeword1(5,32,suo);//
 704   1              writeword1(5,48,you1);//
 705   1          writeword1(5,64,maohao);//
 706   1              writeword1(5,80,zhang);//
 707   1              writeword1(5,96,you);//
 708   1              writeword1(5,112,ming);//
 709   1      
 710   1              delay(150);
 711   1      }
*** WARNING C280 IN LINE 672 OF YOUBING.C: 'k': unreferenced local variable
*** WARNING C280 IN LINE 672 OF YOUBING.C: 'j': unreferenced local variable
 712          
 713          //**************日历画面***************//
 714                
 715           void timedisplay()
 716          {
 717   1      
 718   1       unsigned char year1,year2,year3,year4,month1,month2,day1,day2;
 719   1       unsigned char hour1,hour2,min1,min2,sec1,sec2;
 720   1      
 721   1       //******时间处理**********//
 722   1      
 723   1       //年//
 724   1        
 725   1        year1=year/1000;
 726   1        year2=(year-year1*1000)/100;
 727   1        year3=(year-year1*1000-year2*100)/10;
 728   1        year4=(year-year1*1000-year2*100)%10;
 729   1       //月//
 730   1        month1=month/10;
C51 COMPILER V7.01  YOUBING                                                                12/27/2006 14:57:19 PAGE 13  

 731   1        month2=month%10;
 732   1       //日//
 733   1        day1=day/10;
 734   1        day2=day%10;
 735   1      
 736   1       //时//
 737   1        hour1=hour/10;
 738   1        hour2=hour%10;
 739   1       //分//
 740   1       min1=min/10;
 741   1       min2=min%10;
 742   1       //秒//
 743   1       sec1=sec/10;
 744   1       sec2=sec%10;
 745   1      
 746   1        writeword1(0,32,nian);//
 747   1        writeword1(0,64,yue);//
 748   1        writeword1(0,96,ri);//
 749   1       
 750   1        writeword1(2,48,shi);//
 751   1        writeword1(2,80,fen);//
 752   1        writeword1(2,112,miao);//
 753   1      //年//
 754   1        writeword2(0,0,BMP[year1]);//
 755   1        writeword2(0,8,BMP[year2]);//
 756   1        writeword2(0,16,BMP[year3]);//
 757   1        writeword2(0,24,BMP[year4]);//
 758   1      //月//
 759   1        writeword2(0,48,BMP[month1]);//
 760   1        writeword2(0,56,BMP[month2]);//
 761   1       //日//
 762   1        writeword2(0,80,BMP[day1]);//
 763   1        writeword2(0,88,BMP[day2]);//
 764   1      
 765   1       //图标//
 766   1        writeword1(2,adr,shu2);//
 767   1       
 768   1      //时//
 769   1        writeword2(2,32,BMP[hour1]);//
 770   1        writeword2(2,40,BMP[hour2]);//
 771   1      //分//
 772   1        writeword2(2,64,BMP[min1]);//
 773   1        writeword2(2,72,BMP[min2]);//
 774   1       //秒//
 775   1        writeword2(2,96,BMP[sec1]);//
 776   1        writeword2(2,104,BMP[sec2]);//
 777   1       //************kuang*********
 778   1         writeword1(4,0,niankf);//
 779   1         writeword1(4,24,ji);//吉
 780   1         writeword1(4,48,yuekf);//
 781   1         writeword1(4,72,ru);//如
 782   1         writeword1(4,96,rikf);//
 783   1      
 784   1         writeword1(6,0,shikf);//
 785   1         writeword1(6,24,xiang);//祥
 786   1         writeword1(6,48,fenkf);//
 787   1         writeword1(6,72,yi);//意
 788   1         writeword1(6,96,niank1f);//
 789   1      //********图标2*********
 790   1        
 791   1       // delay(50);
 792   1        clearset(2,adr);
C51 COMPILER V7.01  YOUBING                                                                12/27/2006 14:57:19 PAGE 14  

 793   1        flag=-flag;
 794   1        if(flag==-1) {adr=16,writeword1(2,adr,shu1);}
 795   1        else adr=0;
 796   1        
 797   1      }
 798          
 799          void timer0() interrupt 1 
 800          {
 801   1              TH0=0xdc;                       //Timer0置10ms定时初值dc00H(ffffH=65535D,dc00H=56320D)
 802   1              TL0=0x00;                       //定时时间=(65535-56320)*(1/11.0592)*12=10ms (f0=11.0592Mhz)
 803   1              sec100++;
 804   1              if(sec100 >= 100)       //1秒时间 (100*10ms=1000ms=1s)
 805   1                      {
 806   2                      sec100 = 0;
 807   2                      sec++;
 808   2                      // pro_timedate();//调用时间和日期处理程序
 809   2                      }
 810   1      
 811   1      }
 812          
 813          //时间和日期处理程序
 814          void pro_timedate()
 815          {       
 816   1      
 817   1              if(sec > 59)
 818   1                      {sec = 0;
 819   2                       min++;}
 820   1      
 821   1                       if(min>59)
 822   1                              {min=0;
 823   2                               hour++;}
 824   1      
 825   1                               if(hour>23)
 826   1                                      {hour=0;
 827   2                                       week++;
 828   2                                       if (week>6) week=1;
 829   2                                       day++;}
 830   1      
 831   1                                       if (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
 832   1                                               if (day>31) {day=1;month++;}                                   //大月31天
 833   1                                       if (month==4||month==6||month==9||month==11)           
 834   1                                               if (day>30) {day=1;month++;}                                   //小月30天
 835   1                                       if (month==2)                  
 836   1                                               {if((year%4==0 && year%100!=0)||year%400==0)   //闰年的条件
 837   2                                                      {if (day>29) {day=1;month++;}}                          //闰年2月为29天
 838   2                                               else
 839   2                                                      {if (day>28) {day=1;month++;}}                          //平年2月为28天 
 840   2                                               }                              
 841   1                                      if (month>12) {month=1;year++;}
 842   1                                      
 843   1                              
 844   1                      
 845   1      }
 846          //***************8按键处理**************
 847           void  keyhangdle()
 848          {
 849   1                 if(yearup==0)
 850   1                  {
 851   2                        delay(5);
 852   2                        if(yearup==0) 
 853   2                         {
 854   3                           writeword1(4,0,niank);//
C51 COMPILER V7.01  YOUBING                                                                12/27/2006 14:57:19 PAGE 15  

 855   3                            year++;  
 856   3                       }
 857   2               }
 858   1                       else if(monthup==0)
 859   1                            {
 860   2                                  delay(5);
 861   2                                  if(monthup==0)
 862   2                                        {
 863   3                                           writeword1(4,48,yuek);//
 864   3                                               month++;
 865   3                                         }
 866   2                                      }
 867   1                              else if(dayup==0)
 868   1                                           {
 869   2                                                 delay(5);
 870   2                                                 if(dayup==0)
 871   2                                                   {
 872   3                                                        
 873   3                                                          writeword1(4,96,rik);//
 874   3                                                              day++;
 875   3                                                        }
 876   2                                                }
 877   1                                              else if(hourup==0)
 878   1                                                   {
 879   2                                                           delay(5);
 880   2                                                                if(hourup==0)
 881   2                                                       {
 882   3                                                               
 883   3                                                            writeword1(6,0,shik);//
 884   3                                                                hour++;
 885   3                                                            }
 886   2                                                         }
 887   1                                                        else if(minup==0)
 888   1                                                            {
 889   2                                                                  delay(5);
 890   2                                                                      if(minup==0)
 891   2                                                          {
 892   3                                                                writeword1(6,48,fenk);//
 893   3                                                                    min++;
 894   3                                                               }
 895   2                                                                 }
 896   1                                                               else if(yeardown==0)
 897   1                                                                 {
 898   2                                                                            delay(5);
 899   2                                                                        if(yeardown==0)
 900   2                                                            {
 901   3                                                                  writeword1(6,96,niank1);//
 902   3                                                                      year--;
 903   3                                                                 }
 904   2                                                             }
 905   1              
 906   1      }                        


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3278    ----
   CONSTANT SIZE    =   1664    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     43      42
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.01  YOUBING                                                                12/27/2006 14:57:19 PAGE 16  

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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