找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 4945|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

我寫的萬年歷,

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:105263 發(fā)表于 2016-4-10 17:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 bsm5632 于 2016-4-10 21:49 編輯

     uint i;        if(sz==0)                         //設(shè)置健
        {
          i++;
        }

         if(i>=20000)
         {
                  i=0;
                  b++;
                  dat_bb[0]=b+0x30;
                 display_string_5x8(1,108,dat_bb);
         }
         if(b>=8)
         {
                  b=0;
         }

             if(b==1)                //設(shè)置秒+-
                  {
                        a++;
                         if(jia==0&&a>=6000)
                         {        a=0;
                                mnum++;
                                dat_mnum[0]=mnum/10+0x30;    // 存放秒十位的ASCII碼  
                                dat_mnum[1]=mnum%10+0x30;    // 存放秒個(gè)位的ASCII碼
                                display_GB2312_string(5,81,dat_mnum); //秒顯示


                         }
                         if(jian==0&&a>=6000&&mnum>=1)
                         {         a=0;
                                mnum--;
                                   dat_mnum[0]=mnum/10+0x30;    // 存放秒十位的ASCII碼  
                                dat_mnum[1]=mnum%10+0x30;    // 存放秒個(gè)位的ASCII碼
                                display_GB2312_string(5,81,dat_mnum);  //秒顯示

                         }
                  }                 
                   if(b==2)                  //設(shè)置分+-
                  {
                        a++;
                         if(jia==0&&a>=10000)
                         {        a=0;
                                fnum++;
                                dat_fnum[0]=fnum/10+0x30;    // 存放分十位的ASCII碼  
                                dat_fnum[1]=fnum%10+0x30;    // 存放分個(gè)位的ASCII碼
                                display_GB2312_string(5,49,dat_fnum);  //分顯示

                         }
                         if(jian==0&&a>=10000&&fnum>=1)
                         {         a=0;
                                fnum--;
                                   dat_fnum[0]=fnum/10+0x30;    // 存放分十位的ASCII碼  
                                dat_fnum[1]=fnum%10+0x30;    // 存放分個(gè)位的ASCII碼
                                display_GB2312_string(5,49,dat_fnum);  //分顯示

                         }
                  }                 
                         
                   if(b==3)                        //設(shè)置時(shí)+-
                  {
                        a++;
                         if(jia==0&&a>=15000)
                         {
                                a=0;
                                snum++;
                                dat_snum[0]=snum/10+0x30;    // 存放時(shí)十位的ASCII碼  
                                dat_snum[1]=snum%10+0x30;    // 存放時(shí)個(gè)位的ASCII碼
                            display_GB2312_string(5,17,dat_snum); //時(shí)顯示
                         }
                         if(jian==0&&a>=15000&&snum>=1)
                         {
                                a=0;
                                snum--;
                                   dat_snum[0]=snum/10+0x30;    // 存放時(shí)十位的ASCII碼  
                                dat_snum[1]=snum%10+0x30;    // 存放時(shí)個(gè)位的ASCII碼
                            display_GB2312_string(5,17,dat_snum);         //時(shí)顯示
                         }
                  }                 

                 if(b==4)                        //設(shè)置日+-
                  {       
                        a++;
                         if(jia==0&&a>=15000)
                         {
                                a=0;
                                tnum++;
                                dat_tnum[0]=tnum/10+0x30;    // 存放日十位的ASCII碼  
                                dat_tnum[1]=tnum%10+0x30;    // 存放日個(gè)位的ASCII碼
                                display_GB2312_string(3,81,dat_tnum);        //天顯示
                         }
                         if(jian==0&&a>=15000&&tnum>=1)
                         {
                                a=0;
                                tnum--;
                                   dat_tnum[0]=tnum/10+0x30;    // 存放日十位的ASCII碼  
                                dat_tnum[1]=tnum%10+0x30;    // 存放日個(gè)位的ASCII碼
                                display_GB2312_string(3,81,dat_tnum);        //天顯示
                         }
                  }                 

                  if(b==5)                           //設(shè)置月+-
                  {
                         a++;
                         if(jia==0&&a>=15000)
                         {
                                a=0;
                                ynum++;
                                dat_ynum[0]=ynum/10+0x30;    // 存放月十位的ASCII碼  
                    dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                                display_GB2312_string(3,49,dat_ynum);//月顯示
                         }
                         if(jian==0&&a>=15000&&ynum>=1)
                         {
                                a=0;
                                ynum--;
                                   dat_ynum[0]=ynum/10+0x30;    // 存放月十位的ASCII碼  
                    dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                                display_GB2312_string(3,49,dat_ynum);  //月顯示
                         }
                  }                 
                  if(b==6)                                   //設(shè)置年+-
                  {
                         a++;
                         if(jia==0&&a>=15000)
                         {
                                a=0;
                                nnum++;
                                dat_nnum[0]=nnum/10+0x30;    // 存放年十位的ASCII碼  
                            dat_nnum[1]=nnum%10+0x30;    // 存放年個(gè)位的ASCII碼
                            display_GB2312_string(3,17,dat_nnum);  //年顯示
                         }
                     if(jian==0&&a>=15000&&nnum>=1)
                         {
                                a=0;
                                nnum--;
                                   dat_nnum[0]=nnum/10+0x30;    // 存放年十位的ASCII碼  
                            dat_nnum[1]=nnum%10+0x30;    // 存放年個(gè)位的ASCII碼
                            display_GB2312_string(3,17,dat_nnum);         //年顯示
                         }
                  }                 

                 if(b==7)                                          //設(shè)置星期+-
                  {
                        a++;
                         if(jia==0&&a>=15000)
                         {
                                a=0;
                                xnum++;
                                 switch(xnum)
                                 {       
                                     case 8: if(xnum==8)xnum=1;display_GB2312_string(7,51,"一");break;                                         
                                          case 2: display_GB2312_string(7,51,"二");break;
                                          case 3: display_GB2312_string(7,51,"三");break;
                                          case 4: display_GB2312_string(7,51,"四");break;
                                          case 5: display_GB2312_string(7,51,"五");break;
                                          case 6: display_GB2312_string(7,51,"六");break;
                                          case 7: display_GB2312_string(7,51,"日");break;                                                         
                                 }
                         }
                         if(jian==0&&a>=15000&&xnum>=1)
                         {
                                a=0;
                                xnum--;
                                 switch(xnum)
                                 {       
                                     case 8: if(xnum==8)xnum=1;display_GB2312_string(7,51,"一");break;                                         
                                          case 2: display_GB2312_string(7,51,"二");break;
                                          case 3: display_GB2312_string(7,51,"三");break;
                                          case 4: display_GB2312_string(7,51,"四");break;
                                          case 5: display_GB2312_string(7,51,"五");break;
                                          case 6: display_GB2312_string(7,51,"六");break;
                                          case 7: display_GB2312_string(7,51,"日");break;                                                         
                                 }
                         }
                  }                 



                  //num4++在定時(shí)器中斷里
         if(num4>=1000)
         {
                 num4=0;
             mnum++;                           
                   dat_mnum[0]=mnum/10+0x30;    // 存放秒十位的ASCII碼  
                dat_mnum[1]=mnum%10+0x30;    // 存放秒個(gè)位的ASCII碼
                display_GB2312_string(5,81,dat_mnum);        //秒顯示

         }

           if(num4>=500)
         {
                 led=1;
          }
          else led=0;


        if(mnum>=60)
        {
                mnum=0;
                dat_mnum[0]=0+0x30;    // 存放秒十位的ASCII碼  
                dat_mnum[1]=0+0x30;    // 存放秒個(gè)位的ASCII碼
                display_GB2312_string(5,81,dat_mnum);        //秒顯示       
                fnum++;       
                dat_fnum[0]=fnum/10+0x30;    // 存放分十位的ASCII碼  
                 dat_fnum[1]=fnum%10+0x30;    // 存放分個(gè)位的ASCII碼
            display_GB2312_string(5,49,dat_fnum);        //秒顯示
               

        }
   if(fnum>=60)
        {
                fnum=0;
                dat_fnum[0]=0+0x30;    // 存放分十位的ASCII碼  
                dat_fnum[1]=fnum%10+0x30;    // 存放分個(gè)位的ASCII碼
                display_GB2312_string(5,49,dat_fnum); //分顯示
                snum++;
                dat_snum[0]=snum/10+0x30;    // 存放時(shí)十位的ASCII碼  
                dat_snum[1]=snum%10+0x30;    // 存放時(shí)個(gè)位的ASCII碼
            display_GB2312_string(5,17,dat_snum);          //分顯示
        }
        if(snum>=24)
        {

                snum=0;
                dat_snum[0]=0+0x30;    // 存放時(shí)十位的ASCII碼  
                dat_snum[1]=0+0x30;    // 存放時(shí)個(gè)位的ASCII碼
                display_GB2312_string(5,17,dat_snum);  //時(shí)顯示
                tnum++;                 
                xnum++;
            dat_tnum[0]=tnum/10+0x30;    // 存放日十位的ASCII碼  
                dat_tnum[1]=tnum%10+0x30;    // 存放日個(gè)位的ASCII碼
                display_GB2312_string(3,81,dat_tnum);         //時(shí)顯示
                 switch(xnum)
                 {         
                     case 8: if(xnum==8)xnum=1;display_GB2312_string(7,51,"一");break;
                          case 2: display_GB2312_string(7,51,"二");break;
                          case 3: display_GB2312_string(7,51,"三");break;
                          case 4: display_GB2312_string(7,51,"四");break;
                          case 5: display_GB2312_string(7,51,"五");break;
                          case 6: display_GB2312_string(7,51,"六");break;
                          case 7: display_GB2312_string(7,51,"日");break;                 //星期顯示                
                 }               
        }
   /**********************/

        if((ynum%2)&&(ynum<=7)         )           // 上半年單月
         {
           if(tnum>=32)
                 {
                       
                        tnum=1;
                        dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                    dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                        display_GB2312_string(3,81,dat_tnum);  //天顯示
                        ynum++;
                        dat_ynum[0]=0+0x30;    // 存放月十位的ASCII碼  
            dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                        display_GB2312_string(3,49,dat_ynum);  //月顯示
                 }
        }
        else                                         //上半年雙月
        {
                 if((ynum<=7))        //上半年 2月
                 {
                          if((nnum%4)%2)
                          {
                           if((ynum==2)&&(tnum>=29))          // 閏年的2月
                                  {
                                  
                                  tnum=1;
                                  dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                          dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                                  display_GB2312_string(3,81,dat_tnum);        //天顯示
                                  ynum++;
                                  dat_ynum[0]=0+0x30;    // 存放月十位的ASCII碼  
                  dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                                 display_GB2312_string(3,49,dat_ynum);        //月顯示
                                 }
                         }
                         else                                 
                         {
                           if((ynum==2)&&(tnum>=30))
                                  {
                                  
                                  tnum=1;
                                  dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                          dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                                  display_GB2312_string(3,81,dat_tnum);         //天顯示
                                  ynum++;
                                  dat_ynum[0]=0+0x30;    // 存放月十位的ASCII碼  
                  dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                                  display_GB2312_string(3,49,dat_ynum);         //月顯示
                                 }
                         
                         }
                    if(tnum>=31)
                         {                               
                                tnum=1;
                                dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                        dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                                display_GB2312_string(3,81,dat_tnum);//天顯示
                                ynum++;
                                dat_ynum[0]=0+0x30;    // 存放月十位的ASCII碼  
                dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                                display_GB2312_string(3,49,dat_ynum);        //月顯示
                         }                                                                                          
       
              }
   }
        if((ynum%2)&&(ynum>=8)         )        //下半年雙月
         {
           if(tnum>=31)
                 {
                        tnum=1;
                        dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                    dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                        display_GB2312_string(3,81,dat_tnum);  //天顯示
                        ynum++;
                    dat_ynum[0]=ynum/10+0x30;    // 存放月十位的ASCII碼  
            dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                        display_GB2312_string(3,49,dat_ynum);        //月顯示
                 }
        }
        else                                    //下半年單月
        {
        if(tnum>=32)
                 {
                        tnum=1;
                        dat_tnum[0]=0+0x30;    // 存放日十位的ASCII碼  
                    dat_tnum[1]=1+0x30;    // 存放日個(gè)位的ASCII碼
                        display_GB2312_string(3,81,dat_tnum);  //天顯示
                        ynum++;
                        dat_ynum[0]=ynum/10+0x30;    // 存放月十位的ASCII碼  
            dat_ynum[1]=ynum%10+0x30;    // 存放月個(gè)位的ASCII碼
                        display_GB2312_string(3,49,dat_ynum); //月顯示

                 }
   }

   if(ynum>=13)
         {
                  ynum=1;
                 dat_ynum[0]=0+0x30;    // 存放月十位的ASCII碼  
         dat_ynum[1]=1+0x30;    // 存放月個(gè)位的ASCII碼
                 display_GB2312_string(3,49,dat_ynum); //月顯示

                 nnum++;
                 dat_nnum[0]=nnum/10+0x30;    // 存放年十位的ASCII碼  
                 dat_nnum[1]=nnum%10+0x30;    // 存放年個(gè)位的ASCII碼
                  display_GB2312_string(3,17,dat_nnum);   //年顯示
         }

         if(nnum>=100)
         {
             nnum=0;
                 dat_nnum[0]=0+0x30;    // 存放年十位的ASCII碼  
                 dat_nnum[1]=0+0x30;    // 存放年個(gè)位的ASCII碼
                 display_GB2312_string(3,17,dat_nnum);                 //年顯示

                 bnnum++;
                 dat_bnnum[0]=bnnum/10+0x30;    // 存放年十位的ASCII碼  
                 dat_bnnum[1]=bnnum%10+0x30;    // 存放年個(gè)位的ASCII碼
                 display_GB2312_string(3,1,dat_bnnum);         //千百年顯示         
         }

         if(bnnum>=100)
         {
             bnnum=0;
                 dat_bnnum[0]=0+0x30;    // 存放年十位的ASCII碼  
                 dat_bnnum[1]=0+0x30;    // 存放年個(gè)位的ASCII碼
                 display_GB2312_string(3,1,dat_bnnum);         //千百年顯示
         }

單選投票, 共有 11 人參與投票
您所在的用戶組沒有投票權(quán)限
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:93569 發(fā)表于 2016-4-10 19:48 | 只看該作者
不要那么多IF語句,可以用switch語句代替。該精簡的要精簡,代碼要高效些。
回復(fù)

使用道具 舉報(bào)

板凳
ID:105263 發(fā)表于 2016-4-10 21:51 | 只看該作者
molubumo 發(fā)表于 2016-4-10 19:48
不要那么多IF語句,可以用switch語句代替。該精簡的要精簡,代碼要高效些。

星期已經(jīng)改成switch語句了,其他不方便改
回復(fù)

使用道具 舉報(bào)

地板
ID:156879 發(fā)表于 2016-12-22 15:52 | 只看該作者
看看
回復(fù)

使用道具 舉報(bào)

5#
ID:261274 發(fā)表于 2017-12-17 20:40 | 只看該作者
看看
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表