📄 main.c
字号:
#include "reg51.h"
#include "1302.h"
#include "key.h"
#include "12864.h"
#include "ds18b20.h"
#include "zifu.h"
#include "gton.h"
////////////////////显示函数////////////////////////
/*************
节日显示
monthg1,dayg1 为公历日期
monthn1,dayn1为农历日期
**************/
void jieri(uchar monthg1,uchar dayg1,uchar monthn1,dayn1)
{
uchar i,j,temp11;
i=0;
temp11=30;
for(i=0;i<6;i++)
{
if((monthn1==feastn_focus[i][0])&&(dayn1==feastn_focus[i][1]))
{
temp11=i;
break;
}
}
if(temp11!=30) //农历有节日,优先显示农历
{
for(i=0;i<6;i++)
for(j=i*16;j<i*16+16;j++)
{
if(i%2==0)
datatemp[j]=feastn[temp11][j]|0x01;
else
datatemp[j]=feastn[temp11][j];
}
datatemp[0]=0xff;
datatemp[16]=0xff;
play1616(0,0,0,datatemp);
play1616(0,2,0,datatemp+32);
play1616(0,4,0,datatemp+64);
}
else //无农历节日时方检查是否有公历节日
{
for(i=0;i<23;i++)
{
if((monthg1==feastg_focus[i][0])&&(dayg1==feastg_focus[i][1]))
{
temp11=i;
break;
}
}
if(temp11!=30)
{
for(i=0;i<6;i++)
for(j=i*16;j<i*16+16;j++)
{
if(i%2==0)
datatemp[j]=feastg[temp11][j]|0x01;
else
datatemp[j]=feastg[temp11][j];
}
datatemp[0]=0xff;
datatemp[16]=0xff;
play1616(0,0,0,datatemp);
play1616(0,2,0,datatemp+32);
play1616(0,4,0,datatemp+64);
}
else
{
if((10*datastring[6]+datastring[7])>=18)
{
for(i=0;i<6;i++)
for(j=i*16;j<i*16+16;j++)
{
if(i%2==0)
datatemp[j]=night[j]|0x01;
else
datatemp[j]=night[j];
}
datatemp[0]=0xff;
datatemp[16]=0xff;
play1616(0,0,0,datatemp);
play1616(0,2,0,datatemp+32);
play1616(0,4,0,datatemp+64);
}
else
{
for(i=0;i<6;i++)
for(j=i*16;j<i*16+16;j++)
{
if(i%2==0)
datatemp[j]=daytime[j]|0x01;
else
datatemp[j]=daytime[j];
}
datatemp[0]=0xff;
datatemp[16]=0xff;
play1616(0,0,0,datatemp);
play1616(0,2,0,datatemp+32);
play1616(0,4,0,datatemp+64);
}
}
}
}
/*************
生肖显示
year取年份后两位,如2008,year=08
**************/
void dispshengxiao(uchar year)
{
uchar i;
for(i=0;i<16;i++)
datatemp[i]=shengxiao[year%12][i]|0x01;
for(i=16;i<32;i++)
datatemp[i]=shengxiao[year%12][i];
datatemp[0]=0xff;
datatemp[16]=0xff;
play1616(0,6,0,datatemp);
}
////////////////////////////////////////////////////
/***************定时器0键盘扫描处理 *****************/
void keyset() interrupt 1
{
uchar keycode;
uchar move=0,weekvalue,mm;
uint sum=0;
bit fg;
// gettemperature(); //取温度存在temp数组中
keycode=keyscan();
if(keycode==0x11&&ringflag==0)
{
clear12864();
play816(0,2,0,shuzi1[2],0);
play816(0,3,0,shuzi1[0],0);
play816(0,4,0,shuzi1[datastring[0]],1);
play816(0,5,0,shuzi1[datastring[1]],1);
play1616(0,6,0,hang);
play816(1,0,0,shuzi1[datastring[2]],0);
play816(1,1,0,shuzi1[datastring[3]],0);
play1616(1,2,0,hang);
play816(1,4,0,shuzi1[datastring[4]],0);
play816(1,5,0,shuzi1[datastring[5]],0);
play816(0,4,1,shuzi1[datastring[6]],0);
play816(0,5,1,shuzi1[datastring[7]],0);
play816(0,6,1,dian1,0);
play816(0,7,1,shuzi1[datastring[8]],0);
play816(1,0,1,shuzi1[datastring[9]],0);
play816(1,1,1,dian1,0);
play816(1,2,1,shuzi1[0],0);
play816(1,3,1,shuzi1[0],0);
play1616(0,2,2,nao);
play1616(0,4,2,zhong);
play816(0,6,2,dian1,0);
play816(0,7,2,shuzi1[ringtime[0]],0);
play816(1,0,2,shuzi1[ringtime[1]],0);
play816(1,1,2,dian1,0);
play816(1,2,2,shuzi1[ringtime[2]],0);
play816(1,3,2,shuzi1[ringtime[3]],0);
if(ringtime[4]==0)
{
play816(1,4,2,no,0);
}
else
play816(1,4,2,yes,0);
for(;;)
{
keycode=keyscan();
if(keycode==0x12) //按下光标键
{
move++;
if(move>7)
move=0;
switch(move)
{
case 0 :
{
if(ringtime[4]==0)
{
play816(1,4,2,no,0);
}
else
play816(1,4,2,yes,0);
play816(0,4,0,shuzi1[datastring[0]],1);
play816(0,5,0,shuzi1[datastring[1]],1);
break;
}
case 1:
{
play816(0,4,0,shuzi1[datastring[0]],0);
play816(0,5,0,shuzi1[datastring[1]],0);
play816(1,0,0,shuzi1[datastring[2]],1);
play816(1,1,0,shuzi1[datastring[3]],1);
break;
}
case 2:
{
play816(1,0,0,shuzi1[datastring[2]],0);
play816(1,1,0,shuzi1[datastring[3]],0);
play816(1,4,0,shuzi1[datastring[4]],1);
play816(1,5,0,shuzi1[datastring[5]],1);
break;
}
case 3:
{
play816(1,4,0,shuzi1[datastring[4]],0);
play816(1,5,0,shuzi1[datastring[5]],0);
play816(0,4,1,shuzi1[datastring[6]],1);
play816(0,5,1,shuzi1[datastring[7]],1);
break;
}
case 4:
{
play816(0,4,1,shuzi1[datastring[6]],0);
play816(0,5,1,shuzi1[datastring[7]],0);
play816(0,7,1,shuzi1[datastring[8]],1);
play816(1,0,1,shuzi1[datastring[9]],1);
break;
}
case 5:
{
play816(0,7,1,shuzi1[datastring[8]],0);
play816(1,0,1,shuzi1[datastring[9]],0);
play816(0,7,2,shuzi1[ringtime[0]],1);
play816(1,0,2,shuzi1[ringtime[1]],1);
break;
}
case 6:
{
play816(0,7,2,shuzi1[ringtime[0]],0);
play816(1,0,2,shuzi1[ringtime[1]],0);
play816(1,2,2,shuzi1[ringtime[2]],1);
play816(1,3,2,shuzi1[ringtime[3]],1);
break;
}
case 7:
{
play816(1,2,2,shuzi1[ringtime[2]],0);
play816(1,3,2,shuzi1[ringtime[3]],0);
if(ringtime[4]==0)
{
play816(1,4,2,no,1);
}
else
play816(1,4,2,yes,1);
break;
}
default:;
}
}
if(keycode==0x21) //按下加键
{
switch(move)
{
case 0:
{
datastring[1]++;
if(datastring[1]>9)
{
datastring[0]++;
datastring[1]=0;
}
if(datastring[0]>9)
{
datastring[1]=0;
datastring[0]=0;
}
play816(0,4,0,shuzi1[datastring[0]],1);
play816(0,5,0,shuzi1[datastring[1]],1);
break;
}
case 1:
{
datastring[3]++;
if(datastring[3]>9)
{
datastring[2]++;
datastring[3]=0;
}
if((datastring[2]==1)&&(datastring[3]==3))
{
datastring[2]=0;
datastring[3]=1;
}
play816(1,0,0,shuzi1[datastring[2]],1);
play816(1,1,0,shuzi1[datastring[3]],1);
break;
}
case 2:
{
datastring[5]++;
if(datastring[5]>9)
{
datastring[4]++;
datastring[5]=0;
}
fg=yearstype(2000+10*datastring[0]+datastring[1]);
if((10*datastring[4]+datastring[5])>days_in_a_mon[fg][(10*datastring[2]+datastring[3])-1])
{
datastring[4]=0;
datastring[5]=1;
}
play816(1,4,0,shuzi1[datastring[4]],1);
play816(1,5,0,shuzi1[datastring[5]],1);
break;
}
case 3:
{
datastring[7]++;
if(datastring[7]>9)
{
datastring[6]++;
datastring[7]=0;
}
if((datastring[6]==2)&&(datastring[7]==5))
{
datastring[6]=0;
datastring[7]=1;
}
play816(0,4,1,shuzi1[datastring[6]],1);
play816(0,5,1,shuzi1[datastring[7]],1);
break;
}
case 4:
{
datastring[9]++;
if(datastring[9]>9)
{
datastring[8]++;
datastring[9]=0;
}
if((datastring[8]==6)&&(datastring[9]==0))
{
datastring[8]=0;
datastring[9]=0;
}
play816(0,7,1,shuzi1[datastring[8]],1);
play816(1,0,1,shuzi1[datastring[9]],1);
break;
}
case 5:
{
ringtime[1]++;
if(ringtime[1]>9)
{
ringtime[0]++;
ringtime[1]=0;
}
if((ringtime[0]==2)&&(ringtime[1]==5))
{
ringtime[0]=0;
ringtime[1]=1;
}
play816(0,7,2,shuzi1[ringtime[0]],1);
play816(1,0,2,shuzi1[ringtime[1]],1);
break;
}
case 6:
{
ringtime[3]++;
if(ringtime[3]>9)
{
ringtime[2]++;
ringtime[3]=0;
}
if((ringtime[2]==6)&&(ringtime[3]==0))
{
ringtime[2]=0;
ringtime[3]=0;
}
play816(1,2,2,shuzi1[ringtime[2]],1);
play816(1,3,2,shuzi1[ringtime[3]],1);
break;
}
case 7:
{
ringtime[4]=~(ringtime[4]);
if(ringtime[4]==0)
{
play816(1,4,2,no,1);
}
else
play816(1,4,2,yes,1);
break;
}
default:;
}
}
if(keycode==0x22) //按下减键
{
switch(move)
{
case 0:
{
if(datastring[1]==0)
{
if(datastring[0]==0)
{
datastring[0]=9;
datastring[1]=9;
}
else
{
datastring[0]--;
datastring[1]=9;
}
}
else
datastring[1]--;
play816(0,4,0,shuzi1[datastring[0]],1);
play816(0,5,0,shuzi1[datastring[1]],1);
break;
}
case 1:
{
if(datastring[3]==0)
{
datastring[2]--;
datastring[3]=9;
}
else
datastring[3]--;
if(datastring[3]==0 && datastring[2]==0)
{
datastring[2]=1;
datastring[3]=2;
}
play816(1,0,0,shuzi1[datastring[2]],1);
play816(1,1,0,shuzi1[datastring[3]],1);
break;
}
case 2:
{
fg=yearstype(2000+10*datastring[0]+datastring[1]);
// if((10*datastring[4]+datastring[5])>days_in_a_mon[fg][(10*datastring[2]+datastring[3])-1])
if(datastring[5]==0)
{
datastring[4]--;
datastring[5]=9;
}
else
datastring[5]--;
if(datastring[5]==0 && datastring[4]==0)
{
datastring[4]=days_in_a_mon[fg][(10*datastring[2]+datastring[3])-1]/10;;
datastring[5]=days_in_a_mon[fg][(10*datastring[2]+datastring[3])-1]%10;
}
play816(1,4,0,shuzi1[datastring[4]],1);
play816(1,5,0,shuzi1[datastring[5]],1);
break;
}
case 3:
{
if(datastring[7]==0)
{
datastring[6]--;
datastring[7]=9;
}
else
datastring[7]--;
if(datastring[7]==0 && datastring[6]==0)
{
datastring[6]=2;
datastring[7]=4;
}
play816(0,4,1,shuzi1[datastring[6]],1);
play816(0,5,1,shuzi1[datastring[7]],1);
break;
}
case 4:
{
if(datastring[9]==0)
{
if(datastring[8]==0)
{
datastring[8]=5;
datastring[9]=9;
}
else
{
datastring[8]--;
datastring[9]=9;
}
}
else
datastring[9]--;
play816(0,7,1,shuzi1[datastring[8]],1);
play816(1,0,1,shuzi1[datastring[9]],1);
break;
}
case 5:
{
if(ringtime[1]==0)
{
ringtime[0]--;
ringtime[1]=9;
}
else
ringtime[1]--;
if(ringtime[1]==0 && ringtime[0]==0)
{
ringtime[0]=2;
ringtime[1]=4;
}
play816(0,7,2,shuzi1[ringtime[0]],1);
play816(1,0,2,shuzi1[ringtime[1]],1);
break;
}
case 6:
{
if(ringtime[3]==0)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -