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

📄 zhongcai.c

📁 这是一个单片机的项目
💻 C
📖 第 1 页 / 共 2 页
字号:

void main()
{     
   uchar M = 1;
   FlagCurrent = ZhongCai;
   P12 = 1;   P13 = 1;   P14 = 1;   P15 = 1;
   P16 = 1;   P17 = 1;   P36 = 1;

   InitSerialCom();
   Time0Initial();

   ClearComRam(ComSlaveLenAdd1);
   ClearComRam(ComSlaveLenAdd2);
   ClearComRam(ComSlaveLenAdd3);
   ClearComRam(ComSlaveLenAdd4);
   ClearComRam(ComSlaveLenAdd5);

   ClearComRam(ComAlarmLenAdd1);
   ClearComRam(ComAlarmLenAdd2);
   ClearComRam(ComAlarmLenAdd3);
   ClearComRam(ComAlarmLenAdd4);
   ClearComRam(ComAlarmLenAdd5);

   ClearComRam(ComLenOrder);
   ClearComRam(ComLenTimer);
   ClearComRam(ComLenOutput);

   ComReadBytes(ComSlaveEnable,SlaveEnableRcv,LenCmdSlaveEnable);
   if((SlaveEnableRcv[0] == 0x2A) && (SlaveEnableRcv[1] == 0xA8))
   {
	    if(SlaveEnableRcv[2] == 1){  FlagSlave1Enable = 1;}	else {	FlagSlave1Enable = 0;}
	    if(SlaveEnableRcv[3] == 1){  FlagSlave2Enable = 1;} else {  FlagSlave2Enable = 0;}
		if(SlaveEnableRcv[4] == 1){  FlagSlave3Enable = 1;} else {  FlagSlave3Enable = 0;}
		if(SlaveEnableRcv[5] == 1){  FlagSlave4Enable = 1;} else {  FlagSlave4Enable = 0;}
		if(SlaveEnableRcv[6] == 1){  FlagSlave5Enable = 1;} else {  FlagSlave5Enable = 0;}			    
   }	


   while(1)
   {  

       switch(FlagCurrent)
		    {
	           case ZhongCai:
               {
                 P2 = P2 | 0x07;
                 ComReadBytes(ComSlaveEnable,SlaveEnableRcv,LenCmdSlaveEnable);
                  if((SlaveEnableRcv[0] == 0x2A) && (SlaveEnableRcv[1] == 0xA8))
                  {
	                if(SlaveEnableRcv[2] == 1){  FlagSlave1Enable = 1;}	else {	FlagSlave1Enable = 0;}
	                if(SlaveEnableRcv[3] == 1){  FlagSlave2Enable = 1;} else {  FlagSlave2Enable = 0;}
		            if(SlaveEnableRcv[4] == 1){  FlagSlave3Enable = 1;} else {  FlagSlave3Enable = 0;}
		            if(SlaveEnableRcv[5] == 1){  FlagSlave4Enable = 1;} else {  FlagSlave4Enable = 0;}
		            if(SlaveEnableRcv[6] == 1){  FlagSlave5Enable = 1;} else {  FlagSlave5Enable = 0;}			    
                  }
                  ClearComRam(ComLenOrder); 

                  P2 = P2 | 0x07;
                  P0 = 0xFF;               //設置P0口高阻抗。
				  FlagCurrent = Output; 
		        }
		        break;

		      case Output:
		      {
                  P2 = P2 | 0x07;
			      P2 = P2 & 0xFE;
                  Delay(DelayTime);
				  P2 = P2 | 0x07;
				  P36 = 1;
                  while (P36 == 1);

			      if(P36 == 0)
		          {  
	                 FlagCurrent = Main; 
		          }                    
		      }
		      break;

		      case Main:
		      {
                    P2 = P2 | 0x07;
			        P2 = P2 & 0xFD;
				    Delay(DelayTime);
				    P2 = P2 | 0x07;
                    P17 = 1;
                    while (P17 == 1);
			        if(P17 == 0)
		            {      
	                   FlagCurrent = Slave5; 
		            }
			     
		      }
		      break;

		      case Slave5:
		      {
		         if(FlagSlave5Enable == 1)
			     {
                       P2 = P2 | 0x07;
				       P2 = P2 & 0xFC;
					   Delay(DelayTime);
				       P2 = P2 | 0x07;

			           P16 = 1;
                       while (P16 == 1);
			           if(P16 == 0)
		               {
	                      FlagCurrent = Slave4;
		               }
			        
			     }
			     else
			     {
			        FlagCurrent = Slave4;
			     }	      			            
            }
		   break;

		   case Slave4:
		   {
		      if(FlagSlave4Enable == 1)
			  {
				    P2 = P2 | 0x07;
				    P2 = P2 & 0xFB;
					Delay(DelayTime);
				    P2 = P2 | 0x07;

			        P15 = 1;
                    while (P15 == 1);
			        if(P15 == 0)
		            {
	                   FlagCurrent = Slave3;
		            }
			     
			  }
			  else
			  {
			     FlagCurrent = Slave3;
			  }			           
		   }
		   break;

		   case Slave3:
		   {			      
		      if(FlagSlave3Enable == 1)
			  {
                    P2 = P2 | 0x07;
				    P2 = P2 & 0xFA;
					Delay(DelayTime);
				    P2 = P2 | 0x07;

			        P14 = 1;
                    while (P14 == 1);
			        if(P14 == 0)
		            {
	                   FlagCurrent = Slave2;
		            }			     
			  }
			  else
			  {
			     FlagCurrent = Slave2;
			  }			          
		   }
		   break;

		   case Slave2:
		   {	          		      
		      if(FlagSlave2Enable == 1)
			  {
                    P2 = P2 | 0x07;
				    P2 = P2 & 0xF9;
					Delay(DelayTime);
				    P2 = P2 | 0x07;

			        P13 = 1;
                    while (P13 == 1);
			        if(P13 == 0)
		            {
	                   FlagCurrent = Slave1;
		            }
			     
			  }
			  else
			  {
			     FlagCurrent = Slave1;
			  }			          
		   }
		   break;

		   case Slave1:
		   {		      
		      if(FlagSlave1Enable == 1)
			  {
                    P2 = P2 | 0x07;
				    P2 = P2 & 0xF8;
					Delay(DelayTime);
				    P2 = P2 | 0x07;

			        P12 = 1;
                    while (P12 == 1);
			        if(P12 == 0)
		            {
	                   FlagCurrent = ZhongCai;
		            }
			    
			  }
			  else
			  {
			     FlagCurrent = ZhongCai;
			  } 			           
		   }
		   break;

		   default:
		   {
		      P2 = P2 | 0x07;
			  FlagCurrent = ZhongCai;
		   }
		   break;
		}
	 }
   
}

⌨️ 快捷键说明

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