📄 lcm16864zk.c
字号:
while(1)
{
if(LKEY==1) break;
}
break;
}
}
if(RKEY==0) //继续输入下一个向量的设定
{
Delay_ms(10); //延时去抖动
if(RKEY==0)
{
RobSetNext();
}
}
ShowTime();
Delay_ms(10);
}
}
////}////////////////////////////////////////////防盗设置
void StealSet(void)
{
uchar j;
// uchar CodeN[2];
WritCommand(0x01); //清零
WritCommand(0x0c);
WritCommand(0x92);
WritData(0xb7);WritData(0xc0);WritData(0xb5);WritData(0xc1); //防盗设置
WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);
ShowPart5(); //进入 另选
while(1)
{
if(RKEY==0)
{
while(1){if(RKEY==1) break; }
break;
}
if(LKEY==0)
{
while(1) {if(LKEY==1)break;}
RobData=0x00; //报警向量设为00
TeleAlarm(); //电话报警:Y
WhistleAlarm(); //鸣警笛:Y
AlarmRelay(); //报警接力:Y
BlankLocal(); //封锁现场:Y
EjectFog(); //喷射眠雾:Y
pdx=0x0201;
*pdx=RobData;
j=EjectorNum(); //发射器编号设置
StealSet1(j);
break;
}
Delay_ms(10);
ShowTime();
}
}
void StealSet1(uchar num)
{
uchar i,j;
WritCommand(0x0c); //填写 不填 继续
ShowPart14();
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
pdx=0x0200;
i=*pdx;
*pdx=i+1;
pdx=0x0202+i+1;
*pdx=num;
while(1)
{
if(LKEY==1) break;
}
break;
}
}
if(MKEY==0)
{
Delay_ms(10);
if(MKEY==0)
{
StealSet();
while(1)
{
if(LKEY==1) break;
}
break;
}
}
if(RKEY==0)
{
Delay_ms(10); //延时去抖动
if(RKEY==0)
{
/* pdx=0x0200;
i=*pdx;
*pdx=i+1; */
j=EjectorNum();
StealSet1(j);
}
}
ShowTime();
Delay_ms(10);
}
}
uchar EjectorNum(void) //返回编号的值
{
uchar k=0,j=0;
uchar CodeN[2]={0,0};;
WritCommand(0x01);
WritCommand(0x0e);
ShowPart2(); //发射器编号:00
ShowPart1();
while(k<2)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
CodeN[k]=j;
while(1)
{
if(LKEY==1) break;
}
k++;
}
}
if(MKEY==0)
{
Delay_ms(5);
if(MKEY==0)
{
j++;
if(j>9) j=0;
WritData(0xa3);
WritData(0xb0+j); //显示下个数
WritCommand(0x10);
while(1)
{
if(MKEY==1) break;
}
}
}
if(RKEY==0)
{
Delay_ms(10); //延时去抖动
if(RKEY==0)
{
CodeN[k]=j;
WritCommand(0x14);
k++;
if(k>=2)
{k=0;WritCommand(0x96);}
WritData(0xa3);
WritData(0xb0);
WritCommand(0x10);
j=0;
while(1)
{
if(RKEY==1) break;
}
}
}
ShowTime();
WritCommand(0x96+k);
Delay_ms(10);
}
k=CodeN[0]*16+CodeN[1];
k=0x20+k;
return k;
}
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////放火设置
void FireSet(void)
{
// uchar j;
WritCommand(0x01); //清零
WritCommand(0x0c);
WritCommand(0x92);
WritData(0xb7);WritData(0xc0);WritData(0xbB);WritData(0xF0); //防火设置
WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);
ShowPart5();
while(1)
{
if(RKEY==0)
{
while(1){if(RKEY==1) break; }
// CalenSet();
break;
}
if(LKEY==0)
{
while(1) {if(LKEY==1)break;}
RobData=0x00; //报警向量初始化为00
WritCommand(0x0e);
TeleAlarm(); //电话报警:Y
WhistleAlarm(); //鸣警笛:Y
AlarmRelay(); //报警接力:Y
EjectWater(); //喷洒水:Y
EjectSand(); //自动喷沙:Y
pdx=0x0301;
*pdx=RobData;
// j=EjectorNum();
FireSet1();
break;
}
Delay_ms(10);
ShowTime();
}
}
void EjectWater(void)
{
bit i=1;
WritCommand(0x01);
ShowPart15(); //自动喷水:Y
ShowPart4();
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
while(1)
{if(LKEY==1) break;}
if(i==1)
{
RobData=RobData|0x08;
}
else
{
RobData=RobData&0xf7;
}
}
break;
}
if(RKEY==0)
{
Delay_ms(10);
if(RKEY==0)
{
while(1)
{if(RKEY==1) break;}
WritCommand(0x95);
i=~i;
if(i==1)
{
WritCommand(0x95);
WritData(0xa3);WritData(0xd9);
WritCommand(0x10);
}
else
{
WritCommand(0x95);
WritData(0xa3);WritData(0xce);
WritCommand(0x10);
}
}
WritCommand(0x95);
}
}
}
void EjectSand(void)
{
bit i=1;
WritCommand(0x01);
ShowPart16(); //自动喷沙:Y
ShowPart4();
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
while(1)
{if(LKEY==1) break;}
if(i==1)
{
RobData=RobData|0x10;
}
else
{
RobData=RobData&0xef;
}
}
break;
}
if(RKEY==0)
{
Delay_ms(10);
if(RKEY==0)
{
while(1)
{if(RKEY==1) break;}
WritCommand(0x95);
i=~i;
if(i==1)
{
WritCommand(0x95);
WritData(0xa3);WritData(0xd9);
WritCommand(0x10);
}
else
{
WritCommand(0x95);
WritData(0xa3);WritData(0xce);
WritCommand(0x10);
}
}
}
WritCommand(0x95);
}
}
void FireSet1()
{
uchar i,j;
j=EjectorNum();
WritCommand(0x0c); //填写 不填 继续
ShowPart14();
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
pdx=0x0300;
i=*pdx;
*pdx=i+1;
pdx=0x0302+i+1;
*pdx=j;
while(1)
{
if(LKEY==1) break;
}
break;
}
}
if(MKEY==0)
{
Delay_ms(10);
if(MKEY==0)
{
WritCommand(0x0e);
FireSet();
while(1)
{
if(LKEY==1) break;
}
break;
}
}
if(RKEY==0)
{
Delay_ms(10); //延时去抖动
if(RKEY==0)
{
pdx=0x0300;
i=*pdx;
*pdx=i+1;
pdx=0x0302+i+1;
*pdx=j;
FireSet1();
}
}
ShowTime();
Delay_ms(10);
}
}
///////////////////////////////////////////////////日历设置
//////////////////////////////////////////////////////
void CalenSet(void)
{
uchar i;
WritCommand(0x01); //清零
WritCommand(0x0c);
ShowPart17();
ShowPart5();
ShowTime();
while(1)
{
if(RKEY==0)
{
while(1){if(RKEY==1) break; }
break;
}
if(LKEY==0)
{ //进入日历设置
while(1) {if(LKEY==1)break;}
CalenSet1(); //设置 年
WritData(0x2f);
CalenSet2(); //设置 月
WritData(0x2f);
CalenSet3(); //设置 日
WritData(0x2f);
CalenSet4(); //设置 时
WritData(0x2f);
i=CalenSet5(); //设置 分
calen[1]=i;
i=CalenSet5();
calen[0]=i;
BurstW1302(calen); //将设置的数据写入到日历芯片中
///////////////////////////////////////////
break;
}
}
}
void CalenSet1(void)
{
uchar k=0;
WritCommand(0x98);
WritData(0xc8);WritData(0xb7); //确认
WritData(0xc8);WritData(0xcf);
WritCommand(0x9b);
WritData(0xc9);WritData(0xcf);WritData(0xb7);WritData(0xad); //上翻
WritCommand(0x9e);
WritData(0xcf);WritData(0xc2);WritData(0xb7);WritData(0xad); //下翻
WritCommand(0x80);
WritData(0x20);WritData(0x20);
Delay_ms(150);
WritCommand(0x10);
ShowK(k);
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
while(1){if(LKEY==1)break;} //年
calen[6]=k;
}
break;
}
if(MKEY==0)
{ //00~99循环显示
Delay_ms(10);
if(MKEY==0)
{
while(1){if(MKEY==1)break;}
if(k==0x99)
{
k=0x00;
}
else if((k&0x0f)==9)
{
k=k&0xf0;
k=k+0x10;
}
else {k++;}
WritCommand(0x10);
ShowK(k);
}
}
if(RKEY==0) //到下一位显示
{
Delay_ms(10);
if(RKEY==0)
{
while(1){if(RKEY==1)break;}
if(k==0x00)
{
k=0x99;
}
else if((k&0x0f)==0)
{
k=k-0x10;
k=k+0x09;
}
else {k--;}
WritCommand(0x10);
ShowK(k);
}
}
}
}
void CalenSet2(void) //设定月
{
uchar k=0;
WritData(0x20);WritData(0x20);
Delay_ms(150);
WritCommand(0x10);
ShowK(k);
// uchar i;
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
while(1){if(LKEY==1)break;}
calen[4]=k; //月
}
break;
}
if(MKEY==0)
{
Delay_ms(10);
if(MKEY==0) //1~12数字循环显示
{
while(1){if(MKEY==1)break;}
if(k==0x12)
{
k=0x01;
}
else if(k==9)
{
k=0x10;
}
else {k++;}
WritCommand(0x10);
ShowK(k);
}
} //移动到下一位设定
if(RKEY==0)
{
Delay_ms(10);
if(RKEY==0)
{
while(1){if(RKEY==1)break;}
if(k==0x01)
{
k=0x12;
}
else if(k==0x10)
{
k=0x09;
}
else {k--;}
WritCommand(0x10);
ShowK(k);
}
}
}
}
void CalenSet3(void) //设置日
{
uchar k=1;
ShowK(k);
while(1)
{
if(LKEY==0)
{
Delay_ms(10);
if(LKEY==0)
{
while(1){if(LKEY==1)break;}
calen[3]=k; //日
}
break;
}
if(MKEY==0) //1~31循环显示
{
Delay_ms(10);
if(MKEY==0)
{
while(1){if(MKEY==1)break;}
if(k==0x31)
{
k=0x01;
}
else if((k&0x0f)==9)
{
k=k&0xf0;
k=k+0x10;
}
else {k++;}
WritCommand(0x10);
ShowK(k);
}
}
if(RKEY==0) //移到下一位设定
{
Delay_ms(10);
if(RKEY==0)
{
while(1){if(RKEY==1)break;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -