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

📄 centerctroller.c

📁 基于ST72324设计的汽车无钥匙开门源程序
💻 C
字号:
#define __DEFINE_REGISTERS_STVD7_INCLUDE__
#include "ST72324BLK2.h"
#include "Head.h" 
#include "Variables.h"
#include "Subroutine.h"
#undef  __DEFINE_REGISTERS_STVD7_INCLUDE__
#define asm_nop() _asm ("nop\n")
#define DI() _asm ("sim\n")
#define EI() _asm ("rim\n")
extern  enum outputmode OutputMode;
void Alamer(void)
{
/*=============================================================*/	

	  if(Port_SideDoor_Trig)
		  {
				Flag_RollWindow_Allow=1; 
        Flag_WrongUnlockTrig=1;				
		  }			
		else
		  {
				if(Flag_NoteCloseDoor && !Flag_Door_Alarming)
				 {
				   Flag_NoteCloseDoor=0;
					 if(!Flag_ACC_Alarming)
					    Port_Fuel_0;
			   } 	 
				
		  }
	
	  if(Port_ACC_Trig)
		 {
			  Flag_WrongUnlockTrig=1;
		 }
	
/*=============================================================*/	
	
		 if(WrongUnlockCHeckingTimer>=20)
		  {
				if(Flag_WrongUnlockCHecking && !Flag_WrongUnlockTrig)
				  {
						Status|=InGuard;	 
						SystemTimer=0;
						OutputCtrl(LockOn,0);
				  }
				Flag_WrongUnlockCHecking=0;	 
													  
		  }												

/*=============================================================*/	
	 if(Status&InGuard )
	   {
			  ACCToggleTimes=0;
			  if(SystemTimer<4)
				  return;
			  else if(SystemTimer==4)
		      {	 
			 			if(Port_SideDoor_Trig)
					     {
								OutputCtrl(NoteCloseDoor,16);
								Flag_NoteCloseDoor=1;
								SystemTimer++;
							 }
				  }
				 else if(SystemTimer==9 && Flag_NoteCloseDoor)
				  {
						Port_Fuel_1;
						RecoveryFuelTimer=0;
				  }
				 else
				  {
			      if(Port_SideDoor_Trig && !Flag_NoteCloseDoor && !Flag_Door_Alarmed)
				     {
							 Delay(10000);
							 if(!Port_SideDoor_Trig)
                 return;							 
						   Flag_Door_Alarmed=1;
							 Flag_Door_Alarming=1;
							 goto  CutOffFuel;
					   }
					  else if(Port_ACC_Trig && !Flag_ACC_Alarmed) 
					   {
							Delay(10000);
              if(!Port_ACC_Trig)							
							   return;  
						  Flag_ACC_Alarmed=1;
							Flag_ACC_Alarming=1;

	CutOffFuel:	
              Port_Fuel_1;
							Status|=SwitchTriged;
							AlarmTimes++;
						  OutputCtrl(Alarm,0);
					   }
					 
		      }
		  }		
		 
	 else  
	   {
			  AutoDisablePKETimer=0;
				AlarmTimes=0;
        Status&=~DisablePKE;				
			 	Flag_Door_Alarming=0;
				Flag_ACC_Alarming=1;
				Flag_Door_Alarmed=0;
				Flag_ACC_Alarmed=0;
				Port_Fuel_0;
				Flag_NoteCloseDoor=0;
/*==========================================================*/
				if(!Port_ACC_Trig)
				 {
             Flag_ACC=1;
						 Flag_DisablePKESetting=0;
						 if(ACCToggleTimes>=3)
						   ACCToggleTimes=0;
			   }		 
				else if(Flag_ACC)
          {
						Delay(10000);
						if(!Port_ACC_Trig)
						 return;
						Flag_ACC=0;
						DiablePKETimer=0;
						Flag_RollWindow_Allow=1;
            if(++ACCToggleTimes>=3)
						  {
						   Flag_DisablePKESetting=1;
							 Port_Lamp_1;
							 Port_Horn_1;
							 Delay(45000);//200ms 
							 Port_Horn_0;
					   	} 
					  else
 						   Flag_DisablePKESetting=0;	             					
					}					

     }		 
	 
}

⌨️ 快捷键说明

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