📄 gy33485.c
字号:
wr_s_eeprom(FaultTime,IpStartEeprom,sizeof(FaultTime));
IpStartEeprom += 6;
}
if(IntervalIpFlag)
Ip_interval_min = Ip_fault.min +(Ip_fault.hour-Ip_start_hour)*60 - Ip_start_min;
if(Ip_interval_min >= 10) //10
{
Ip_fault_flag = 1;
IntervalIpFlag = 0;
Ip_enable = 1;
}
PreIpIn = Ip_in;
}
}
else //Ip no fault processing
{
if(PreIpIn) //fault stop processing
{
Ip_interval_min = 0;
for(i=2;i<6;i++)
FaultTime[i] = Curtime[i]; //fault start time(include month,date,hour,minute)
FaultTime[1] = Curtime[0];
FaultTime[0] = Ip;
wr_s_eeprom(FaultTime,IpStartEeprom,sizeof(FaultTime));
IpStartEeprom += 6;
if(!Ip_enable) IpStartEeprom -= 12;
else Ip_enable = 0;
}
Ip_fault_flag = 0;
PreIpIn = Ip_in;
}
//=============================================
/* UX_in=1;
//if(!UX_in) //UX fault processing
if(UX_in) //UX fault processing
{
UX_fault.sec=UX_fault.sec+1;
if(UX_fault.sec>=60)
{
UX_fault.sec = 0;
UX_fault.min++;
if(UX_fault.min>=60)
{
UX_fault.min = 0;
UX_fault.hour++;
if(UX_fault.hour>=10000)
{
UX_fault.hour = 9999;
}
}
}
wr_s_eeprom((uchar idata *)(&UX_fault), UX_EEPROM, sizeof(UX_fault));
if(!PreUXIn)
{
// start UX_fault ,read start time,read UX_fault.min
UX_start_min = UX_fault.min;
UXDis5Start = 1;
for(i=0;i<2;i++)
UXFault_start_time[i] = Curtime[i+4]; //fault start time(include month,date,hour,minute)
}
if(UX_start_min > UX_fault.min)
UX_interval_min = UX_fault.min + 60 - UX_start_min;
else if(UX_start_min < UX_fault.min)
UX_interval_min = UX_fault.min - UX_start_min;
if(UX_interval_min >= 1) //10
UX_fault_flag = 1;
PreUXIn = UX_in;
}
else
{
if(PreUXIn) //fault stop processing
{
//UXDis5Stop = 1;
UX_interval_min = 0;
for(i=0;i<2;i++)
UXFault_stop_time[i] = Curtime[i+4]; //fault start time(include month,date,hour,minute)
}
UX_fault_flag = 0;
PreUXIn = UX_in;
}
*/
mail_box_flag = 0;
}
void xx(void)
{
Ua_fault_flag = 0;
Ub_fault_flag = 0;
Uc_fault_flag = 0;
Ia_fault_flag = 0;
Ib_fault_flag = 0;
Ic_fault_flag = 0;
Ip_fault_flag = 0;
UX_fault_flag = 0;
}
void clear(void)
{
uint i,j;
uchar dis_play[6];
fbase = 0;
prefbase = 0;
/* UaStartEeprom = 72;
UbStartEeprom = 96;
UcStartEeprom = 120;
IaStartEeprom = 144;
IcStartEeprom = 168;
IpStartEeprom = 192;
*/
UaStartEeprom = 80;
UbStartEeprom = 200;
UcStartEeprom = 320;
IaStartEeprom = 440;
IcStartEeprom = 560;
IpStartEeprom = 680;
for(i=0;i<9;i++)
disnum[i] = 0;
wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
wr_s_eeprom(disnum+1, 66, sizeof(disnum[1]));
wr_s_eeprom(disnum+2, 67, sizeof(disnum[2]));
wr_s_eeprom(disnum+3, 68, sizeof(disnum[3]));
wr_s_eeprom(disnum+4, 69, sizeof(disnum[4]));
wr_s_eeprom(disnum+6, 70, sizeof(disnum[6]));
wr_s_eeprom(disnum+7, 70, sizeof(disnum[7]));
for(i=0;i<sizeof(Ua_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ua_EEPROM, sizeof(Ua_fault));
for(i=0;i<sizeof(Ub_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ub_EEPROM, sizeof(Ub_fault));
for(i=0;i<sizeof(Uc_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Uc_EEPROM, sizeof(Uc_fault));
for(i=0;i<sizeof(Ia_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ia_EEPROM, sizeof(Ia_fault));
for(i=0;i<sizeof(Ib_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ib_EEPROM, sizeof(Ib_fault));
for(i=0;i<sizeof(Ic_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ic_EEPROM, sizeof(Ic_fault));
for(i=0;i<sizeof(Ip_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, Ip_EEPROM, sizeof(Ip_fault));
for(i=0;i<sizeof(UX_fault);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, UX_EEPROM, sizeof(UX_fault));
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, UaStartEeprom, sizeof(FaultTime));
UaStartEeprom +=6;
}
UaStartEeprom = 80;
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, UbStartEeprom, sizeof(FaultTime));
UbStartEeprom +=6;
}
UbStartEeprom = 200;
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, UcStartEeprom, sizeof(FaultTime));
UcStartEeprom +=6;
}
UcStartEeprom = 320;
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, IaStartEeprom, sizeof(FaultTime));
IaStartEeprom +=6;
}
IaStartEeprom = 440;
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, IcStartEeprom, sizeof(FaultTime));
IcStartEeprom +=6;
}
IcStartEeprom = 560;
for(j=0;j<20;j++)
{
for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
wr_s_eeprom(dis_play, IpStartEeprom, sizeof(FaultTime));
IpStartEeprom +=6;
}
IpStartEeprom = 680;
///////////////////////////////////////////////////////
Ua_fault.sec = 0;
Ua_fault.min = 0;
Ua_fault.hour= 0;
Ub_fault.sec = 0;
Ub_fault.min = 0;
Ub_fault.hour= 0;
Uc_fault.sec = 0;
Uc_fault.min = 0;
Uc_fault.hour= 0;
Ia_fault.sec = 0;
Ia_fault.min = 0;
Ia_fault.hour= 0;
Ib_fault.sec = 0;
Ib_fault.min = 0;
Ib_fault.hour= 0;
Ic_fault.sec = 0;
Ic_fault.min = 0;
Ic_fault.hour= 0;
Ip_fault.sec = 0;
Ip_fault.min = 0;
Ip_fault.hour= 0;
UX_fault.sec = 0;
UX_fault.min = 0;
UX_fault.hour= 0;
Ua_interval_min = 0;
Ub_interval_min = 0;
Uc_interval_min = 0;
Ia_interval_min = 0;
Ic_interval_min = 0;
Ip_interval_min = 0;
Init_IC1();
LCD_WD2(26,0x0F);
a_stop = 0;
a_start = 0;
//TR0 = 0;
TR2=0;
IdNum = 0;
disnum_flag = 0;
}
//*************************eeprom*********************************//
void txst(void) //这是发送时钟IC的开始条件
{
SCL = 1;
SDA = 1;
delay(DEL10);
SDA = 0;
delay(DEL10);
SCL = 0;
}
void txstop(void) //这是发送时钟IC的结束条件
{
SDA = 0; // stop writing
delay(DEL10);
SCL = 1;
delay(DEL10);
SDA = 1;
}
void wrbit(bit b)
{
SDA = b;
delay(DEL10);
SCL = 1;
delay(DEL10);
SCL = 0;
delay(DEL10);
}
void wrbyte(uchar c)
{
B = c;
wrbit(b7);
wrbit(b6);
wrbit(b5);
wrbit(b4);
wrbit(b3);
wrbit(b2);
wrbit(b1);
wrbit(b0);
}
void wr_s_eeprom(uchar *buf, uint start_address, uchar len)
{
uint i,j;
EEPROM_Enable = 0;
for(i=start_address,j=0;i<start_address+len;i++,j++)
{
// EA = 0;
WriteOneByte(i,buf[j]);
// EA = 1;
}
EEPROM_Enable = 1;
KickDog();
}
bit rdbit(void)
{
SDA = 1; // ready for reading
delay(DEL10);
SCL = 1;
delay(DEL10);
b0 = SDA;
delay(DEL10);
SCL = 0;
delay(DEL10);
return(b0);
}
uchar rdbyte(void)
{
b7 = rdbit();
b6 = rdbit();
b5 = rdbit();
b4 = rdbit();
b3 = rdbit();
b2 = rdbit();
b1 = rdbit();
b0 = rdbit();
SDA = 1;
delay(DEL10);
SCL = 1;
delay(DEL10);
SCL = 0;
delay(DEL10);
SDA = 0;
delay(DEL10);
return(B);
}
void rd_s_eeprom(uchar *buf, uint start_address, uchar len)
{
uint i, j;
EEPROM_Enable = 0;
for(i=start_address,j=0;i<start_address+len;i++, j++)
{
//EA = 0;
buf[j]=ReadOneByte(i);
//EA = 1;
}
EEPROM_Enable = 1;
}
//////////////////////////////////////?????????????????????????need test
void WriteOneByte(uint address,uchar ch)
{
uchar AddrH,AddrL;
AddrH = ((address&0x7FF)>>7)&0x0E; //page
AddrL = address&0x0FF; //address
txst(); // start I2C
wrbyte(0xa0|AddrH);
while(rdbit()==1); // waiting for the response bit
wrbyte(AddrL);
while(rdbit()==1);
wrbyte(ch);
while(rdbit()==1);
txstop();
delay(DELL10);
}
///////////////////////////////////////
uchar ReadOneByte(uint address)
{
uchar uch;
uchar AddrH,AddrL;
AddrH = ((address&0x7FF)>>7)&0x0E; //page
AddrL = address&0x0FF; //address
txst();
wrbyte(0xa0|AddrH); // R/W = 0 for address writing
while(rdbit()==1); // waiting for the response bit
wrbyte(AddrL);
while(rdbit()==1); // waiting for the response bit
SDA = 1;
SCL = 1;
txst();
wrbyte(0xa1|AddrH); // R/W = 1 for reading
while(rdbit()==1); // waiting for the response bit
uch = rdbyte();
txstop();
return(uch);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -