📄 text1.c
字号:
else EditMin = 0;
break;
case OK: Copy1();
SetState=0; KeySts=0;
break;
}
break;
case 3: // minLo edit status;分时低位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0; Copy1();break;//准备进入设定闹钟功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(EditMin<59) EditMin++;
break;
case DOWN: if(EditMin>0) EditMin--;
break;
case OK: Copy1();
SetState=0; KeySts=0;
break;
}
break;
case 4: // secHi edit status;秒时高位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0; Copy1();break;//准备进入设定闹钟功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(EditSec<49) EditSec+=10;
else EditSec = 59;
break;
case DOWN: if(EditSec>10) EditSec-=10;
else EditSec = 0;
break;
case OK: Copy1();
SetState=0; KeySts=0;
break;
}
break;
case 5: // secLo edit status;秒时低位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0; Copy1();break;//准备进入设定闹钟功能
case RIGHT: KeySts-=5;
break;
case LEFT: KeySts--;
break;
case UP: if(EditSec<59) EditSec++;
break;
case DOWN: if(EditSec>0) EditSec--;
break;
case OK: Copy1();
SetState=0; KeySts=0;
break;
}
break;
}
}
break;
case 2: { //进入闹钟设定功能
switch(KeySts)
{
case 0: // hourHi Alarm status;小时高位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts++; break;
case LEFT: KeySts+=5; break;
case UP: if(AlarmHour<13) AlarmHour += 10;
else AlarmHour = 23;
break;
case DOWN: if(AlarmHour>10) AlarmHour -= 10;
else AlarmHour = 0;
break;
case OK: Copy2();
Alarm=1; SetState=0; KeySts=0;
break;
}
break;
case 1: // hourLo Alarm status;小时低位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(AlarmHour<23) AlarmHour++;
break;
case DOWN: if(AlarmHour>0) AlarmHour--;
break;
case OK: Copy2(); Alarm=1;
SetState=0; KeySts=0;
break;
}
break;
case 2: // minHi Alarm status;分时高位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(AlarmMin<49) AlarmMin+=10;
else AlarmMin = 59;
break;
case DOWN: if(AlarmMin>10) AlarmMin-=10;
else AlarmMin = 0;
break;
case OK: Copy2(); Alarm=1;
SetState=0; KeySts=0;
break;
}
break;
case 3: // minLo Alarm status;分时低位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(AlarmMin<59) AlarmMin++;
break;
case DOWN: if(AlarmMin>0) AlarmMin--;
break;
case OK: Copy2(); Alarm=1;
SetState=0; KeySts=0;
break;
}
break;
case 4: // secHi Alarm status;秒时高位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts++;
break;
case LEFT: KeySts--;
break;
case UP: if(AlarmSec<49) AlarmSec+=10;
else AlarmSec = 59;
break;
case DOWN: if(AlarmSec>10) AlarmSec-=10;
else AlarmSec = 0;
break;
case OK: Copy2(); Alarm=1;
SetState=0;KeySts=0;
break;
}
break;
case 5: // secLo Alarm status;秒时低位设置
switch(KeyPressed)
{
case DoubleSET :SetState++;KeySts=0;Copy2();break;//准备退出功能
case RIGHT: KeySts-=5;
break;
case LEFT: KeySts--;
break;
case UP: if(AlarmSec<59)AlarmSec++;
break;
case DOWN: if(AlarmSec>0) AlarmSec--;
break;
case OK: Copy2(); Alarm=1;
SetState=0;KeySts=0;
break;
}
break;
}
}
break;
case 3:SetState=0;KeySts=0; break;// //退出功能
}
if(SetState==1)
DisplayEdit();//调用时间设定时的显示函数
if(SetState==2)
DisplayAlarm();//调用闹钟时间设定时的显示函数
}
void main(void) //主函数
{
unsigned char i;
for (i=0;i<6;i++) DispBuf[i] = 0xFF;//初始化全灭
P23=1;
Alarm=0;
sec = 0;
min = 0;
hour = 0;
InitT0();
KeySts = 0; // 初始状态
SetState=0;
AlarmSec =0;
AlarmMin = 0;
AlarmHour = 0;
while(1)
{
if(p==2)Ring=1;
if(xTim ==1)
{
if((SetState == 0)||(SetState == 2))//设定时间时不走时,设定闹钟时走时
{
xTim = 0;
TimUpdate(); //调用走时模块
if( (sec==0)&&( min==0))
{Ring=0; }
if(SetState==0)
DisplayTim();//调用显示模块
}
}
if(xKey)
{
xKey = 0;
KeyPro();//调用按键功能模块
}
if( Alarm==1)
{
if( (sec==SetedAlarmSec)&& (min==SetedAlarmMin)&&(hour==SetedAlarmHour))
{Ring=0; }//符合条件时闹钟开启
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -