📄 sky_main.c
字号:
{
case 1:
Circulationset();
break;
case 2:
OpenStopdayluset();
break;
case 3:
ClockTimeset();
break;
}
}
void KeyVoiceset(void)
{
data UINT8 v,temp;
clearRAM(0,8);
Display_Line(8,3,4,0);
v=EEPROMByteRead0(0);
Delay1(100);
while(1)
{
temp=KeyScan();
if(count2>2400)
{
Function=0;
return;
}
ClearWatchDog();
switch(temp)
{
case ENTER:
EEPROMByteWrite0(0,v);
Voice=v;
Display_Save(6,30);
Beep1(3);
break;
case ESC:
return;
case UP:
case DOWN:
if(v==0)
v=1;
else
v=0;
break;
}
if(v==1)
HzDisplay(system[0],3,96,1);
else
HzDisplay(system[1],3,96,1);
}
}
bit Confirmation(void)
{
bit flag=0;
data UINT8 temp,i,j;
clearRAM(0,8);
for(j=0;j<2;j++)
{
SetRAMAddr(j+3,0);
for(i=0;i<112;i++)
{
if(i==64)
SetRAMAddr(j+3,0);
SingleData(i,confirm[j][i]);
}
}
while(1)
{
temp=KeyScan();
if(count2>2400)
{
Function=0;
return(0);
}
ClearWatchDog();
switch(temp)
{
case ENTER:
return(flag);
case ESC:
return(0);
case UP:
case DOWN:
if(flag==0)
flag=1;
else
flag=0;
break;
}
if(flag==1)
HzDisplay(system1[0],3,112,1);
else
HzDisplay(system1[1],3,112,1);
}
}
void DisinfectNum(void)//清除ok
{
data UINT8 day,j,lu,flag=1;
data UINT8 temp,num=0,i;
data UINT16 addr;
clearRAM(0,8);
lu=0;
day=Week;
Display_Line(7,0,6,0);
Display_Line(9,4,6,0);
while(1)
{
temp=KeyScan();
if(count2>2400)
{
Function=0;
return;
}
ClearWatchDog();
switch(temp)
{
case MOVE:
num++;
if(num==2)
num=0;
flag=1;
break;
case UP:
switch(num)
{
case 1:
if(day==6)
day=0;
else
day++;
break;
case 0:
if(lu==14)
lu=0;
else
lu++;
break;
}
flag=1;
break;
case DOWN:
switch(num)
{
case 1:
if(day==0)
day=6;
else
day--;
break;
case 0:
if(lu==0)
lu=14;
else
lu--;
break;
}
flag=1;
break;
case ENTER:
flag=Confirmation();
clearRAM(0,8);
for(j=0;j<4;j++)
{
SetRAMAddr(j+2,24);
for(i=24;i<104;i++)
{
if(i==64)
SetRAMAddr(j+2,0);
SingleData(i,WAIT[j][i-24]);
}
}
if(flag==1)
{
addr=(day*900+lu*60)*6+0x80;
for(i=0;i<60;i++)
{
EEPROMByteWrite0(addr+i*6,23);
Delay1(1500);
EEPROMByteWrite0(addr+i*6+1,59);
Delay1(1500);
EEPROMByteWrite0(addr+i*6+2,59);
Delay1(1500);
EEPROMByteWrite0(addr+i*6+3,23);
Delay1(1500);
EEPROMByteWrite0(addr+i*6+4,59);
Delay1(1500);
EEPROMByteWrite0(addr+i*6+5,59);
Delay1(1500);
ClearWatchDog();
if(i%4==0)
{
if(i==0)
SetRAMAddr(7,0);
if(i==32)
SetRAMAddr(7,0);
for(j=0;j<8;j++)
SingleData(i*2+j,0xff);
}
}
Beep1(3);
}
clearRAM(0,8);
flag=1;
Display_Line(7,0,6,0);
Display_Line(9,4,6,0);
break;
case ESC:
Function=0;
return;
}
if(flag==1)
{
flag=0;
if(num==1)
HzDisplay(WEEK1[day], 4,80,1);
else
HzDisplay(WEEK1[day], 4,80,0);
if(num==0)
Num_Display(lu+1, 4,32,1);
else
Num_Display(lu+1, 4,32,0);
}
}
}
void SysSet(void)//本机设置ok
{
static data UINT8 row=1;
data UINT8 temp,flag=0;
clearRAM(0,8);
MenuDisplay(2,row);
while(1)
{
temp=KeyScan();
if(count2>2400)
{
Function=0;
clearRAM(0,8);
return;
}
ClearWatchDog();
switch(temp)
{
case MOVE:
row++;
if(row>2)
row=1;
MenuDisplay(2,row);
break;
case ENTER:
flag=1;
break;
case ESC:
Function=0;
return;
}
if(flag==1)
{
flag=0;
break;
}
}
switch(row)
{
case 1:
DisinfectNum();
break;
case 2:
KeyVoiceset();
break;
}
}
void Contral8255(UINT8 num,bit flag)
{
data UINT8 temp;
if(num<7)
{
if(flag==1)
{
Pbvalue|=CLOSEOPENB[num];//&
}
else
{
temp=~CLOSEOPENB[num];
Pbvalue&=temp;//|
}
write_XDATA(0xf9,Pbvalue);
}
else if(num<15)
{
if(flag==1)
{
Pcvalue |=CLOSEOPEN[num-7];//&
}
else
{
temp=~CLOSEOPEN[num-7];
Pcvalue &=temp; //|
}
write_XDATA(0xfa,Pcvalue);
}
}
void LedContral(UINT8 num,bit flag)
{
if(flag==1)
{
switch(num)
{
case 0:
Led1=0;
return;
case 1:
Led2=0;
return;
case 2:
Led3=0;
return;
case 3:
Led4=0;
return;
case 4:
Led5=0;
return;
case 5:
Led6=0;
return;
case 6:
Pavalue &=0xfe;
write_XDATA(0xf8, Pavalue);
return;
case 7:
Pavalue &=0xfd;
write_XDATA(0xf8, Pavalue);
return;
case 8:
Pavalue &=0xfb;
write_XDATA(0xf8, Pavalue);
return;
case 9:
Pavalue &=0xf7;
write_XDATA(0xf8, Pavalue);
return;
case 10:
Pavalue &=0xef;
write_XDATA(0xf8, Pavalue);
return;
case 11:
Pavalue &=0xdf;
write_XDATA(0xf8, Pavalue);
return;
case 12:
Pavalue &=0xbf;
write_XDATA(0xf8, Pavalue);
return;
case 13:
Pavalue &=0x7f;
write_XDATA(0xf8, Pavalue);
return;
case 14:
Pbvalue&=0xfe;
write_XDATA(0xf9, Pbvalue);
return;
default:
break;
}
}
else
{
switch(num)
{
case 0:
Led1=1;
return;
case 1:
Led2=1;
return;
case 2:
Led3=1;
return;
case 3:
Led4=1;
return;
case 4:
Led5=1;
return;
case 5:
Led6=1;
return;
case 6:
Pavalue |= 0x01;
write_XDATA(0xf8, Pavalue);
return;
case 7:
Pavalue |= 0x02;
write_XDATA(0xf8, Pavalue);
return;
case 8:
Pavalue |=0x04;
write_XDATA(0xf8, Pavalue);
return;
case 9:
Pavalue |=0x08;
write_XDATA(0xf8, Pavalue);
return;
case 10:
Pavalue |=0x10;
write_XDATA(0xf8, Pavalue);
return;
case 11:
Pavalue |=0x20;
write_XDATA(0xf8, Pavalue);
return;
case 12:
Pavalue |=0x40;
write_XDATA(0xf8, Pavalue);
return;
case 13:
Pavalue |=0x80;
write_XDATA(0xf8, Pavalue);
return;
case 14:
Pbvalue |=0x01;
write_XDATA(0xf9, Pbvalue);
return;
default:
break;
}
}
}
void Beep1(UINT8 num)
{
data UINT8 i;
for(i=0;i<num;i++)
{
MUNIC=1;
Delay1(5000);
MUNIC=0;
Delay1(5000);
}
}
void Init8255(void)
{
write_XDATA(0xfb,0x80);
write_XDATA(0xf8,0x00);
write_XDATA(0xf9,0x00);//0xfe
write_XDATA(0xfa,0x00);//0xff
P1 &=0x03;
}
void main(void)
{
data UINT8 key,i,temp;
data UINT8 k,j;
data UINT16 addr;
CPUInitial();
Delay1(200);
Beep1(3);
InitLcd();
Delay1(400);
Voice=EEPROMByteRead0(0x0);
Delay1(200);
clearRAM(0,8);
LOGO();
clearRAM(0,8);
for(j=0;j<4;j++)
{
SetRAMAddr(j+2,24);
for(i=24;i<104;i++)
{
if(i==64)
SetRAMAddr(j+2,0);
SingleData(i,WAIT[j][i-24]);
}
}
temp=EEPROMByteRead0(0xffff);
Delay1(2000);
if(temp !=0xaa)
{
for(k=0;k<0x80;k++)
{
EEPROMByteWrite0(k,0x01);
Delay1(1000);
ClearWatchDog();
}
for(i=0;i<7;i++)
{
for(k=0;k<15;k++)
{
for(j=0;j<60;j++)
{
addr=(i*900+k*60+j)*6+0x80;
EEPROMByteWrite0(addr,23);
Delay1(1500);
EEPROMByteWrite0(addr+1,59);
Delay1(1500);
EEPROMByteWrite0(addr+2,59);
Delay1(1500);
EEPROMByteWrite0(addr+3,23);
Delay1(1500);
EEPROMByteWrite0(addr+4,59);
Delay1(1500);
EEPROMByteWrite0(addr+5,59);
Delay1(1500);
ClearWatchDog();
}
}
}
EEPROMByteWrite0(0xffff,0xaa);
}
Init8255();
for(i=0;i<15;i++)
Luopencloseflag[i]=0;
Beep1(3);
Timer0_Init();
ET0 = 1;
clearRAM(0,8);
ClearWatchDog();
while(1)
{
switch(Function)
{
case 0:
MainMenu();//主菜单选择ok
changflag=1;
break;
case 1://时钟ok
if(SecondFlag==1)
{
SecondFlag=0;
if(changflag==1)
{
clearRAM(0,8);
changflag=0;
Time_display(5,Hour,Minute,Second,3);
Date_display(Week,Year,Month,Date,3);
}
Num_Display(Second,5,80,0);
if(MinuteFlag==1)
{
Num_Display(Minute,5,48,0);
MinuteFlag=0;
if(HourFlag==1)
{
Num_Display(Hour,5,16,0);
HourFlag=0;
if(DateFlag==1)
{
Num_Display(Date,3,80,0);
DateFlag=0;
Msingle_font_pattern(Time_offset[Week],0,32,0);
if(MonthFlag==1)
{
Num_Display(Month,3,48,0);
MonthFlag=0;
if(YearFlag==1)
{
Num_Display(Year,3,16,0);
YearFlag=0;
}
}
}
}
}
if(Second%2==1)
{
for(i=0;i<15;i++)
{
if(Luopencloseflag[i]==1)
LedContral(i,0);
}
}
else
OnOffContral();
}
key=KeyScan();
if(key==ENTER)
Function=0;
break;
case 2://日期时间设置ok
DateTimeSet();
break;
case 3://定时参数设置
ClockSet();
break;
case 4://本机设置
SysSet();
break;
default:
break;
}
ClearWatchDog();
}//while end
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -