⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f732.c

📁 一个小点位的消防报警控制器的应用程序
💻 C
📖 第 1 页 / 共 2 页
字号:
	      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 + -