📄 index.c
字号:
dis2[4]=code_switch(((int)date)%10);
dis2[6]=code_switch(((int)hour)/10);
dis2[7]=code_switch(((int)hour)%10);
dis2[9]=code_switch(((int)minute)/10);
dis2[10]=code_switch(((int)minute)%10);
dis2[12]=code_switch(((int)second)/10);
dis2[13]=code_switch(((int)second)%10);
dis2[15]=code_switch((int)week);
lcd_pos(0);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x40);
i=0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]);
i++;
}
switch (m)
{
case 0: lcd_pos(0x0d);break;
case 1: lcd_pos(0x41);break;
case 2: lcd_pos(0x44);break;
case 3: lcd_pos(0x47);break;
case 4: lcd_pos(0x4a);break;
case 5: lcd_pos(0x4d);break;
case 6: lcd_pos(0x4f);break;
}
}
/////////////////////////////时间设置显示结束///////////////////////////////////
///////////////////////////////时间设置///////////////////////////////////////
void seting2()
{
if(SET2==1&&NEXT==1&&REDUCE==1&&ADD==1&&SET==1); //无键盘按下
else /////有键盘按下时
{
keyon=1;
if(SET2==0)keytype=0;
if(NEXT==0)keytype=1;
if(REDUCE==0)keytype=2;
if(ADD==0)keytype=3;
if(SET==0)keytype=5;
}
if(keyon==1&&SET2==1&&NEXT==1&&REDUCE==1&&ADD==1) //键盘松开后判断键盘状态
{
if(keytype==1)////////////////菜单下翻
{
if(m>=6)m=0;
else m++;
}
if(keytype==3) ////////////////加操作
{
if(m==0)
{
if(year<32)
year++;
else
year=8;
}
if(m==1)
{
if(month<12)
month++;
else
month=1;
}
if(m==2)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(date<31)
date++;
else
date=1;
}
if(month==4||month==6||month==9||month==11)
{
if(date<30)
date++;
else
date=1;
}
if(month==2)
{
if(year%4==0 && year%100!=0 || year%400==0)
{
if(date<29)
date++;
else
date=1;
}
if(!(year%4==0 && year%100!=0 || year%400==0))
{
if(date<28)
date++;
else
date=1;
}
}
}
if(m==3)
{
if(hour<23)
hour++;
else
hour=0;
}
if(m==4)
{
if(minute<59)
minute++;
else
minute=0;
}
if(m==5)
{
if(second<59)
second++;
else
second=0;
}
if(m==6)
{
if(week<7)
week++;
else
week=1;
}
}
if(keytype==2) ////////////////减操作
{
if(m==0)
{
if(year>8)
year--;
else
year=32;
}
if(m==1)
{
if(month>1)
month--;
else
month=12;
}
if(m==2)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(date>1)
date--;
else
date=31;
}
if(month==4||month==6||month==9||month==11)
{
if(date>1)
date--;
else
date=30;
}
if(month==2)
{
if(year%4==0 && year%100!=0 || year%400==0)
{
if(date>1)
date--;
else
date=29;
}
if(!(year%4==0 && year%100!=0 || year%400==0))
{
if(date>1)
date--;
else
date=28;
}
}
}
if(m==3)
{
if(hour>0)
hour--;
else
hour=23;
}
if(m==4)
{
if(minute>0)
minute--;
else
minute=59;
}
if(m==5)
{
if(second>0)
second--;
else
second=59;
}
if(m==6)
{
if(week>1)
week--;
else
week=7;
}
}
if(keytype==0) ///////////跳出温度设置
{
keyon=0;
keytype=4;
out=1;
}
if(keytype==5)
{
keyon=0;
keytype=4;
out=1;
out2=1;
}
keyon=0;
keytype=4;
}
}
////////////////////////////////时间设置结束/////////////////////////////////////
void main()
{
unsigned char i;
P1=0XFF;
BLUE=1;
RED=1;
SPEAKER=1;
DS1302_init();
lcd_init();
lcd_pos(0);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x40);
i=0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]);
i++;
}
while(1)
{
ReadTemperature();
t_codechange();
DS1302_readdate();
ds_codechange();
lcd_pos(0);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x40);
i=0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]);
i++;
}
if(SET==0) /////////////////////////进入报警温度设定
{
out=0;
delay(300);
while(SET==0);
strcpy(dis1,"ALARM-H: OFF 35 \0");
strcpy(dis2,"ALARM-L: OFF 00 \0");
lcd_init2();
lcd_pos(0);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x40);
i=0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]);
i++;
}
lcd_pos(0x0a);//光标显示在高温开关位置
m=0;
keyon=0;
keytype=4;
while(1)
{
Display2();
seting();
if (out==1)
{
lcd_init();
strcpy(dis1,"03-11 19:57:00 2\0");
strcpy(dis2,"NOW TEMP: 015.0 \0");
break;
}
delay(1000);
}
delay(200);
while(SET==0);
}
if(SET2==0) /////////////////////////进入时间设定
{
out=0;
out2=0;
delay(300);
while(SET2==0);
strcpy(dis1,"TIME SET: 2008 \0");
strcpy(dis2,"10-11 19:57:00 2\0");
lcd_init2();
lcd_pos(0);
i=0;
while(dis1[i]!='\0')
{
lcd_wdat(dis1[i]);
i++;
}
lcd_pos(0x40);
i=0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]);
i++;
}
lcd_pos(0x0d);//光标显示在高温开关位置
m=0;
keyon=0;
keytype=4;
while(1)
{
Display3();
seting2();
if (out==1)
{
lcd_init();
strcpy(dis1,"03-11 19:57:00 2\0");
strcpy(dis2,"NOW TEMP: 015.0 \0");
if(out2==0) DS1302_writedate();
break;
}
delay(1000);
}
delay(200);
while(SET2==0);
while(SET==0);
}
delay(30000);
if(tH==1)
RED=1;
else if(tH==-1&&temperature>=temperatureH)
{
RED=0;
SPEAKER=1;
delay(10000);
SPEAKER=0;
RED=1;
delay(10000);
SPEAKER=1;
Too_hot();
delay(50000);
} //////满足条件是开启高温报警
else if(temperature<(temperatureH-0.2))
RED=1;
if(tL==1)
BLUE=1;
if(tL==-1&&temperature<=temperatureL)
{
BLUE=0;
SPEAKER=1;
delay(10000);
SPEAKER=0;
BLUE=1;
delay(10000);
SPEAKER=1;
Too_cold();
delay(50000);
}//////满足条件时开启低温报警
else if(temperature>(temperatureL+0.2))
BLUE=1;
if(RED==1&&BLUE==1)
SPEAKER=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -