📄 rili.c
字号:
Gotoxy(1,3);Display_string("Make by:YangDeChu And PangJiHui");
Gotoxy(2,3);Display_string(" 0600320229 0600320222");
MDelay(60000);
for(i=20;i>0;i--)
{WriteC(0x18);
MDelay(65000);
}
for(i=20;i>0;i--)
{
WriteC(0x1c);
MDelay(65000);
}
MDelay(65000);
MDelay(65000);
Clock(); //....获取闹钟时间
//Music();
//BaoShi(10);
//while(1);
while(1)
{ Key();
//.............选择修改模式
switch(m)
{case 0:{f[0]=0;f[1]=0;f[2]=0;f[3]=0;f[4]=0;EX0=0;EX1=0;z=0;WriteC(0x0c);PrintDate();Gotoxy(1,0);Display_string("Date:");Print(GetDate); PrintTime();Delay(100);Gotoxy(2,14);Display_string(" ");break;}
case 1:{if(f[0]==0){EX0=1;EX1=1;SetT=0;f[0]=1;Gotoxy(1,0);Display_string("Change The Time!");Gotoxy(2,14);Display_string(" "); WriteC(0x0e);WriteC(0xc7);}
else if(SetT>2){SetT=0;WriteC(0xc7);} break;
}
case 2:{if(f[1]==0){EX0=1;EX1=1;SetT=0;f[1]=1;Gotoxy(1,0);Display_string("Change the clock!");Clock();Gotoxy(2,6);Print(Setclock);Gotoxy(2,14);Display_string(" "); WriteC(0x0e);WriteC(0xc7);}
else if(SetT>2){SetT=0;WriteC(0xc7);} break;
}
case 3:{if(f[2]==0){EX0=1;EX1=1;SetD=0;f[2]=1;Gotoxy(2,0);Display_string("Date:");Print(GetDate);Delay(100);Gotoxy(1,0);Display_string("Change The Date! "); WriteC(0x0e);WriteC(0xc6);}
else if(SetD>3){SetD=0;WriteC(0xc6);} break;
}
//..........娱乐模式
/*case 4:{if(f[3]==0){EX0=1;EX1=1;SetT=0;f[3]=1;ClearLCD();Gotoxy(1,0);Display_string(" play for fun ");;Gotoxy(2,0);MDelay(10000);Display_string(" Game1 Game2 ");WriteC(0x0e);WriteC(0xc3);}
else if(SetT>1){SetT=0;WriteC(0xc3);} break;
}*/
//............自动修改模式,若不用自动模式则把if(Auto==0)改为if(Auto==1)
/*case 5:{if(Auto==1){EX0=1;EX1=1;SetT=0;ClearLCD();Gotoxy(1,3);Display_string("Welcome to Auto-Mode");Gotoxy(2,4);Display_string("Prss key one to enter,key three exit");for(i=25;i>0;i--){WriteC(0x1c);MDelay(60000);}}
else {Auto=0;m=0;} //........第二次时执行次句回到正常模式0.
} break;*/
default:m=0;
} //...............注意:因为GetTime[i]、GetDate[i]都是字符且大于等于字符'0'的值48
//.....................所以修改时先变为零.若想不为零减去字符'0'即可
if(z)switch (m) //........if(Auto==0)z=0;用于判断是否为自动修改模式,若为则z一直等于1直到修改键再次按下
{case 1:{switch (SetT) //................时间修改
{case 0:{GetTime[1]=GetTime[1]-'0';GetTime[0]=GetTime[0]-'0';GetTime[1]++;if(GetTime[1]>9){GetTime[1]=0;GetTime[0]++;}if((GetTime[0]>=2&&GetTime[1]>3)|GetTime[0]>2){GetTime[0]=0;GetTime[1]=0;}
WriteC(0xc6);WriteD(GetTime[0]+'0');WriteC(0xc7);WriteD(GetTime[1]+'0');SetTime_Date[2]=(GetTime[0]*16)+GetTime[1];v_W1302(0x8e,0x00);v_W1302(0x84,SetTime_Date[2]);v_W1302(0x8e,0x80);GetTime[1]=GetTime[1]+'0';GetTime[0]=GetTime[0]+'0';z=0;WriteC(0x10);break;}
case 1:{GetTime[4]=GetTime[4]-'0';GetTime[3]=GetTime[3]-'0';GetTime[4]++;if(GetTime[4]>9){GetTime[4]=0;GetTime[3]++;}if((GetTime[3]>=5&&GetTime[4]>9)|GetTime[3]>5){GetTime[3]=0;GetTime[4]=0;}
WriteC(0xc9);WriteD(GetTime[3]+'0');WriteC(0xca);WriteD(GetTime[4]+'0');SetTime_Date[1]=(16*GetTime[3])+GetTime[4];v_W1302(0x8e,0x00);v_W1302(0x82,SetTime_Date[1]);v_W1302(0x8e,0x80);GetTime[4]=GetTime[4]+'0';GetTime[3]=GetTime[3]+'0';z=0;WriteC(0x10);break;}
case 2:{GetTime[7]=GetTime[7]-'0';GetTime[6]=GetTime[6]-'0';GetTime[7]++;if(GetTime[7]>9){GetTime[7]=0;GetTime[6]++;}if((GetTime[6]>=5&&GetTime[7]>9)|GetTime[6]>5){GetTime[6]=0;GetTime[7]=0;}
WriteC(0xcc);WriteD(GetTime[6]+'0');WriteC(0xcd);WriteD(GetTime[7]+'0');SetTime_Date[0]=(16*GetTime[6])+GetTime[7];v_W1302(0x8e,0x00);v_W1302(0x80,SetTime_Date[0]);v_W1302(0x8e,0x80);GetTime[7]=GetTime[7]+'0';GetTime[6]=GetTime[6]+'0';z=0;WriteC(0x10);break;}
default:{z=0;SetT=0;}
}
}break;
case 2:{switch (SetT) //..............闹钟设置,减'0'变为数值后在写进去后再加'0'变回字符
{case 0:{Setclock[1]=Setclock[1]-'0';Setclock[0]=Setclock[0]-'0';Setclock[1]++;if(Setclock[1]>9){Setclock[1]=0;Setclock[0]++;}if((Setclock[0]>=2&&Setclock[1]>3)|Setclock[0]>2){Setclock[0]=0;Setclock[1]=0;}
WriteC(0xc6);WriteD(Setclock[0]+'0');WriteC(0xc7);WriteD(Setclock[1]+'0');Getclock[0]=(Setclock[0]*16)+Setclock[1];v_W1302(0x8e,0x00);v_W1302(0xc0,Getclock[0]);v_W1302(0x8e,0x80);Setclock[1]=Setclock[1]+'0';Setclock[0]=Setclock[0]+'0';z=0;WriteC(0x10);break;}
case 1:{Setclock[4]=Setclock[4]-'0';Setclock[3]=Setclock[3]-'0';Setclock[4]++;if(Setclock[4]>9){Setclock[4]=0;Setclock[3]++;}if((Setclock[3]>=5&&Setclock[4]>9)|Setclock[3]>5){Setclock[3]=0;Setclock[4]=0;}
WriteC(0xc9);WriteD(Setclock[3]+'0');WriteC(0xca);WriteD(Setclock[4]+'0');Getclock[1]=(16*Setclock[3])+Setclock[4];v_W1302(0x8e,0x00);v_W1302(0xc2,Getclock[1]);v_W1302(0x8e,0x80);Setclock[4]=Setclock[4]+'0';Setclock[3]=Setclock[3]+'0';z=0;WriteC(0x10);break;}
case 2:{Setclock[7]=Setclock[7]-'0';Setclock[6]=Setclock[6]-'0';Setclock[7]++;if(Setclock[7]>9){Setclock[7]=0;Setclock[6]++;}if((Setclock[6]>=5&&Setclock[7]>9)|Setclock[6]>5){Setclock[6]=0;Setclock[7]=0;}
WriteC(0xcc);WriteD(Setclock[6]+'0');WriteC(0xcd);WriteD(Setclock[7]+'0');Getclock[2]=(16*Setclock[6])+Setclock[7];v_W1302(0x8e,0x00);v_W1302(0xc4,Getclock[2]);v_W1302(0x8e,0x80);Setclock[7]=Setclock[7]+'0';Setclock[6]=Setclock[6]+'0';z=0;WriteC(0x10);break;}
default:{z=0;SetT=0;}
}
}break;
case 3:{switch (SetD) //................日期修改,修改时让年份回零,99太大了
{case 0:{GetDate[1]++;if(GetDate[1]>9){GetDate[1]=0;GetDate[0]++;}if((GetDate[0]>=9&&GetDate[1]>9)|GetDate[0]>9){GetDate[0]=0;GetDate[1]=0;}
WriteC(0xc5);WriteD(GetDate[0]+'0');WriteC(0xc6);WriteD(GetDate[1]+'0');SetTime_Date[6]=(GetDate[0]*16)+GetDate[1];v_W1302(0x8e,0x00);v_W1302(0x8c,SetTime_Date[6]);v_W1302(0x8e,0x80);z=0;WriteC(0x10);break;}
case 1:{GetDate[4]=GetDate[4]-'0';GetDate[3]=GetDate[3]-'0';GetDate[4]++;if(GetDate[4]>9){GetDate[4]=0;GetDate[3]++;}if((GetDate[3]>=1&&GetDate[4]>2)|GetDate[3]>1){GetDate[3]=0;GetDate[4]=0;}
WriteC(0xc8);WriteD(GetDate[3]+'0');WriteC(0xc9);WriteD(GetDate[4]+'0');SetTime_Date[4]=(16*GetDate[3])+GetDate[4];v_W1302(0x8e,0x00);v_W1302(0x88,SetTime_Date[4]);v_W1302(0x8e,0x80);GetDate[4]=GetDate[4]+'0';GetDate[3]=GetDate[3]+'0';z=0;WriteC(0x10);break;}
case 2:{GetDate[7]=GetDate[7]-'0';GetDate[6]=GetDate[6]-'0';GetDate[7]++;if(GetDate[7]>9){GetDate[7]=0;GetDate[6]++;}if((GetDate[6]>=3&&GetDate[7]>1)|GetDate[6]>3){GetDate[6]=0;GetDate[7]=0;}
WriteC(0xcb);WriteD(GetDate[6]+'0');WriteC(0xcc);WriteD(GetDate[7]+'0');SetTime_Date[3]=(16*GetDate[6])+GetDate[7];v_W1302(0x8e,0x00);v_W1302(0x86,SetTime_Date[3]);v_W1302(0x8e,0x80);GetDate[7]=GetDate[7]+'0';GetDate[6]=GetDate[6]+'0';z=0;WriteC(0x10);break;}
case 3:{GetDate[10]=GetDate[10]-'0';GetDate[10]++;if(GetDate[10]>7)GetDate[10]=0;WriteC(0xcf);WriteD(GetDate[10]+'0');SetTime_Date[5]=GetDate[10];v_W1302(0x8a,SetTime_Date[5]);v_W1302(0x8e,0x80);GetDate[10]=GetDate[10]+'0';z=0;WriteC(0x10);break;}
default:{z=0;SetD=0;}
}
}break;
/* case 4: {switch(SetT)
{case 0: {Gotoxy(2,0);Display_string(" Funing Story ");MDelay(10000);z=0;}
case 1: {Gotoxy(2,0);Display_string(" Funing Games ");MDelay(10000);z=0;}
default:{z=0;SetT=0;}
}
}break;
case 5:{if(Auto==1){m=1;ClearLCD();PrintDate(); PrintTime();Delay(100);Gotoxy(2,14);Display_string(" ");z=0;}
}break;*/
default:{z=0;m=0;}
}
//Getclock[0]=1;
//Getclock[1]=1;Getclock[2]=1;//设此值时,能响,可能是数制不对应
v_Get1302();//获取最新时间 //if(ucCurtime[2]==0)hour=1;这句也不行
if(ucCurtime[0]+ucCurtime[1]==0){hour=10*(GetTime[0]-'0')+(GetTime[1]-'0'+1);BaoShi(hour);}//其它都正确就1点的时候会报三次,整点报时,GetTime[1]-'0'+1,减'0'是为了从字符转为数字,+1是因为新的整点比已获得的大1
if((ucCurtime[2]==Getclock[0])&&(ucCurtime[1]==Getclock[1])&&(ucCurtime[0]==Getclock[2]))Music();//响闹铃,时、分、秒相等
}
}
//修改后输出的数据与所期望的数据不同
//...........根据模式修改时间和日期
/*if(z)switch (m)
{case 1:{switch (SetT)
{case 0:{GetTime[0]++;if(GetTime[0]>2)GetTime[0]=0;WriteC(0xc6);WriteD(GetTime[0]+'0');SetTime_Date[2]=(GetTime[0]*16)+GetTime[1];v_W1302(0x84,SetTime_Date[2]);z=0;WriteC(0x10);break;}
case 1:{GetTime[1]++;if(GetTime[1]>9|(GetTime[0]==2)&&(GetTime[1]>3))GetTime[1]=0;WriteC(0xc7);WriteD(GetTime[1]+'0');SetTime_Date[2]=(16*GetTime[0])+GetTime[1];v_W1302(0x84,SetTime_Date[2]);z=0;WriteC(0x10);break;}
case 2:z=0;break;
case 3:{GetTime[3]++;if(GetTime[3]>5)GetTime[3]=0;WriteC(0xc9);WriteD(GetTime[3]+'0');SetTime_Date[1]=(16*GetTime[3])+GetTime[4];v_W1302(0x82,SetTime_Date[1]);z=0;WriteC(0x10);break;}
case 4:{GetTime[4]++;if(GetTime[4]>9)GetTime[4]=0;WriteC(0xca);WriteD(GetTime[4]+'0');SetTime_Date[1]=(16*GetTime[3])+GetTime[4];v_W1302(0x82,SetTime_Date[1]);z=0;WriteC(0x10);break;}
case 5:z=0;break;
case 6:{GetTime[6]++;if(GetTime[6]>5)GetTime[6]=0;WriteC(0xcc);WriteD(GetTime[6]+'0');SetTime_Date[0]=(16*GetTime[6])+GetTime[7];v_W1302(0x80,SetTime_Date[0]);z=0;WriteC(0x10);break;}
case 7:{GetTime[7]++;if(GetTime[7]>9)GetTime[7]=0;WriteC(0xcd);WriteD(GetTime[7]+'0');SetTime_Date[0]=(16*GetTime[6])+GetTime[7];v_W1302(0x80,SetTime_Date[0]);z=0;WriteC(0x10);break;}
default:z=0;SetT=0;
}
}
case 2:break;
case 3:{switch (SetD)
{case 0:{GetDate[0]++;if(GetDate[0]>9)GetDate[0]=0;WriteC(0x85);WriteD(GetDate[0]+'0');SetTime_Date[6]=(GetDate[0]*16)+GetDate[1];v_W1302(0x8c,SetTime_Date[6]);z=0;WriteC(0x10);break;}
case 1:{GetDate[1]++;if(GetDate[1]>9)GetDate[1]=0;WriteC(0x86);WriteD(GetDate[1]+'0');SetTime_Date[6]=(16*GetDate[0])+GetDate[1];v_W1302(0x8c,SetTime_Date[6]);z=0;WriteC(0x10);break;}
case 2:z=0;break;
case 3:{GetDate[3]++;if(GetDate[3]>1)GetDate[3]=0;WriteC(0x88);WriteD(GetDate[3]+'0');SetTime_Date[4]=(16*GetDate[3])+GetDate[4];v_W1302(0x88,SetTime_Date[4]);z=0;WriteC(0x10);break;}
case 4:{GetDate[4]++;if(GetDate[4]>9|(GetDate[3]==1&&GetDate[4]>2))GetDate[4]=0;WriteC(0x89);WriteD(GetDate[4]+'0');SetTime_Date[4]=(16*GetDate[3])+GetDate[4];v_W1302(0x88,SetTime_Date[4]);z=0;WriteC(0x10);break;}
case 5:z=0;break;
case 6:{GetDate[6]++;if(GetDate[6]>3)GetDate[6]=0;WriteC(0x8b);WriteD(GetDate[6]+'0');SetTime_Date[3]=(16*GetDate[6])+GetDate[7];v_W1302(0x86,SetTime_Date[3]);z=0;WriteC(0x10);break;}
case 7:{GetDate[7]++;if(GetDate[7]>9|(GetDate[6]==3&&GetDate[7]>1))GetDate[7]=0;WriteC(0x8c);WriteD(GetDate[7]+'0');SetTime_Date[3]=(16*GetDate[6])+GetDate[7];v_W1302(0x86,SetTime_Date[3]);z=0;WriteC(0x10);break;}
case 8:z=0;break;
case 9:{GetDate[9]=0;z=0;WriteC(0x10);break;}
case 10:{GetDate[10]++;if(GetDate[10]>7)GetDate[10]=0;WriteC(0x8f);WriteD(GetDate[10]+'0');SetTime_Date[5]=GetDate[10];v_W1302(0x8a,SetTime_Date[5]);z=0;WriteC(0x10);break;}
default:z=0;SetD=0;
}
}*/
//default:m=0;
//}
// if(z)switch(m)
// {case 1: {ClearLCD();Gotoxy(1,0);Display_string(" Please Input");Gotoxy(2,0);Display_string("Hour:");
// }
//}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -