📄 lcd1.c
字号:
sy=20;
sx=164;
}
if(sum<10)
Displayz(sx,sy,92);
if((sum>0)&&(sy>=20))
{
if(keyTemp==15)//后退键
{
if(sum==6)
{
Displayz(sx,sy,93);
sy=34;
sx=114;
Displayz(sx,sy,92);
sum--;
flag1=1;
}
if((sum%2==0)&&(sum!=6))
{sy=sy-4;sum--;
Displayz(sx,sy+4,93);}
else
{
if(flag1==0)
{sy=sy-2;sum--;
Displayz(sx,sy+2,93);}
}
flag1=0;
}
}
if(keyTemp<=9)//数字键
{
Displayz(sx,sy,keyTemp);
sum++;
if(sum%2==0)
sy=sy+4;
else
sy=sy+2;
rbuf[sum-1]=keyTemp;
}
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(curtime1[1] !=time)
{
time=curtime1[1];
clock();
count3++;
}
if(count3==5)
flags=1;
if((keyTemp==10)||(keyTemp==11)||(keyTemp==12)||(keyTemp==14))//上翻 下翻 MENU clear
flags=1;
if((keyTemp==13)&&(sum==10)||(flags==1))
h=0;
}while(h==1);
if(flags==1)
{
LCD_Init();
Battery(P1&0x03);
display_page1();//先显示翰正科技
}
if(keyTemp==13)//回车键
{
if(sum==10) //设置系统时间
{
curtime1[0]=0;
curtime1[1]=rbuf[8]*10+rbuf[9];
curtime1[2]=rbuf[6]*10+rbuf[7];
curtime1[3]=rbuf[4]*10+rbuf[5];
curtime1[4]=rbuf[2]*10+rbuf[3];
curtime1[5]=1;
curtime1[6]=rbuf[0]*10+rbuf[1];
v_Set1302(curtime1);
}
LCD_Init();
Battery(P1&0x03);
display_page1();//先显示翰正科技
}
}
void shezhi2(void)
{
uchar sx,sy,flags=0,sum=0,h=1,flag2=0,time,count3=0,i=0;
keyTemp=100;
sy=13;
sx=100;
v_Get1302();
time=curtime1[1];
do
{ FeedDog();
keyTemp=Scan_Key();
if(sum==20)
{
if(keyTemp<=9)
keyTemp=100;
}
FeedDog();
if(sum==6)
{
sy=13;
sx=120;
}
if(sum==10)
{
sy=13;
sx=160;
}
if(sum==16)
{
sy=13;
sx=180;
}
if(sum<20)
Displayz(sx,sy,92);
if((sum>0)&&(sy>=13))
{
if(keyTemp==15)//后退键
{
if(sum==6)
{
Displayz(sx,sy,93);
sy=27;
sx=100;
Displayz(sx,sy,92);
sum--;
flag2=1;
}
if(sum==10)
{
Displayz(sx,sy,93);
sy=21;
sx=120;
Displayz(sx,sy,92);
sum--;
flag2=1;
}
if(sum==16)
{
Displayz(sx,sy,93);
sy=21;
sx=160;
Displayz(sx,sy,92);
sum--;
flag2=1;
}
if((sum%2==0)&&(sum!=6)&&(sum!=10)&&(sum!=16))
{sy=sy-4;sum--;
Displayz(sx,sy+4,93);}
else
{
if(flag2==0)
{
sy=sy-2;sum--;
Displayz(sx,sy+2,93);
}
}
flag2=0;
}
}
if(keyTemp<=9) //数字键
{
Displayz(sx,sy,keyTemp);
sum++;
if(sum%2==0)
sy=sy+4;
else
sy=sy+2;
rbuf[sum-1]=keyTemp+0x30;
}
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(curtime1[1] !=time)
{
time=curtime1[1];
clock();
count3++;
}
if(count3==5)
flags=1;
if((keyTemp==10)||(keyTemp==11)||(keyTemp==12)||(keyTemp==14))//上翻 下翻 MENU clear
flags=1;
if((keyTemp==13)&&(sum==20)||(flags==1))
h=0;
}while(h==1);
if(flags==1)
{
LCD_Init();
Battery(P1&0x03);
display_page1();//先显示翰正科技
}
if(keyTemp==13)
{
if(sum==20) //保存日常维护时间
{
AT24C64_W(&rbuf,100,20);
}
LCD_Init();
Battery(P1&0x03);
display_page1();//先显示翰正科技
}
}
void bjcx(uchar n)
{
uchar i;
n -= 1;
AT24C64_R(&rbuf,200+n*18,18);
Displayz(84,13,rbuf[1]-0x30);
Displayz(84,15,rbuf[2]-0x30);
Displayz(84,17,rbuf[3]-0x30);
//在时钟里读出来的(变动)并存在24c卡里
Displayz(156,21,rbuf[7]-0x30);//年
Displayz(156,23,rbuf[8]-0x30);
Displayz(156,27,rbuf[9]-0x30);//月
Displayz(156,29,rbuf[10]-0x30);
Displayz(156,33,rbuf[11]-0x30);//日
Displayz(156,35,rbuf[12]-0x30);
Displayz(180,21,rbuf[13]-0x30);//时
Displayz(180,23,rbuf[14]-0x30);
Displayz(180,27,rbuf[15]-0x30);//分
Displayz(180,29,rbuf[16]-0x30);
Displayz(204,17,rbuf[17]-0x30);//未
if(rbuf[6]==0x41)
{ //A相断线报警
Displayz(132,17,81);//A
for(i=0;i<3;i++)//相断线
Displayz(132,19+i*2,77+i);
for(i=0;i<2;i++) //报警
Displayz(132,25+i*2,20+i);
}
if(rbuf[6]==0x42)
{ //B相断线报警
Displayz(132,17,82);//A
for(i=0;i<3;i++)//相断线
Displayz(132,19+i*2,77+i);
for(i=0;i<2;i++) //报警
Displayz(132,25+i*2,20+i);
}
if(rbuf[6]==0x43)
{ //C相断线报警
Displayz(132,17,83);//A
for(i=0;i<3;i++)//相断线
Displayz(132,19+i*2,77+i);
for(i=0;i<2;i++) //报警
Displayz(132,25+i*2,20+i);
}
if(rbuf[6]==0x53)
{ //太阳能报警
for(i=0;i<3;i++)//太阳能
Displayz(132,17+i*2,70+i);
for(i=0;i<2;i++) //报警
Displayz(132,23+i*2,20+i);
Displayz(132,27,93);
}
if(rbuf[6]==0x5a)
{ //振动报警
for(i=0;i<2;i++)//振动
Displayz(132,17+i*2,73+i);
for(i=0;i<2;i++) //报警
Displayz(132,21+i*2,20+i);
Displayz(132,25,93);
Displayz(132,27,93);
}
if(rbuf[6]==0x48)
{
//红外线报警
for(i=0;i<2;i++)//红外
Displayz(132,17+i*2,75+i);
for(i=0;i<2;i++) //报警
Displayz(132,21+i*2,20+i);
Displayz(132,25,93);
Displayz(132,27,93);
}
}
main()
{
//uchar rbuf[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},wbuf[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
uchar j;
uint i;
uchar coun=1,count1=0,time=0,time1[7],flag2=0;
uint min1,min2,min;
uchar record=0,record1=0,hz_shu=0;//地址的汉字个数
Fmq=1;
/*
rbuf[0]=1;rbuf[1]=2;rbuf[2]=3; //卡号
AT24C64_W(&rbuf,0,3);
for(i=0;i<9;i++)//读出日常维护起始设置
rbuf[i]=i;
AT24C64_W(&rbuf,100,9);
for(i=0;i<9;i++)//读出日常维护结束设置
rbuf[i]=i+2;
AT24C64_W(&rbuf,106,9);
rbuf[0]=1;rbuf[1]=4;rbuf[2]=5;//编号
AT24C64_W(&rbuf,3,3);
rbuf[0]=0+0x30;//总的记录号
AT24C64_W(&rbuf,199,1);
rbuf[0]=0+0x30;
AT24C64_W(&rbuf,722,1);
for(i=0;i<18;i++)//存的报警量
rbuf[i]=0+0x30;
AT24C64_W(&rbuf,200,18);
AT24C64_W(&rbuf,218,18);
AT24C64_W(&rbuf,236,18);
AT24C64_W(&rbuf,254,18);
AT24C64_W(&rbuf,272,18);
AT24C64_W(&rbuf,290,18);
AT24C64_W(&rbuf,308,18);
AT24C64_W(&rbuf,326,18);
AT24C64_W(&rbuf,344,18);
AT24C64_W(&rbuf,362,18);
AT24C64_W(&rbuf,380,18);
AT24C64_W(&rbuf,398,18);
AT24C64_W(&rbuf,416,18);
AT24C64_W(&rbuf,434,18);
AT24C64_W(&rbuf,452,18);
AT24C64_W(&rbuf,470,18);
AT24C64_W(&rbuf,488,18);
AT24C64_W(&rbuf,506,18);
AT24C64_W(&rbuf,524,18);
AT24C64_W(&rbuf,542,18);
AT24C64_W(&rbuf,560,18);
AT24C64_W(&rbuf,578,18);
AT24C64_W(&rbuf,596,18);
AT24C64_W(&rbuf,614,18);
AT24C64_W(&rbuf,632,18);
AT24C64_W(&rbuf,650,18);
AT24C64_W(&rbuf,668,18);
AT24C64_W(&rbuf,686,18);
AT24C64_W(&rbuf,704,18);
AT24C64_W(&rbuf,722,18);*/
uart_int();
I2C_Init();
LCD_Init();
//v_Set1302(curtime1);
v_Get1302();
Battery(P1&0x03);
display_page1();//先显示翰正科技
for(i=0;i<10;i++)//延时30s
delay3();
AT24C64_R(&rbuf,0,3); //读卡号
for(j=0;j<3;j++)
rbuf[j]=rbuf[j]-0x30;
if((rbuf[0]==255)&&(rbuf[1]==255)&&(rbuf[2]==255)) //为假,显示无效卡
{
LCD_Init();
display_page7();//显示无效卡
i = 0;
do
{
if(i == 5)
{
i = 0;
AT24C64_R(&rbuf,0,3);
for(j=0;j<3;j++)
rbuf[j]=rbuf[j]-0x30;
}
delay3();
i++;
}while((rbuf[0]==255)&&(rbuf[1]==255)&&(rbuf[2]==255)) ;
LCD_Init();
display_page1();//先显示翰正科技
}
while(1)
{
FeedDog();
/////////////////////////////////
//test
keyTemp=Scan_Key();
//if(keyTemp == 1)
if((receiveFinish==1)) //接收数据结束
{
AT24C64_R(&rbuf,104,6);//读出日常维护起始时间 日 时 分
for(j=0;j<6;j++)
rbuf[j]=rbuf[j]-0x30;
min1=((rbuf[0]*10+rbuf[1])*24+rbuf[2]*10+rbuf[3])*60+rbuf[4]*10+rbuf[5];
AT24C64_R(&rbuf,114,6);//读出日常维护起始时间 日 时 分
for(j=0;j<6;j++)
rbuf[j]=rbuf[j]-0x30;
min2=((rbuf[0]*10+rbuf[1])*24+rbuf[2]*10+rbuf[3])*60+rbuf[4]*10+rbuf[5];
v_Get1302();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -