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

📄 autocheck.c

📁 周界报警的报警控制程序,采用89C52芯片,KEIL 51开发!
💻 C
字号:
//auto check function -2004-4-29

#include "reg52.h"
#include "main.h"

int TimeCounter1=600;
int TimeCounter2=600;
int TimeCounter3=600;
int TimeCounter4=600;
int TimeCounter5=600;
int TimeCounter6=600;
int TimeCounter7=600;
int TimeCounter8=600;



bit AlarmFlag1=0;
bit AlarmFlag2=0;
bit AlarmFlag3=0;
bit AlarmFlag4=0;
bit AlarmFlag5=0;
bit AlarmFlag6=0;
bit AlarmFlag7=0;
bit AlarmFlag8=0;
extern void input(void);


/*----------------------------------------------
               RELAY
  ---------------------------------------------*/
void Timer0ISR_1(void) interrupt 1 using 0
{
 TH0=0x3c;                                                 //timer0 50ms 
 TL0=0xb0;
  if(AlarmFlag1)                                           //Channel 1 alarm delay 0.5 minutes
  {
   if(TimeCounter1!=0)                                       
   TimeCounter1--;
   else
   {
    LED=0;
    TimeCounter1=600;
    AlarmFlag1=0;
   }  
  }
   
  if(AlarmFlag2)                                           //Channel 2 alarm delay 0.5 minutes
  {
   if(TimeCounter2!=0)                                        
   TimeCounter2--;
   else
   {
    TimeCounter2=600;
    AlarmFlag2=0;
   }  
  }

  if(AlarmFlag3)                                           //Channel 3 alarm delay 0.5 minutes
  {
   if(TimeCounter3!=0)                                   
   TimeCounter3--;
   else
   {
    TimeCounter3=600;
    AlarmFlag3=0;
   }  
  }
   
  if(AlarmFlag4)                                             //Channel 4 alarm delay 0.5 minutes
  {
   if(TimeCounter4!=0)                                       
   TimeCounter4--;
   else
   {
    TimeCounter4=600;
    AlarmFlag4=0;
   }  
  }

    if(AlarmFlag5)                                           //Channel 5 alarm delay 0.5 minutes
  {
   if(TimeCounter5!=0)                                       
   TimeCounter5--;
   else
   {
    LED=0;
    TimeCounter5=600;
    AlarmFlag5=0;
   }  
  }

  if(AlarmFlag6)                                           //Channel 6 alarm delay 0.5 minutes
  {
   if(TimeCounter6!=0)                                       
   TimeCounter6--;
   else
   {
    LED=0;
    TimeCounter6=600;
    AlarmFlag6=0;
   }  
  }

  if(AlarmFlag7)                                           //Channel 7 alarm delay 0.5 minutes
  {
   if(TimeCounter7!=0)                                       
   TimeCounter7--;
   else
   {
    LED=0;
    TimeCounter7=600;
    AlarmFlag7=0;
   }  
  }

  if(AlarmFlag8)                                           //Channel 8 alarm delay 0.5 minutes
  {
   if(TimeCounter8!=0)                                       
   TimeCounter8--;
   else
   {
    LED=0;
    TimeCounter8=600;
    AlarmFlag8=0;
   }  
  }

}


extern void auto_alarm(void)

 {
  unsigned char data i;
  unsigned char data P0_Flag;

  while(1)
  {
   
    input();

    for(i=0;i<8;i++)
     {
	  P0_Flag=P0 & 0x01<<i;
	  switch(i)
	  {
	   case 0: if(P0_Flag==0)
	           {
	            AlarmFlag1=1;
	            output1=input1;
	            com_output=1;
	           }
	           else
	           {
			     if(AlarmFlag1)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				  output1=input1;
			   }
			   break;

	   case 1: if(P0_Flag==0)
	           {
	           AlarmFlag2=1;
	           output2=input2;
	           com_output=1;
	           }
	           else
	           {
			    if(AlarmFlag2)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output2=input2;
	           }
			   break;

	   case 2: if(P0_Flag==0)
	           {
	            AlarmFlag3=1;
	            output3=input3;
	            com_output=1;
	           }
	           else
	           {
			    if(AlarmFlag3)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output3=input3;
	           }
			   break;

       case 3: if(P0_Flag==0)
	           {
			    AlarmFlag4=1;
				output4=input4;
				com_output=1;
				}
				else 
				{
				 if(AlarmFlag4)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output4=input4;
		        }
               break;

        case 4: if(P0_Flag==0)
	           {
			    AlarmFlag5=1;
				output5=input5;
				com_output=1;
				}
				else 
				{
				 if(AlarmFlag5)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output5=input5;
		        }
               break;

       case 5: if(P0_Flag==0)
	           {
			    AlarmFlag6=1;
				output6=input6;
				com_output=1;
				}
				else 
				{
				 if(AlarmFlag6)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output6=input6;
		        }
               break;

      case 6: if(P0_Flag==0)
	           {
			    AlarmFlag7=1;
				output7=input7;
				com_output=1;
				}
				else 
				{
				 if(AlarmFlag7)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output7=input7;
		        }
               break;
       
      case 7: if(P0_Flag==0)
	           {
			    AlarmFlag8=1;
				output8=input8;
				com_output=1;
				}
				else 
				{
				 if(AlarmFlag8)
			     {
                  EA=1;
                  ET0=1;
                  TR0=1;               			    
                 }
				 else
				 output8=input8;
		        }
               break;     
     }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -