📄 main.c
字号:
}
break;
}
break;
case 3: //移位键盘
if((bRealkey2==1)&&(cNum_key1!=4))
{
cNum_key2>>=1;
if ( cNum_key2 ==0x00 )
{
cNum_key2=0x80;
}
}
if ((cNum_key1==4)&&(bRealkey2==0))
{
bClear_stopwatch=0;
iCounter_Inter3_temp=0;
for (j=0;j<8 ;j++ )
{
uStopwatch_DisBuffer[j]=0;
}
uStopwatch_DisBuffer[2]=27;
uStopwatch_DisBuffer[5]=27;
}
break;
case 4: //在设置时钟时等为上移键(增大)
if (bRealkey2==1) //处于设置模式下
{
switch (cNum_key1)
{
case 1: //对时间进行处理
switch (cNum_key2)
{
case 0x01:
case 0x02:
uHour = uTime_DisBuffer[0]*10+uTime_DisBuffer[1];
if (uHour<23)
{
uHour++;
}else
{
uHour = 0;
}
uTime_DisBuffer[0] = uHour/10;
uTime_DisBuffer[1] = uHour%10;
break;
//case 0X04:
// break;
case 0X08:
if (uTime_DisBuffer[3]==5)
{
uTime_DisBuffer[3]=0;
}else{
uTime_DisBuffer[3]++;
}
break;
case 0X10:
if (uTime_DisBuffer[4]==9)
{
uTime_DisBuffer[4]=0;
}else{
uTime_DisBuffer[4]++;
}
break;
//case 0X20:
// break;
case 0X40:
if (uTime_DisBuffer[6]==5)
{
uTime_DisBuffer[6]=0;
}else{
uTime_DisBuffer[6]++;
}
break;
case 0X80:
if (uTime_DisBuffer[7]==9)
{
uTime_DisBuffer[7]=0;
}else{
uTime_DisBuffer[7]++;
}
break;
}
break;
case 2: //对年月日进行处理
iAll_time=0;
switch (cNum_key2)
{
case 0x01:
if (uYear_DisBuffer[0]<9)
{
uYear_DisBuffer[0]++;
}else
{
uYear_DisBuffer[0]=0;
}
break;
case 0x02:
if (uYear_DisBuffer[1]<9)
{
uYear_DisBuffer[1]++;
}else
{
uYear_DisBuffer[1]=0;
}
break;
case 0X08:
case 0X10:
uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
if (uMonth<12)
{
uMonth++;
}else
{
uMonth=1;
}
uYear_DisBuffer[3]=uMonth/10;//////////////////////////////////////////////
uYear_DisBuffer[4]=uMonth%10;//////////////////////////////////////////////
break;
case 0X40:
case 0X80:
uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
uDate=uYear_DisBuffer[6]*10+uYear_DisBuffer[7];
switch (uMonth) //几月份,大月小月
{ //大月
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (uDate<31)
{
uDate++;
}else
{
uDate=1;
}
break;
//平月
case 2:
iYear = 2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
if( (!(iYear%4)) && ( ((!(iYear%100))&&(!(iYear%400))) || (iYear%100) ) )
{
if (uDate<29)
{
uDate++;
}else
{
uDate=1;
}
}else
{
if (uDate<28)
{
uDate++;
}else
{
uDate=1;
}
}
break;
//小月
case 4:
case 6:
case 9:
case 11:
if (uDate<30)
{
uDate++;
}else
{
uDate=1;
}
break;
}
uYear_DisBuffer[6]=uDate/10;//////////////////////////////////////////////
uYear_DisBuffer[7]=uDate%10;/////////////////////////////////////////////
break;
}
//与星期关联
//iAll_time=2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
iYear = 2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
uDate=uYear_DisBuffer[6]*10+uYear_DisBuffer[7];
//年份
for (i=2000;i<iYear;i++)
{
if( (!(i%4)) && ( ((!(i%100))&&(!(i%400))) || (i%100) ) ) //闰年
{
iAll_time+=366;
}else
{
iAll_time+=365;
}
}
//月份
if (uMonth==2)
{
iAll_time+=31;
}
if ( (!(i%4)) && ( ((!(i%100))&&(!(i%400))) || (i%100) ) ) //闰年
{
if (uMonth==3)
{
iAll_time+=60;
}
if (uMonth==4)
{
iAll_time+=91;
}
if (uMonth==5)
{
iAll_time+=121;
}
if (uMonth==6)
{
iAll_time+=152;
}
if (uMonth==7)
{
iAll_time+=182;
}
if (uMonth==8)
{
iAll_time+=213;
}
if (uMonth==9)
{
iAll_time+=244;
}
if (uMonth==0)
{
iAll_time+=274;
}
if (uMonth==11)
{
iAll_time+=304;
}
if (uMonth==12)
{
iAll_time+=335;
}
//if (uMonth==12)
//{
// iAll_time+=366;
//}
}else
{
if (uMonth==3)
{
iAll_time+=59;
}
if (uMonth==4)
{
iAll_time+=90;
}
if (uMonth==5)
{
iAll_time+=120;
}
if (uMonth==6)
{
iAll_time+=151;
}
if (uMonth==7)
{
iAll_time+=181;
}
if (uMonth==8)
{
iAll_time+=212;
}
if (uMonth==9)
{
iAll_time+=243;
}
if (uMonth==10)
{
iAll_time+=273;
}
if (uMonth==11)
{
iAll_time+=303;
}
if (uMonth==12)
{
iAll_time+=334;
}
//if (uMonth==12)
//{
// iAll_time+=365;
//}
}
iAll_time+=(uDate-1);
uWeek_DisBuffer[7]=(iAll_time%7+6)%7;
if(uWeek_DisBuffer[7]==0)
{
uWeek_DisBuffer[7]=7;
}
//日期
break;
case 3: //对星期进行处理
if (cNum_key2==0x10)
{
if (uWeek_DisBuffer[7]<7)
{
uWeek_DisBuffer[7]++;
}else
{
uWeek_DisBuffer[7]=1;
}
}
break;
case 4: //对秒表进行处理
break;
case 5: //对闹钟进行处理
switch (cNum_key2)
{
case 0x01:
case 0x02:
uHour = uAlarm_DisBuffer[0]*10+uAlarm_DisBuffer[1];
if (uHour<23)
{
uHour++;
}else
{
uHour = 0;
}
uAlarm_DisBuffer[0] = uHour/10;
uAlarm_DisBuffer[1] = uHour%10;
break;
//case 0X04:
// break;
case 0X08:
if (uAlarm_DisBuffer[3]==5)
{
uAlarm_DisBuffer[3]=0;
}else{
uAlarm_DisBuffer[3]++;
}
break;
case 0X10:
if (uAlarm_DisBuffer[4]==9)
{
uAlarm_DisBuffer[4]=0;
}else{
uAlarm_DisBuffer[4]++;
}
break;
//case 0X20:
// break;
case 0X40:
if (uAlarm_DisBuffer[6]==5)
{
uAlarm_DisBuffer[6]=0;
}else{
uAlarm_DisBuffer[6]++;
}
break;
case 0X80:
if (uAlarm_DisBuffer[7]==9)
{
uAlarm_DisBuffer[7]=0;
}else{
uAlarm_DisBuffer[7]++;
}
break;
}
break;
}
}
break;
case 5: //在设置时钟时等为下移键(减小)
break;
default: //默认无操作
break;
}
}
//显示
switch (cNum_key1)
{
case 0:
case 1:
DispBuf(uTime_DisBuffer);
//设置闪烁控制寄存器
ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);
ZLG7290_Flash(cNum_key2);
break;
case 2:
DispBuf(uYear_DisBuffer);
ZLG7290_Flash(cNum_key2);
break;
case 3:
DispBuf(uWeek_DisBuffer);
ZLG7290_Flash(cNum_key2);
break;
case 4:
DispBuf(uStopwatch_DisBuffer);
ZLG7290_Flash(cNum_key2);
break;
case 5:
DispBuf(uAlarm_DisBuffer);
ZLG7290_Flash(cNum_key2);
break;
}
PCON |= 0x01; //使CPU进入空闲状态,任一中断可唤醒
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -