这回分享的是第八届时钟表的做题思路。给自己留了5个小时,然而做题的效率还是不够。重在思路吧。、
void main()
{
init();
ds1302init();
while(1)
{
ds1302read();
wendu=temget();
timeset();
alarmset();
keyscan();
if(P33==0)
{
delayms(100);
if(P33==0)
{
yi=20;er=20;san=20;
si=20;wu=20;
liu=wendu/10;qi=wendu%10;ba=12;
}
}
display1(yi,er);
display2(san,si);
display3(wu,liu);
display4(qi,ba);
}
}
void timeset()
{
if(shezhi==0)
{
yi=TIME[2]/10;er=TIME[2]%10;san=19;
si=TIME[1]/10;wu=TIME[1]%10;liu=19;
qi=TIME[0]/10;ba=TIME[0]%10;
}
else if(shezhi==1)
{
if(TIME[0]%2==0)
{
yi=TIME[2]/10;er=TIME[2]%10;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;}
else {
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;if(TIME[2]==24)TIME[2]=0;TIME[2]++;ds1302init();}
if(jian==1)
{jian=0;if(TIME[2]==0)TIME[2]=24;TIME[2]--;ds1302init();}
}
else if(shezhi==2)
{
if(TIME[0]%2==0){
yi=20;er=20;san=19;
si=TIME[1]/10;wu=TIME[1]%10;liu=19;
qi=20;ba=20;}
else{
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;TIME[1]++;if(TIME[1]==60)TIME[1]=0;ds1302init();}
if(jian==1)
{jian=0;TIME[1]--;if(TIME[1]==0)TIME[1]=59;ds1302init();}
}
else if(shezhi==3)
{
if(TIME[0]%2==0){
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=TIME[0]/10;ba=TIME[0]%10;}
else{
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;TIME[0]++;if(TIME[0]==60)TIME[0]=0;ds1302init();}
if(jian==1)
{jian=0;TIME[0]--;if(TIME[0]==0)TIME[0]=59;ds1302init();}
}
}
void alarmset()
{
if(alarm==1)
{
yi=clock[2]/10;er=clock[2]%10;san=19;
si=clock[1]/10;wu=clock[1]%10;liu=19;
qi=clock[0]/10;ba=clock[0]%10;
}
else if(alarm==2)
{
if(TIME[0]%2==0)
{
yi=clock[2]/10;er=clock[2]%10;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;}
else {
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;clock[2]++;if(clock[2]==24)clock[2]=0;}
if(jian==1)
{jian=0;clock[2]--;if(clock[2]==0)clock[2]=24;}
}
else if(alarm==3)
{
if(TIME[0]%2==0)
{
yi=20;er=20;san=19;
si=clock[1]/10;wu=clock[1]%10;liu=19;
qi=20;ba=20;}
else {
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;clock[1]++;if(clock[1]==60)clock[1]=0;}
if(jian==1)
{jian=0;clock[1]--;if(clock[1]==0)clock[1]=59;}
}
else if(alarm==4)
{
if(TIME[0]%2==0)
{
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=clock[0]/10;ba=clock[0]%10;}
else {
yi=20;er=20;san=19;
si=20;wu=20;liu=19;
qi=20;ba=20;
}
if(jia==1)
{jia=0;clock[0]++;if(clock[0]==60)clock[0]=0;}
if(jian==1)
{jian=0;clock[0]--;if(clock[0]==0)clock[0]=59;}
}}
void keyscan()
{
if(P30==0)
{
delayms(110);
if(P30==0)
{
shezhi++;
if(shezhi==4)
shezhi=0;
}while(!P30);
}
if(shezhi==0)
{
if(P31==0)
{
delayms(110);
if(P31==0)
{
alarm++;
if(alarm==5)
alarm=0;
}while(!P31);
}
}
if((shezhi!=0)&&(alarm=2)&&(alarm=3)&&(alarm=4))
{
if(P32==0)
{
delayms(110);
if(P32==0)
{
jia=1;
}while(!P32);
}
else if(P33==0)
{
delayms(110);
if(P33==0)
{
jian=1;
}while(!P33);
}
}
}
我要赚赏金
