📄 f732.c
字号:
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
break;
case 11:
if ((numfire>0)&&(nfire[cc1]==1))
{
ld_tag=0x0003<<((cc1/4)*2);
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
break;
case 10:
if ((numfire>0)&&(nfire[cc1]==1))
{
ld_tag=0x0001<<(cc1/8);
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
break;
case 9:
if ((numfire>0)&&(nfire[cc1]==1))
{
for (i=0;i<4;i++)
{
if (nfire[i]==1) p++;
{
if (p==4)
{
ld_tag=0x0001;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
for (i=4;i<8;i++)
{
if (nfire[i]==1) p++;
{
if (p==4)
{
ld_tag=0x0002;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
for (i=8;i<12;i++)
{
if (nfire[i]==1) p++;
{
if (p==4)
{
ld_tag=0x0004;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
for (i=12;i<16;i++)
{
if (nfire[i]==1) p++;
{
if (p==4)
{
ld_tag=0x0008;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
}
break;
/* if ((numfire>0)&&(nfire[cc1]==1))
{
for (i=0;i<4;i++)
{
if (nfire[i]==1)
p++;
}
if (p==4)
{
ld_tag=0x0001;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
p=0;
for (i=4;i<8;i++)
{
if (nfire[i]==1)
p++;
}
if (p==4);
{
ld_tag=0x0002;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
p=0;
for (i=8;i<12;i++)
{
if (nfire[i]==1)
p++;
}
if (p==4)
{
ld_tag=0x0004;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
p=0;
for (i=12;i<16;i++)
{
if (nfire[i]==1)
p++;
}
if (p==4);
{
ld_tag=0x0008;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
p=0;
}
break; */
case 8:
if ((numfire>0)&&(nfire[cc1]==1))
{
for (i=0;i<8;i++)
{
if (nfire[i]==1) p++;
{
if (p==8)
{
ld_tag=0x0001;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
for (i=8;i<16;i++)
{
if (nfire[i]==1) p++;
{
if (p==8)
{
ld_tag=0x0002;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
}
break;
case 7:
if ((numfire>0)&&(nfire[cc1]==1))
{
for (i=0;i<16;i++)
{
if (nfire[i]==1) p++;
{
if (p==16)
{
ld_tag=0x0003;
ld1=ld_tag&0x00ff;
ld2=(ld_tag&0xff00)>>8;
LDJ1=ld1|old_ld1;
old_ld1=ld1|old_ld1;
LDJ2=ld2|old_ld2;
old_ld2=ld2|old_ld2;
}
}
}
p=0;
}
break;
case 6:
break;
case 5:
break;
case 4:
break;
case 3:
break;
case 2:
break;
case 1:
break;
case 0:
break;
}
}
void fire_check(void)
{
int i,j;
P1=0xff; /* set P1 input */
if (cc1==cont) cc1=0x00; /* if select addres = cont then select addres =0 */
else cc1=cc1+1;
P1=0x70|(~cc1);
for (i=0;i<100;i++) /*judge fire 100 times */
{
st=(P1&0x70)>>4;
if ((st==2)&&(nfire[cc1]==0))
fire_times++;
}
if(fire_times!=100) fire_times=0;
for (i=0;i<50;i++) /*judge fire or trouble 50 times */
{
st=(P1&0x70)>>4;
switch(st)
{
case 3: if (ntrou[cc1]==0) dl_times++; break;
case 4: if (ntrou[cc1]==0) kl_times++; break;
}
}
}
void led_check(void) /* check led */
{
uchar a1,a2,i,j,t,s;
a1=0x00;
a2=0x01;
TR0=0;
for (i=0;i<4;i++)
{
ADDR1=a1;
ADDR2=a1;
if (i<2)
{
ADDR3=a1|0x01;
LEDC=0xc0;
}
else
{
ADDR3=a1|0x02;
LEDC=0xc2;
}
LEDA=0x00;
LEDB=a2;
a1=~a1; /* LED segment */
a2=a2<<1; /* LED bit */
for(j=0;j<100;j++)
{
for(t=0;t<200;t++)
{
for(s=0;s<5;s++);
}
}
wdi=!wdi;
}
TR0=1;
}
void fire_led_lit(void)
{
if (numfire==0)
{
ADDR1=0xff;
ADDR2=0xff;
}
fire_tag=0x0001<<cc1; /* fire or trouble station */
fire1=fire_tag&0x00ff;
fire2=(fire_tag&0xff00)>>8;
ADDR1=~(fire1|old_fire1);
ADDR2=~(fire2|old_fire2);
nfire[cc1]=1;
led=led&0xd2;
led=led|0x12;
LEDC=led;
old_fire1=fire1|old_fire1;
old_fire2=fire2|old_fire2;
fire_times=0;
numfire=numfire+1;
/* aa1=aa1&0xfE; */
}
void trou_led_lit(void)
{
if ((dl_times==50) || (kl_times==50))
{
if (numfire==0)
{
fire_tag=0x0001<<cc1; /* fire or trouble station */
trou1=fire_tag&0x00ff;
trou2=(fire_tag&0xff00)>>8;
ADDR1=~(trou1|old_trou1);
ADDR2=~(trou2|old_trou2);
ntrou[cc1]=1;
led=led&0xd0;
LEDC=led;
old_trou1=trou1|old_trou1;
old_trou2=trou2|old_trou2;
dl_times=0;
kl_times=0;
numtrou=numtrou+1;
}
}
}
void status_disp(void)
{
if (backup_fail==0)
{
aa1=aa1&0xef;
if (nt2==0)
{
led=led|0x20;
LEDC=led;
}
}
else
{
aa1=aa1|0x10;
nt2=0;
}
if (power_fail==0)
{
aa1=aa1&0xf7;
if (nt1==0)
{
led=led|0x20;
LEDC=led;
}
}
else
{
aa1=aa1|0x08;
nt1=0;
}
if (power_high==0)
{
aa1=aa1&0xdf;
if (nt3==0)
{
led=led|0x20;
LEDC=led;
}
}
else
{
aa1=aa1|0x20;
nt3=0;
}
if (power_low==0)
{
aa1=aa1&0xbf;
if (nt4==0)
{
led=led|0x20;
LEDC=led;
}
}
else
{
aa1=aa1|0x40;
nt4=0;
}
if (ld_enable==1)
{
aa1=aa1&0xfb;
ld_enable=0;
ld_flag=1;
}
ADDR3=aa1;
if (silence1||silence2)
{
led=led&0xd0;
led=led|0xc1;
LEDC=led;
nt1=1;
nt2=1;
nt3=1;
nt4=1;
silence1=0;
silence2=0;
if (nt1==1 || nt2==1 || nt3==1 || nt4==1)
{
led=led&0xdf;
LEDC=led;
}
}
}
void main(void)
{
uint i,j;
EA=0;
init ();
hardware_init(); /* CPU close interrupt */
for (i=0;i<500;i++);
wdi=1;
STACMD=0x9b; /* status 8255 mode setup :all input*/
LEDCMD=0x80; /* led 8255 mode setup : all output */
led=0x00;
for (i=0;i<5000;i++)
{
for (j=0;j<20;j++)
{
led=led|0x08;
LEDC=led;
wdi=!wdi;
}
}
reset0: EA=0;
init();
hardware_init();
led_check();
EA=1;
led=led&0xc1;
LEDC=led;
while(1)
{
ET0=1;
wdi=!wdi;
status_check();
status_disp();
fire_check();
if (fire_times==100)
{
fire_led_lit();
if (ld_flag==1) ld_action();
}
trou_led_lit();
/* ADDR1=~old_fire1;
ADDR2=~old_fire2;
ADDR1=~old_trou1;
ADDR2=~old_trou2; */
if (soft_reset==1)
{
second=second+4;
numfire=0;
for (i=0;i<5000;i++)
{
for (j=0;j<20;j++)
{
led=led&0x09;
led=led|0x08;
LEDC=led;
wdi=!wdi;
}
}
soft_reset=0;
goto reset0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -