📄 lcd1.c
字号:
for(i=0;i<7;i++)
time1[i]=curtime1[i];
min=(time1[0]*24+time1[1])*60+time1[2];
if((min<min1)||(min>min2))
{
AT24C64_R(&rbuf,199,1);//读出记录号
record=rbuf[0]-0x30;
if(record==30)
record=0;
LCD_Init();
Battery(P1&0x03);
display_page3(1);//报警提示
//AT24C64_R(&rbuf,3,3);//读出编号
for(i=0;i<3;i++)
Displayz(84,13+i*2,receive[i+1]-0x30);
AT24C64_R(&rbuf,1000,1);//读出汉字的个数
hz_shu=rbuf[0]-0x30;
//test
//for(j=0;j<2;j++)//显示汉字
for(j=0;j<hz_shu;j++)//显示汉字
{
AT24C64_R(&rbuf,1001+j*32,32);
Display(108,13+j*2);
}
//test
//switch(1)
switch(checkOder())
{
case 1: //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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
case 2: //B相断线报警
Displayz(132,17,82);//B
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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
case 3://C相断线报警
Displayz(132,17,83);//C
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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
case 4: //太阳能报警
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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
case 5: //振动报警
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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
case 6: //红外线报警
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);
Fmq=1;//蜂鸣器报警
receiveFinish=0;
break;
default:
receiveFinish=0;
break;
}
rbuf[0]=record+1+0x30; //记录号
for(i=1;i<7;i++)
rbuf[i]=receive[i];
rbuf[7]=time1[6]/10+0x30;//时间 年
rbuf[8]=time1[6]%10+0x30;
rbuf[9]=time1[4]/10+0x30;//时间 月
rbuf[10]=time1[4]%10+0x30;
rbuf[11]=time1[3]/10+0x30;//时间 日
rbuf[12]=time1[3]%10+0x30;
rbuf[13]=time1[2]/10+0x30;//时间 时
rbuf[14]=time1[2]%10+0x30;
rbuf[15]=time1[1]/10+0x30;//时间 分
rbuf[16]=time1[1]%10+0x30;
AT24C64_W(&rbuf,200+record*18,17);//报警数据
rbuf[0]=record+1+0x30;
AT24C64_W(&rbuf,199,1);//总的记录数
v_Get1302();
time=curtime1[1];
keyTemp = 100;
i=0;count1=0;
do
{
keyTemp=Scan_Key();
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(curtime1[1] !=time) //时钟一分钟刷新一次
{
time=curtime1[1];
clock();
count1++;
}
if(count1==5) //5分钟超时退出
keyTemp=20;
}while(keyTemp==100);
if(keyTemp==14)//清除键
{
LCD_Init();
Battery(P1&0x03);
display_page6();
v_Get1302();
time=curtime1[1];
keyTemp = 100;
i=0;count1=0;
do
{
keyTemp=Scan_Key();
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(curtime1[1] !=time)
{
time=curtime1[1];
clock();
count1++;
}
if(count1==5)
keyTemp=20;
}while(keyTemp==100);
if(keyTemp==13)//回车键
{
LCD_Init();
Battery(P1&0x03);
display_page1();
rbuf[0]=0x31;//把1存到一个地址里
AT24C64_W(&rbuf,200+record*18+17,1);
}
else
{
LCD_Init();
Battery(P1&0x03);
display_page1();
rbuf[0]=0x30;//把0存到一个地址里
AT24C64_W(&rbuf,200+record*18+17,1);
}
rbuf[0]=0x30;
}
else //不是清除键
{
LCD_Init();
Battery(P1&0x03);
display_page1();
rbuf[0]=0x30;//把0存到一个地址里
AT24C64_W(&rbuf,200+record*18+17,1);
}
} //在时间段呢
}//接受结束
keyTemp=Scan_Key();
if(keyTemp==12)//MENU
{
v_Get1302();
time=curtime1[1];
LCD_Init();
Battery(P1&0x03);
display_page2();
for(i=0;i<6;i++) //系统时间设置
Displayf(94,14+i*2,10+i);
keyTemp = 100;
coun=1; min1=1 ; i=0;count1=0;
do
{
keyTemp=Scan_Key();
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(keyTemp==11) //down
{
if(coun==3)
coun=1;
else
coun++;
}
if(keyTemp==10) //up
{
if(coun==1)
coun=3;
else
coun--;
}
switch(coun)
{
case 1:
for(i=0;i<6;i++) //系统时间设置
Displayf(94,14+i*2,10+i);
for(i=0;i<4;i++)//日常维护
Displayz(134,14+i*2,16+i);
for(i=0;i<2;i++)//设置
Displayz(134,22+i*2,14+i);
for(i=0;i<6;i++)//报警记录查询查询
Displayz(174,14+i*2,20+i);
break;
case 2:
for(i=0;i<6;i++) //系统时间设置
Displayz(94,14+i*2,10+i);
for(i=0;i<4;i++)//日常维护
Displayf(134,14+i*2,16+i);
for(i=0;i<2;i++)//设置
Displayf(134,22+i*2,14+i);
for(i=0;i<6;i++)//报警记录查询查询
Displayz(174,14+i*2,20+i);
break;
case 3:
for(i=0;i<6;i++) //系统时间设置
Displayz(94,14+i*2,10+i);
for(i=0;i<6;i++)//报警记录查询查询
Displayf(174,14+i*2,20+i);
for(i=0;i<4;i++)//日常维护
Displayz(134,14+i*2,16+i);
for(i=0;i<2;i++)//设置
Displayz(134,22+i*2,14+i);
break;
default:
break;
}
if(curtime1[1] !=time)
{
time=curtime1[1];
clock();
count1++;
}
if(count1==5)
keyTemp=20;
if((keyTemp==13)||(keyTemp==15)||(keyTemp==20))
min1=0;
}while(min1==1);
if(keyTemp==13)//回车
{
v_Get1302();
time=curtime1[1];
count1=0;
if(coun==1)
{
AT24C64_R(&rbuf,0,3); //判断是否是管理员
for(j=0;j<3;j++)
rbuf[j]=rbuf[j]-0x30;
if((rbuf[0]==1)&&(rbuf[1]==2)&&(rbuf[2]==3))
{
LCD_Init();
Battery(P1&0x03);
display_page4();
shezhi1();
}
}
if(coun==2)
{
LCD_Init();
Battery(P1&0x03);
display_page5();
AT24C64_R(&rbuf,0,3);
for(j=0;j<3;j++)
rbuf[j]=rbuf[j]-0x30;
Displayz(200,13,rbuf[0]);
Displayz(200,15,rbuf[1]);
Displayz(200,17,rbuf[2]);
shezhi2();
}
if(coun==3)
{
LCD_Init();
Battery(P1&0x03);
display_page3(2);
//AT24C64_R(&rbuf,3,3);//编号
//Displayz(84,13,rbuf[0]);
//Displayz(84,15,rbuf[1]);
//Displayz(84,17,rbuf[2]);
AT24C64_R(&rbuf,1000,1);//读出汉字的个数
hz_shu=rbuf[0]-0x30;
//test
//for(j=0;j<1;j++)//显示汉字
for(j=0;j<hz_shu;j++)//显示汉字
{
AT24C64_R(&rbuf,1001+j*32,32);
Display(108,13+j*2);
}
AT24C64_R(&rbuf,199,1); //记录号
record=rbuf[0]-0x30;
AT24C64_R(&rbuf,722,1); //第三十条记录号
record1=rbuf[0]-0x30;
if((record>0)&&(record1!=30))
{count1=record; flag2=0;}
if(record1==30)
{count1=record; flag2=1;}
v_Get1302();
time=curtime1[1];
j=0;
bjcx(count1);
do
{
keyTemp=Scan_Key();
if(flag2==0)
{
if((keyTemp==10))
{
count1--;
if(count1==0)
count1=record;
AT24C64_R(&rbuf,200+count1*18,18);
bjcx(count1);
}
if(keyTemp==11)
{
count1++;
if(count1>record)
count1=1;
AT24C64_R(&rbuf,200+count1*18,18);
bjcx(count1);
}
}
if(flag2==1)
{
if(keyTemp==10)
{
count1--;
if(count1==0)
count1=30;
AT24C64_R(&rbuf,200+count1*18,18);
bjcx(count1);
}
if(keyTemp==11)
{
count1++;
if(count1==31)
count1=1;
AT24C64_R(&rbuf,200+count1*18,18);
bjcx(count1);
}
}
if(i >= 5)
{
i = 0;
v_Get1302();
}
delay3();
i++;
if(curtime1[1] !=time)
{
time=curtime1[1];
clock();
j++;
}
if(j==5)
keyTemp=15;
}while(keyTemp!=15);
LCD_Init();
Battery(P1&0x03);
display_page1();
}
}
else
{
LCD_Init();
Battery(P1&0x03);
display_page1();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -