📄 toucher.c
字号:
}
zhuanhuan7(0x00,0x23); //换到下一行
}
NOP();
}
/*******************故障显示******************/
void fault(void)
{
uchar kkk=0;
uchar temp1=0;
uchar temp2=0;
uchar temp3=0;
uchar temp4=0;
uchar fault_buff[11];
uchar tt=0;
xh=0xe0;
xl=0x08;
yh=0x90;
yl=0x59;
if(guzhangaddr>0x6800) //防止第一次出错
guzhangaddr=guzhangaddr-8 ;
wdr();
for(kkk=0;kkk<8;kkk++)
{
fdbs(0x14);
if((kkk==1)||(kkk==3)||(kkk==5)||(kkk==7))
{
xh=0xc0; //换行颜色为红色
xl=0x08;
yh=yh|0x20; //将字体背景设为青色
}
else if((kkk==0)||(kkk==2)||(kkk==4)||(kkk==6))
{
xh=0xe0; //换行颜色为黄色
xl=0x08;
yh=yh&0x9f; //将字体背景设为蓝色
}
else
;
fault_buff[1]= (uchar)(((guzhangaddr&0xff00)>>8)) ; //FM24C256片内地址高位字节
fault_buff[2]= (uchar)(guzhangaddr&0x00ff) ; //FM24C256片内地址低位字节
EIMSK&=~(1<<INT6);
//do
fhz=I2cRead(SLA2_W,SLA2_R, fault_buff[1],fault_buff[2],8);
//while(fhz==1);
for(tt=0;tt<8;tt++)
guzhang[tt]=i2c_rd_buff[tt] ; //
EIMSK|=(1<<INT6);
if(guzhangaddr==0x6800) //到头
guzhangaddr=0x7bf8 ; //调整
else
guzhangaddr=guzhangaddr-8 ; //调整
if(guzhang[0]==0xff) //如果读出的数为0xff,无操作
{
switch(kkk)
{
case 0: juxing(0x90,0x00,0x04,0x50,0x01,0xa8,0x00,0x72); break; //第一行位空
case 1: juxing(0xb0,0x00,0x04,0x73,0x01,0xa8,0x00,0x95); break; //第二行为空
case 2: juxing(0x90,0x00,0x04,0x96,0x01,0xa8,0x00,0xb8); break; //第三行为空
case 3: juxing(0xb0,0x00,0x04,0xb9,0x01,0xa8,0x00,0xdb); break; //第四行为空
case 4: juxing(0x90,0x00,0x04,0xdc,0x01,0xa8,0x00,0xfe); break; //第五行为空
case 5: juxing(0xb0,0x00,0x04,0xff,0x01,0xa8,0x01,0x21); break; //第六行为空
case 6: juxing(0x90,0x00,0x05,0x22,0x01,0xa8,0x01,0x44); break; //第七行为空
case 7: juxing(0xb0,0x00,0x05,0x45,0x01,0xa8,0x01,0x67); break; //第八行为空
default : break;
}
}
else
{
temp1=guzhang[0]/10+0x30; //转换器编号高位
temp2=guzhang[0]%10+0x30; //转换器编号低位
temp3=guzhang[1]/10+0x30; //探测器编号高位
temp4=guzhang[1]%10+0x30; //探测器编号低位
fdbs(0x14);
xtzb(xh,xl,yh,yl);
xszf(0x31,temp1); //显示转换器编号高位
xszf(0x31,temp2); //显示转换器编号低位
zhuanhuan7(0x50,0x00); //横坐标增加0x50,纵坐标不变
xtzb(xh,xl,yh,yl);
xszf(0x31,temp3); //显示探测器编号高位
xszf(0x31,temp4); //显示探测器编号低位
zhuanhuan7(0x50,0x00); //横坐标增加0x50,纵坐标不变
xtzb(xh,xl,yh,yl);
xszf(0x31,0x32); //2
xszf(0x31,0x30); //0
clock_deal(guzhang[2]); //年
xszf(0x31,0x2f); //"/"
clock_deal(guzhang[3]); //月
xszf(0x31,0x2f); //"/"
clock_deal(guzhang[4]); //日
kong(0x31,0x01);
clock_deal(guzhang[5]); //时
xszf(0x31,0x3a); //":"
clock_deal(guzhang[6]); //分
zhuanhuan7(0x90,0x00); //横坐标增加0x90,纵坐标不变
xtzb(xh,xl,yh,yl);
fdbs(0x04);
switch(guzhang[7])
{
case 1:
{
xszf(0x34,0xe4); //市
xszf(0x34,0x38); //电
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x02);
}
break;
case 2:
{
xszf(0x34,0x5d); //备
xszf(0x34,0x38); //电
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x02);
}
break;
case 3:
{
xszf(0x34,0xe5); //充
xszf(0x34,0x38); //电
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x02);
}
break;
case 4:
{
xszf(0x34,0x4e); //通
xszf(0x34,0x4f); //讯
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x02);
}
break;
case 5:
{
xszf(0x34,0x50); //传
xszf(0x34,0x51); //感
xszf(0x34,0x52); //器
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x01);
}
break;
case 6:
{
xszf(0x34,0x87); //联
xszf(0x34,0x88); //动
xszf(0x34,0x76); //设
xszf(0x34,0x77); //备
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
}
break;
case 7:
{
xszf(0x34,0xd6); //转
xszf(0x34,0xd7); //换
xszf(0x34,0xd8); //器
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
kong(0x33,0x01);
}
break;
default:
break;
}
}
// xh=0xe0;
// xl=0x08;
zhuanhuan7(0x00,0x23); //横坐标不变,纵坐标增加0x23
}
}
/****************开关机记录显示*******************/
void open_close(void)
{
//uchar a[16];
uchar c=0;
uchar kkk=0;
uchar onoffbuff[11]; //从外部E2取开关机记录
uchar temp1=0;
uchar temp2=0;
//addre2hi
//addre2lo
xh=0xe0;
xl=0x08;
yh=0x90;
yl=0x59;
fdbs(0x14);
num_open2=num_open;
wdr();
for(kkk=0;kkk<8;kkk++)
{
if((kkk==1)||(kkk==3)||(kkk==5)||(kkk==7))
{
xh=0xc0; //换行颜色为红色
xl=0x08;
yh=yh|0x20; //字体背景设为青色
}
else if((kkk==0)||(kkk==2)||(kkk==4)||(kkk==6))
{
xh=0xe0; //换行颜色为黄色
xl=0x08;
yh=yh&0x9f; //字体背景设为蓝色
}
else
;
onoffbuff[1]= (uchar)((addre2>>8)&0x00ff ) ; //FM24C256片内地址高位字节
onoffbuff[2]= (uchar)(addre2&0x00ff) ; //FM24C256片内地址低位字节
EIMSK&=~(1<<INT6);
//do
fhz=I2cRead(SLA2_W,SLA2_R, onoffbuff[1],onoffbuff[2],8);
//while(fhz==1);
for(c=0;c<8;c++)
data[c]=i2c_rd_buff[c] ; //本次开机
EIMSK|=(1<<INT6);
if(addre2==0x0000) //到头
addre2=0x03f8 ; //调整到关机
else
addre2=addre2-8 ; //调整到关机
onoffbuff[1]= (uchar)((addre2>>8)&0x00ff ) ; //FM24C256片内地址高位字节
onoffbuff[2]= (uchar)(addre2&0x00ff) ; //FM24C256片内地址低位字节
EIMSK&=~(1<<INT6);
//do
fhz=I2cRead(SLA2_W,SLA2_R, onoffbuff[1],onoffbuff[2],8);
//while(fhz==1);
for(c=0;c<8;c++)
data[c+8]=i2c_rd_buff[c] ; //本次开机
EIMSK|=(1<<INT6);
addre2=addre2-8 ; //调整到开机
//addre2lo= (uchar) (addre2&0x00ff) ; //FM24C256片内地址低位字节
// addre2hi= (uchar) ((addre2>>8)&0x00ff ) ; //FM24C256片内地址高位字节
//时间数组位置调整
for(c=3;c<6;c++)
data[c]=data[c+1];
for(c=11;c<14;c++)
data[c]=data[c+1];
if((data[0]==0xff)&&(data[8]==0xff)) //如果读出的数为0xff,无操作
{
switch(kkk)
{
case 0: juxing(0x90,0x00,0x04,0x50,0x01,0x68,0x00,0x72); break; //第一行位空
case 1: juxing(0xb0,0x00,0x04,0x73,0x01,0x68,0x00,0x95); break; //第二行为空
case 2: juxing(0x90,0x00,0x04,0x96,0x01,0x68,0x00,0xb8); break; //第三行为空
case 3: juxing(0xb0,0x00,0x04,0xb9,0x01,0x68,0x00,0xdb); break; //第四行为空
case 4: juxing(0x90,0x00,0x04,0xdc,0x01,0x68,0x00,0xfe); break; //第五行为空
case 5: juxing(0xb0,0x00,0x04,0xff,0x01,0x68,0x01,0x21); break; //第六行为空
case 6: juxing(0x90,0x00,0x05,0x22,0x01,0x68,0x01,0x44); break; //第七行为空
case 7: juxing(0xb0,0x00,0x05,0x45,0x01,0x68,0x01,0x67); break; //第八行为空
default:
break;
}
}
else
{
xtzb(xh,xl,yh,yl); //系统坐标
temp1=num_open/10+0x30; //编号的高位
temp2=num_open%10+0x30; //编号的低位
xszf(0x31,temp1);
xszf(0x31,temp2);
zhuanhuan7(0x40,0x00);
xtzb(xh,xl,yh,yl); //系统坐标
xszf(0x31,0x32); //2
xszf(0x31,0x30); //0
clock_deal(data[0]); //年
xszf(0x31,0x2f); //"/"
clock_deal(data[1]); //月
xszf(0x31,0x2f); //"/"
clock_deal(data[2]); //日
kong(0x31,0x01); //空一格
clock_deal(data[3]); //时
xszf(0x31,0x3a); //":"
clock_deal(data[4]); //分
xszf(0x31,0x3a); //":"
clock_deal(data[5]); //秒
zhuanhuan7(0xa0,0x00); //横坐标增加0xa0,纵坐标不变
xtzb(xh,xl,yh,yl);
if(data[8]==0xff)
{
switch(kkk)
{
case 0: juxing(0x90,0xe8,0x04,0x50,0x01,0x68,0x00,0x72); break; //第一行位空
case 1: juxing(0xb0,0xe8,0x04,0x73,0x01,0x68,0x00,0x95); break; //第二行为空
case 2: juxing(0x90,0xe8,0x04,0x96,0x01,0x68,0x00,0xb8); break; //第三行为空
case 3: juxing(0xb0,0xe8,0x04,0xb9,0x01,0x68,0x00,0xdb); break; //第四行为空
case 4: juxing(0x90,0xe8,0x04,0xdc,0x01,0x68,0x00,0xfe); break; //第五行为空
case 5: juxing(0xb0,0xe8,0x04,0xff,0x01,0x68,0x01,0x21); break; //第六行为空
case 6: juxing(0x90,0xe8,0x05,0x22,0x01,0x68,0x01,0x44); break; //第七行为空
case 7: juxing(0xb0,0xe8,0x05,0x45,0x01,0x68,0x01,0x67); break; //第八行为空
default: break;
}
}
else
{
xszf(0x31,0x32); //2
xszf(0x31,0x30); //0
clock_deal(data[8]); //年
xszf(0x31,0x2f); //"/"
clock_deal(data[9]); //月
xszf(0x31,0x2f); //"/"
clock_deal(data[10]); //日
kong(0x31,0x01); //空一格
clock_deal(data[11]); //时
xszf(0x31,0x3a); //":"
clock_deal(data[12]); //分
xszf(0x31,0x3a); //":"
clock_deal(data[13]); //秒
}
num_open++; //节点编号加1
}
// xh=0xe0;
// xl=0x08;
zhuanhuan7(0x00,0x23);
NOP();
}
}
/**************************界面函数**************************/
/**********开关机记录的编号**************
void num_open(void)
{
uchar temp1=0;
uchar temp2=0;
uchar num=0;
xh=0x80;
xl=0x08;
yh=0xf0;
yl=0x59;
num=page*num2+1;
for(i=0;i<8;i++)
{
temp1=num/10+0x30;
temp2=num%10+0x30;
xtzb(xh,xl,yh,yl);
fdbs(0x14);
// xszf(0x31,0x30);
xszf(0x31,temp1);
xszf(0x31,temp2);
zhuanhuan();
y=y+0x23;
yl=y;
yh=y>>8;
num++;
}
}*/
/****************选择界面********************/
void choice1(void)
{
choice=1; //置选择标志
juxing(0xf0,0x00,0x04,0x2d,0x00,0x80,0x01,0x3b); //大矩形
juxing(0xb0,0x00,0x04,0x2d,0x00,0x80,0x00,0x5b);
juxing(0xb0,0x00,0x04,0x65,0x00,0x80,0x00,0x93);
juxing(0xb0,0x00,0x04,0x9d,0x00,0x80,0x00,0xcb);
juxing(0xb0,0x00,0x04,0xd5,0x00,0x80,0x01,0x03);
juxing(0xb0,0x00,0x05,0x0d,0x00,0x80,0x01,0x3b);
// juxing(0xb0,0x00,0x05,0x0e,0x00,0x80,0x01,0x3c);
xtzb(0x00,0x0f,0x00,0x3d);
fdbs(0x04);
xszf(0x34,0x43); //列
xszf(0x34,0x44); //表
xszf(0x34,0x45); //显
xszf(0x34,0x46); //示
fdbs(0x14);
xszf(0x31,0x28);
xszf(0x31,0x56);
xszf(0x31,0x29);
fdbs(0x04);
xtzb(0x00,0x0f,0x00,0x75);
xszf(0x34,0x3f); //报
xszf(0x34,0x40); //警
xszf(0x34,0x49); //记
xszf(0x34,0x4a); //录
fdbs(0x14);
xszf(0x31,0x28);
xszf(0x31,0x58);
xszf(0x31,0x29);
fdbs(0x04);
xtzb(0x00,0x0f,0x00,0xad);
xszf(0x34,0x3b); //故
xszf(0x34,0x3c); //障
xszf(0x34,0x49); //记
xszf(0x34,0x4a); //录
fdbs(0x14);
xszf(0x31,0x28);
xszf(0x31,0x59);
xszf(0x31,0x29);
fdbs(0x04);
xtzb(0x00,0x0f,0x00,0xe5);
xszf(0x34,0x4b); //开
xszf(0x34,0x4c); //关
xszf(0x34,0x4d); //机
xszf(0x34,0x49); //记
xszf(0x34,0x4a); //录
fdbs(0x14);
xszf(0x31,0x28);
xszf(0x31,0x5a);
xszf(0x31,0x29);
fdbs(0x04);
xtzb(0x00,0x0f,0x01,0x1d);
xszf(0x34,0xfd); //实
xszf(0x34,0x53); //时
xszf(0x34,0xfe); //界
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -