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

📄 calendar.c

📁 电子万年历作为电子类小设计不仅是市场上的宠儿
💻 C
📖 第 1 页 / 共 3 页
字号:
                          month_p为月份指向,如果当年有闰月,一年有十三个月,月指向13,
                  无闰月指向12
                          */
                          flag_y=0;
                          flag2=get_moon_day(month_p,table_addr);
                          if(flag2==0)temp1=0x1d;
                          else temp1=0x1e;
                          while(temp3>temp1){
                              temp3-=temp1;
                              month_p-=1;
                              if(flag_y==0)month-=1;
                              if(month==temp2)flag_y=~flag_y;
                              flag2=get_moon_day(month_p,table_addr);
                              if(flag2==0)temp1=0x1d;
                              else temp1=0x1e;
                           }
                          day=temp1-temp3+1;
                      }
                      c_moon=c;                 //HEX->BCD ,运算结束后,把数据转换为BCD数据
                      temp1=year/10;
                      temp1=_crol_(temp1,4);
                      temp2=year%10;
                      year_moon=temp1|temp2;
                      temp1=month/10;
                      temp1=_crol_(temp1,4);
                      temp2=month%10;
                      month_moon=temp1|temp2;
                      temp1=day/10;
                      temp1=_crol_(temp1,4);
                      temp2=day%10;
                      day_moon=temp1|temp2;
                  }










/**********************节日信息表******************************/
 void west_festival(void)
 {
if ( mo == 0x01 && dd == 0x01 ){ lcm_w_word("Happy New Year!!"); }//1月
if (month_moon == 0x01 && day_moon == 0x01 ){ lcm_w_word("****新春快乐****"); }//1
if (month_moon == 0x01 && day_moon == 0x02 ){ lcm_w_word("****大年初二****"); }//1
if (month_moon == 0x01 && day_moon == 0x03 ){ lcm_w_word("****大年初叁****"); }//1
if (month_moon == 0x01 && day_moon == 0x15 ){ lcm_w_word("****元宵节******"); }//1
if ( mo == 0x01 && dd == 0x28 ){ lcm_w_word("**世界麻风日****"); }


if ( mo == 0x02 && dd == 0x02 ){ lcm_w_word("**世界湿地日****"); }//2月
if ( mo == 0x02 && dd == 0x13 ){ lcm_w_word("**明天情人节了**"); }
if ( mo == 0x02 && dd == 0x14 ){ lcm_w_word("**今天是情人节**"); }


if ( mo == 0x03 && dd == 0x01 ){ lcm_w_word("**国际海豹日****"); }//3月
if ( mo == 0x03 && dd == 0x03 ){ lcm_w_word("**全国爱耳日****"); }
if ( mo == 0x03 && dd == 0x08 ){ lcm_w_word("**3.8妇女节*****"); }
if ( mo == 0x03 && dd == 0x12 ){ lcm_w_word("****植树节******"); }
if ( mo == 0x03 && dd == 0x14 ){ lcm_w_word("**国际警察日****"); }
if ( mo == 0x03 && dd == 0x15 ){ lcm_w_word("**消费者权益日**"); }
if ( mo == 0x03 && dd == 0x17 ){ lcm_w_word("**国际航海日****"); }
if ( mo == 0x03 && dd == 0x21 ){ lcm_w_word("**世界森林日****"); }
if ( mo == 0x03 && dd == 0x22 ){ lcm_w_word("****世界水日****"); }
if ( mo == 0x03 && dd == 0x23 ){ lcm_w_word("**世界气象日****"); }
if ( mo == 0x03 && dd == 0x24 ){ lcm_w_word("世界防治结核病日"); }


if ( mo == 0x04 && dd == 0x01 ){ lcm_w_word("愚人节 小心上当"); }//4
if ( mo == 0x04 && dd == 0x07 ){ lcm_w_word("**世界卫生日****"); }
if ( mo == 0x04 && dd == 0x08 ){ lcm_w_word("****复活节******"); }
if ( mo == 0x04 && dd == 0x13 ){ lcm_w_word("**黑色星期五****"); }


if ( mo == 0x05 && dd == 0x01 ){ lcm_w_word("**劳动节  放假**"); }//5
if ( mo == 0x05 && dd == 0x04 ){ lcm_w_word("****青年节******"); }
if ( mo == 0x05 && dd == 0x08 ){ lcm_w_word("**世界红十字日**"); }
if ( mo == 0x05 && dd == 0x12 ){ lcm_w_word("**国际护士节****"); }
if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("近日注意母亲节  "); }
if ( mo == 0x05 && dd == 0x15 ){ lcm_w_word("**国际家庭日****"); }
if ( mo == 0x05 && dd == 0x31 ){ lcm_w_word("**世界无烟日****"); }
if (month_moon == 0x05 && day_moon == 0x05 ){ lcm_w_word("****端午节******"); }



if ( mo == 0x06 && dd == 0x01 ){ lcm_w_word("**国际儿童节****"); }//6
if ( mo == 0x06 && dd == 0x05 ){ lcm_w_word("**世界环境日****"); }
if ( mo == 0x06 && dd == 0x26 ){ lcm_w_word("**国际禁毒日****"); }
if ( mo == 0x06 && dd == 0x06 ){ lcm_w_word("**全国爱眼日****"); }
if ( mo == 0x06 && dd == 0x13 ){ lcm_w_word("近日注意父亲节  "); }
if ( mo == 0x06 && dd == 0x15 ){ lcm_w_word("近日注意父亲节  "); }
if ( mo == 0x07 && dd == 0x01 ){ lcm_w_word("香港回归记念日  "); }
if (month_moon == 0x07 && day_moon == 0x07 ){ lcm_w_word("**七夕情人节****"); }



if (month_moon == 0x07 && day_moon == 0x15 ){ lcm_w_word("****中国鬼节****");}//7
if ( mo == 0x07 && dd == 0x07 ){ lcm_w_word("抗日战争记念日  "); }
if ( mo == 0x07 && dd == 0x11 ){ lcm_w_word("**世界人口日****"); }


if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word("**八一建军节****"); }//8
if (month_moon == 0x08 && day_moon == 0x15 ){ lcm_w_word("****中秋节******");}
if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word("**中国男子节****"); }
if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗战胜利记念日 "); }


//if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("**中国教师节*★*"); }//9
if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("⊙●★☆■♀"); }
if (month_moon == 0x09 && day_moon == 0x09 ){ lcm_w_word("****重阳节******");}
if ( mo == 0x09 && dd == 0x10 ){ lcm_w_word("九·一八事变纪念"); }

if ( mo == 0x09 && dd == 0x20 ){ lcm_w_word("**国际爱牙日****"); }
if ( mo == 0x09 && dd == 0x27 ){ lcm_w_word("**世界旅游日****"); }


if ( mo == 0x10 && dd == 0x01 ){ lcm_w_word("**中国国庆节****"); }//10
if ( mo == 0x10 && dd == 0x04 ){ lcm_w_word("**世界动物日****"); }
if ( mo == 0x10 && dd == 0x24 ){ lcm_w_word("**联合国日******"); }
if ( mo == 0x10 && dd == 0x12 ){ lcm_w_word("明天国际教师节  "); }
if ( mo == 0x10 && dd == 0x13 ){ lcm_w_word("**国际教师节****"); }

if ( mo == 0x11 && dd == 0x10 ){ lcm_w_word("**世界青年节****"); }//11
if ( mo == 0x11 && dd == 0x17 ){ lcm_w_word("**世界学生节****"); }

if ( mo == 0x12 && dd == 0x01 ){ lcm_w_word("**世界艾滋病日**"); }//12
if ( mo == 0x12 && dd == 0x23 ){ lcm_w_word("**明晚平安夜****"); }
if ( mo == 0x12 && dd == 0x24 ){ lcm_w_word("**今晚平安夜****"); }
if ( mo == 0x12 && dd == 0x25 ){ lcm_w_word("****圣诞快乐****"); }
if ( mo == 0x12 && dd == 0x31 ){ lcm_w_word("**新年前一天****"); }
if (month_moon == 0x12 && day_moon == 0x30 ){ lcm_w_word("****大年30******");}
     else{
      if(hh<0x06&&hh>0x03){ lcm_w_word("      凌晨      "); }
      if(hh<0x11&&hh>0x06){ lcm_w_word("      早上      ");}
      if(hh<0x14&&hh>0x10){ lcm_w_word("      中午      ");}
      if(hh<0x17&&hh>0x13){lcm_w_word("      下午      ");}
      if(hh==0x17){ lcm_w_word("      傍晚      "); }
        else{ lcm_w_word("      晚上      "); }
       }
}
/*****************************************************/

/************************铃声**************************/





/**********************闹钟***********************/
  char t1_stat,t1_end;
  bit t2_stat,t2_end;
  bit t3_stat,t3_end;
  bit t4_stat,t4_end;
  bit t5_stat,t6_end;
  uchar t1_hh,t1_mm,t1_ss;


 /***************初始化**********************/

  void sys_init()
 {
   lcdinit();
   Init_1302();
   Init_DS18B20();

 }
/****************************************************/

  void main() {


         uint i,d,set=0,mod=0;
         uchar a,b,c;
         sys_init();

       while(1){
                  P3^1==0;
       read_clockS();



       if(KEY_1==0){
          if(KEY_1==0){
       delay1ms(1000);
         mod++;
         }
           if(mod==4){
              mod=0;
              }
              }


          if(mod==0)
          { if(mod==0){
       if(KEY_2==0){
          if(KEY_2==0){
       delay1ms(400);
         set++;
         }
           if(set==8){
              set=0;
              }
              }
         }


          Set_time(set);
          switch(set){
          case 0: set_pos(0,0); lcm_w_word("[Dis] ");
                  set_pos(5,0); lcm_w_word(" [Set]");
                  break;
          case 1: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整年份");
                  set_pos(4,0);lcm_w_word("  ");
                  delay1ms(600);
                  break;
          case 2: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整月份");
                  set_pos(0,1);lcm_w_word("  ");
                  delay1ms(600);
                  break;

          case 3: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整日期");
                  set_pos(2,1);lcm_w_word("  ");
                  delay1ms(600);
                  break;
          case 4: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整星期");
                  set_pos(7,1);lcm_w_word("  ");
                  delay1ms(600);
                  break;
          case 5: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整小时");
                  set_pos(0,2);lcm_w_word("  ");
                  delay1ms(600);
                  break;

          case 6: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                 lcm_w_word("调整分钟");
                 set_pos(1,2); lcm_w_word(":");lcm_w_word("  ");
                 delay1ms(600);
                  break;
          case 7: set_pos(0,0); lcm_w_word("[Esc] ");
                  set_pos(5,0); lcm_w_word("[Next]");
                  set_pos(2,3);
                  lcm_w_word("调整秒针");
                  set_pos(3,2);lcm_w_word("  ");
                  delay1ms(600);
                  break;
            }
    //set_pos(2,3); lcm_w_word("调整分钟");
                  //lcm_w_word("农历");
      if(set==0){
      set_pos(0,3);
      west_festival();
      }

       else{
        set_pos(0,3); lcm_w_word("[+] ");
        set_pos(6,3); lcm_w_word(" [-]");
     }

     set_pos(3,0); lcm_w_word("20");write(1,yy/16+48);write(1,yy%16+48);

     set_pos(0,1);write(1,mo/16+48);write(1,mo%16+48);lcm_w_word("月");

     set_pos(2,1);write(1,dd/16+48);write(1,dd%16+48);lcm_w_word("日  ");

     set_pos(5,1);
     switch(xq){
      case 1:lcm_w_word("星期一"); break;
      case 2:lcm_w_word("星期二"); break;
      case 3:lcm_w_word("星期叁"); break;
      case 4:lcm_w_word("星期四"); break;
      case 5:lcm_w_word("星期五"); break;
      case 6:lcm_w_word("星期六"); break;
      case 7:lcm_w_word("星期日"); break;
     }
      set_pos(0,2);
      write(1,hh/16+48);write(1,hh%16+48); lcm_w_word(":");
      write(1,mm/16+48);write(1,mm%16+48); lcm_w_word(":");
      write(1,ss/16+48);write(1,ss%16+48); lcm_w_word("  ");

       i= ReadTemperature();
       set_pos(5,2);
       lcm_w_word(" ");write(1,i/10+48);write(1,i%10+48); write(1,0x60); write(1,0x43);lcm_w_word(" ");
      }


      //显示农历转化


         if(mod==2){
                delay1ms(1000);
                if(mod==2){
         disp_message(); }
         }


          if(mod==1){
           delay1ms(1000);
           if(mod==1){
          Conversion(0,yy,mo,dd);

     set_pos(3,0); lcm_w_word("20");write(1,year_moon/16+48);write(1,year_moon%16+48);

     set_pos(0,1);write(1,month_moon/16+48);write(1,month_moon%16+48);lcm_w_word("月");

     set_pos(2,1);write(1,day_moon/16+48);write(1,day_moon%16+48);lcm_w_word("日");

       set_pos(5,1);
      switch(xq){
      case 1:lcm_w_word("星期一"); break;
      case 2:lcm_w_word("星期二"); break;
      case 3:lcm_w_word("星期叁"); break;
      case 4:lcm_w_word("星期四"); break;
      case 5:lcm_w_word("星期五"); break;
      case 6:lcm_w_word("星期六"); break;
      case 7:lcm_w_word("星期日"); break;
     }

      set_pos(0,2);
      write(1,hh/16+48);write(1,hh%16+48); lcm_w_word(":");
      write(1,mm/16+48);write(1,mm%16+48); lcm_w_word(":");
      write(1,ss/16+48);write(1,ss%16+48); lcm_w_word("  ");

       i= ReadTemperature();
       set_pos(5,2);
       lcm_w_word(" ");write(1,i/10+48);write(1,i%10+48); write(1,0x60); write(1,0x43);

        set_pos(0,3); lcm_w_word("****中国农历****");
         }
         }
          t1_hh=0x00; t1_mm=0x00;
          if(mod==3){

           if(~KEY_3){t1_stat=1;}set_pos(0,3); bz=0; lcm_w_word("  闹钟 1:");lcm_w_word("开      ");

           if(~KEY_4){t1_stat=0;}set_pos(0,3); bz=1; lcm_w_word("  闹钟 1:");lcm_w_word("关      ");

          }


             if(t1_stat=0){
             if(t1_hh==hh&&t1_mm==mm){ bz=0;}
                     else
                      bz=1;
                      }



      }

 }


⌨️ 快捷键说明

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