📄 calendar.c
字号:
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 + -