📄 main.c
字号:
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
DisplayFlg |= NumSetFlg; //工数设
ConvertData(Number);
}
else if(Key == 0X08) //计划设定 (1键)
{
Flag |= ResetFlg; //设置状态
Flag &= ~LCJ;
Flag &= ~RUNFlg;
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
DisplayFlg |= PlanSetFlg; //计划设定
ConvertData(Plan);
}
else if(Key == 0X01) //按键2 时钟设定
{
Flag |= ResetFlg; //设置状态
Flag &= ~LCJ;
Flag &= ~RUNFlg;
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
DisplayFlg |= ClockSetFlg; //计划设定
temp = Hour*100+Min;
ConvertData(temp);
}
else if(Key == 0X0A) //按键3 本机地址设定
{
Flag |= ResetFlg; //设置状态
Flag &= ~LCJ;
Flag &= ~RUNFlg;
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
DisplayFlg |= AddressSetFlg; //计划设定
ConvertData(SelfAddress);
}
else if(Key == 0X06) //第一班时间设定
{
Flag |= ResetFlg; //设置状态
Flag &= ~LCJ; //非启动状态
Flag &= ~RUNFlg; //非运状态行
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
if((TimeSec1[0][0] <= 2359) && (ScaleClock != -1))
{
DisplayFlg |= TimeIndexFlg; //时间段检索标志
DisplayFlg |= CheckTimeFlg; //时间段索引状态
DisplayFlg &= ~DShrSetFlg; //第二行非闪烁状态
DisplayFlg |= DShrinkFlg; //第一行闪烁状态
DisplayFlg |= TimeFirstFlg; //时间段索引第一次标志
}
else
{
DisplayFlg &= ~CheckTimeFlg; //非时间段检查确认状态
DisplayFlg &= ~TimeFirstFlg;
DisplayFlg &= ~TimeIndexFlg;
}
DisplayFlg |= TimeSection1SetFlg; //时间段1设置状态
DisplayFlg &= ~TimeSection2SetFlg; //非时间段2设置状态
TimeSectionIndex =0; //时间段设置的索引
Index =0; //时间段查询的索引
SearchIndex = 0; //时间段检索的索引
Counter = 0; //记数
ConvertCode =0; //当前设定值
}
else if(Key == 0X00) //第二班时间设定
{
Flag |= ResetFlg; //设置状态
Flag &= ~LCJ; //非启动状态
Flag &= ~RUNFlg; //非运行状态
if((DisplayFlg & ChangeWorkFlg) !=ChangeWorkFlg)
DisplayFlg = DShrinkFlg; //闪烁状态
else
{
DisplayFlg = DShrinkFlg;
DisplayFlg |= ChangeWorkFlg;
}
if((TimeSec2[0][0] <= 2359) && (ScaleClock != -1))
{
DisplayFlg |= TimeIndexFlg; //时间段检索标志
DisplayFlg |= CheckTimeFlg; //时间段索引状态
DisplayFlg &= ~DShrSetFlg; //第二行非闪烁状态
DisplayFlg |= DShrinkFlg; //第一行闪烁状态
DisplayFlg |= TimeFirstFlg; //时间段索引第一次标志
}
else
{
DisplayFlg &= ~CheckTimeFlg; //非时间段检查确认状态
DisplayFlg &= ~TimeFirstFlg;
DisplayFlg &= ~TimeIndexFlg;
}
DisplayFlg |= TimeSection2SetFlg; //时间段2的设定状态
DisplayFlg &= ~TimeSection1SetFlg; //非时间段1的设定状态
TimeSectionIndex =0;
Index =0;
SearchIndex = 0;
Counter = 0;
ConvertCode =0;
}
TimerCount =0; //时钟定时量
DisplayFlg &= ~FirstFlg; //非第一次标志状态
DisplayFlg &= ~StartShrinkFlg; //非启动闪烁状态、
Flag &= ~StartFlg; //非设定状态
}
else if((Flag & ResetFlg) == ResetFlg) //在设定状态下,进行数据输入
{
if((Key == 0X0B)) //按键CLR清除设定数据
{
if(((DisplayFlg & TimeSection1SetFlg) == TimeSection1SetFlg))
{
for(Counter =0; Counter<25; Counter++)
{
if(Counter<9)
{
TimeSec2[Counter][0] =8888; //时间段1的清零操作
TimeSec2[Counter][1] =8888;
}
TimeSec1[Counter][0] = 8888;
TimeSec1[Counter][1] = 8888;
ScaleClock = -1;
Key = 0X0E ; //进入取消操作处理
}
}
else if((DisplayFlg & TimeSection2SetFlg) == TimeSection2SetFlg)
{
for(Counter =0; Counter<9; Counter++)
{
TimeSec2[Counter][0] = 8888; //时间段2的清零操作
TimeSec2[Counter][1] = 8888;
}
for(i=0; i<25; i++)
{
if(((TimeSec1[i][0] !=0) && (TimeSec1[i][0] !=2359))
||((TimeSec1[i][1] !=0) &&(TimeSec1[i][1] !=2359)))
{
break;
}
ScaleClock = TimeSec1[i][1]; //回退时钟标尺操作
}
}
DisplayFlg |= TimeIndexFlg;
Key = 0X0E; //进入取消操作处理
}
{
if((KeyCode[Key] <= 9)) //数据设定操作
{
if((DisplayFlg & TimeIndexFlg) == TimeIndexFlg)
{
DisplayFlg &= ~TimeIndexFlg; //数据设定条件下,不对时间段进行索引显示
}
if((DisplayFlg & TimeSection1SetFlg) == TimeSection1SetFlg)
{ //时间段数据输入,停止闪烁
DisplayFlg &= ~DShrinkFlg;
DisplayFlg &= ~DShrSetFlg;
Counter++;
if(Counter >=5)
Counter = 0;
}
else if((DisplayFlg & TimeSection2SetFlg) == TimeSection2SetFlg)
{ //时间段数据输入,停止闪烁
DisplayFlg &= ~DShrinkFlg;
DisplayFlg &= ~DShrSetFlg;
Counter++;
if(Counter >=5)
Counter = 0;
}
ConvertCode =ConvertCode*10 + KeyCode[Key];
if(((DisplayFlg & ClockSetFlg) == ClockSetFlg)
||((DisplayFlg & TimeSection2SetFlg) ==TimeSection2SetFlg)
||((DisplayFlg & TimeSection1SetFlg) ==TimeSection1SetFlg))
{
if(ConvertCode >240) //校验时间数据正确性
if((ConvertCode >= 2400) ||(ConvertCode %100) >= 60)
{
ConvertCode =0;
Counter = 0;
}
}
else if((DisplayFlg & AddressSetFlg) == AddressSetFlg)
{
if(ConvertCode > 52) //校验地址数据的正确性
ConvertCode = 0;
}
else
{
if(ConvertCode > 9999) //校验其他数据的正确性
{
ConvertCode =0;
}
}
if((DisplayFlg & PlanSetFlg) == PlanSetFlg) //转化当前数据为显示数据
{
for(i=0; i<8; i++)
{
DisplayKeyCode[i] =LedCode[10];
}
temp1 =ConvertCode %10;
DisplayKeyCode[8] =LedCode[temp1];
temp1 =(ConvertCode/10)%10;
DisplayKeyCode[9] =LedCode[temp1];
temp1 =(ConvertCode/100)%10;
DisplayKeyCode[10] =LedCode[temp1];
temp1 =(ConvertCode/1000)%10;
DisplayKeyCode[11] =LedCode[temp1];
}
if((DisplayFlg & NumSetFlg) == NumSetFlg)
{
for(i=0; i<8; i++)
{
DisplayKeyCode[i] =LedCode[10];
}
temp1 =ConvertCode %10;
DisplayKeyCode[8] =LedCode[temp1];
temp1 =(ConvertCode/10)%10;
DisplayKeyCode[9] =LedCode[temp1];
temp1 =(ConvertCode/100)%10;
DisplayKeyCode[10] =LedCode[temp1];
temp1 =(ConvertCode/1000)%10;
DisplayKeyCode[11] =LedCode[temp1];
if((DisplayFlg & NumSetFlg) == NumSetFlg)
{
DisplayKeyCode[9] += 0X80;
}
}
if((DisplayFlg & ClockSetFlg) == ClockSetFlg)
{
for(i=0; i<8; i++)
{
DisplayKeyCode[i] =LedCode[10];
}
temp1 =ConvertCode %10;
DisplayKeyCode[8] =LedCode[temp1];
temp1 =(ConvertCode/10)%10;
DisplayKeyCode[9] =LedCode[temp1];
temp1 =(ConvertCode/100)%10;
DisplayKeyCode[10] =LedCode[temp1];
temp1 =(ConvertCode/1000)%10;
DisplayKeyCode[11] =LedCode[temp1];
}
if((DisplayFlg & AddressSetFlg) == AddressSetFlg)
{
for(i=0; i<8; i++)
{
DisplayKeyCode[i] =LedCode[10];
}
temp1 =ConvertCode %10;
DisplayKeyCode[8] =LedCode[temp1];
temp1 =(ConvertCode/10)%10;
DisplayKeyCode[9] =LedCode[temp1];
temp1 =(ConvertCode/100)%10;
DisplayKeyCode[10] =LedCode[temp1];
temp1 =(ConvertCode/1000)%10;
DisplayKeyCode[11] =LedCode[temp1];
}
TimerCount =0;
DisplayFlg &= ~FirstFlg;
DisplayFlg &= ~StartShrinkFlg;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -