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

📄 manwalk.c

📁 具有多重功能的C程序
💻 C
📖 第 1 页 / 共 2 页
字号:
RLED_C=0;				//上电工作时红灯虽然亮,但倒计时显示的时间应为左转绿灯。  by jansion
//Clrdog();				//watchdog函数;by jansion

/*while(CHKG1)				//ChekG2()8/26
	{
	Display(0xff);	 // Display(0xff);
	}
if(!CHKG1)//&&ChekG2())		//明天来是是用ChekG1()和CHEKG2()函数试试。或者改未 if(CHKG1){if(CHKG2(){} }
	{  //msec(2);
	//  Display(0xff);
	  if(CHKG2)
	  {TFflag = 0;}			
//	  else
//	  {
	//  Display(0xff);	
//	  TFflag = 1;
//	  }
	}*/
while(CHKG1)        
	{
	Display(0xff);
	RLED_C=1;
	Clrdog();//edit by jansion9/14
	}
if(!CHKG1)
	{
	Display(0xff);
	if(!CHKG1)
	{
	TFflag = 0;
	}
	}
for(;;)	
 {
 //	Clrdog();//edit by jansion914
 	if(TFflag==1)
	    {	
		Clrdog();
	    MakeOutTimesf();
		if(Flash_flg)//每秒刷屏	实现每秒刷新if(!(SysT0OverTimes % 10)){DecSecond=1;by jansion
		 {
			if(RR&&!(GG2)) //此处if 语段为显示红灯倒计时时间by jansion原来为if(RR&&(!(GG2)))RR&&(!(GG2))&&R2Times
			{	 					   //更改中加上了初始态中的判断直行红灯->左转绿灯.byjansion/7/6
 			
			//	RTS=0;
				RLED_C=1;			  //进一步更改,使黄灯-->(红灯)-->左转绿灯,倒计时显示。7/10
				if(!ROT)  			     		  // RLED_C=0,关红灯,否则开红灯。RlED=1时关延时;
			{	if(R2Times>10)//原语句if(RTimes)by jansion 7/10日	RTimes&&ROT
				{//	ROT=1;
					if(DecSecond)
					{
						if(R2Times>9)		 
						{
							R2Times -=10;	
							TempS = (uchar)(R2Times/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							R2Times=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(R2Times<5)			
						{
							Display(0xff);
						}
						else
							Display((uchar)(R2Times/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}
				}
				else if(ROT)//原语句ifRR&&(!(GG2))&&(!R2Times))byjansion 7/10日  RR&&(!(GG2))
			{
				 RLED_C=1;			   //左转绿灯显示完,开红灯控制信号。
				if(RTimes)//原语句if(RTimes)by jansion 7/10日	RTimes&&ROT
				{
					if(DecSecond)
					{
						if(RTimes>9)		 
						{
							RTimes -=10;	
							TempS = (uchar)(RTimes/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							RTimes=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(RTimes<5)			
						{
							Display(0xff);
						}
						else
							Display((uchar)(RTimes/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			} 
				else
				{
					Display(0xff);//'-'	
				}	 
			}
			//	else if(CG())
		//	else if(!CHKG)
						
			 //for(del=(R2Times);0<del;del--){;}	   //原语句for(del=(R2Times+15);0<del;del--){;}byjansion 7/7日
												   //若RLED_C=1则不执行for延时,且复位R2Times;
			
			else if(GG2)	  //此处if 语段为显示左转绿灯G2倒计时时间	   by jansion  (原来if(RR&&GG2))
		//	else if(CHKR&&CHKY)
		//	else if(!(ChekR()||ChekY()))
			{	

				ROT=1;
			//	R2Times=0;
				RLED_C=0;
			    if(G2Times)
				{
					if(DecSecond)
					{
						if(G2Times>9)		  
						{
							G2Times -=10;
							TempS = (uchar)(G2Times/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							G2Times=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(G2Times<5)				   //??此处中GTimes=?ms,是否应该改为GTimes/10
						{
							Display(0xff);
						}
						else
							Display((uchar)(G2Times/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}                      
			
			else if(GG1)			//此处if 语段为显示直行绿灯G1倒计时时间。by jansion
		//	else if(CHKR&&CHKY)
		//	else if(!(ChekR()||ChekY()))
			{//	ROT=0;
			//	RTS=0;
				RLED_C=0;
			    if(G1Times)
				{
					if(DecSecond)
					{
						if(G1Times>9)		  
						{
							G1Times -=10;
							TempS = (uchar)(G1Times/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							G1Times=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(G1Times<5)				   
						{
							Display(0xff);
						}
						else
							Display((uchar)(G1Times/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}			
			else if(YY)			  //此处if 语段为显示黄灯倒计时时间。by jansion
			{	ROT=0;
				RTS=1;
			//	ROT=0;			   //进一步更改,使黄灯-->(红灯)-->左转绿灯,倒计时显示。7/10
			//	ROT=1;				   //若ROT=0,则关红灯,ROT=1开红灯。
				RLED_C=0;
			//	YR2Times=YTimes+R2Times;
			    if(YTimes)
				{
					if(DecSecond)
					{
						if(YTimes>9)					//??此处中YTimes=?ms,是否应该改为YTimes/10
						{	//YR2Times=YTimes+R2Times;
							YTimes-=10;
							TempS = (uchar)(YTimes/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							YTimes=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(YTimes<5)				  //??此处中YTimes=?ms,是否应该改为YTimes/10
						{
							Display(0xff);
						}
						else
							Display((uchar)((YTimes)/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}

		 }
			Flash_flg = 0;	 
	        //flagF();
	    }
	else
	    {
		Clrdog();
	    MakeOutTimest();
		if(Flash_flg)//每秒刷屏	实现每秒刷新if(!(SysT0OverTimes % 10)){DecSecond=1;by jansion
		{   //msec(1);
			if(RR)//&&!(GG2)) //此处if 语段为显示红灯倒计时时间by jansion原来为if(RR&&(!(GG2)))RR&&(!(GG2))&&R2Times
			{	 					   //更改中加上了初始态中的判断直行红灯->左转绿灯.byjansion/7/6
		//		RLED_C=1;			  //进一步更改,使黄灯-->(红灯)-->左转绿灯,倒计时显示。7/10
				 RLED_C=1;			   //左转绿灯显示完,开红灯控制信号。
				if(RTimes)//原语句if(RTimes)by jansion 7/10日	RTimes&&ROT
				{
					if(DecSecond)
					{
						if(RTimes>9)		 
						{
							RTimes -=10;	
							TempS = (uchar)(RTimes/10);
							rdrr  = (uchar)(RTimes%10);
							if(rdrr>5)
							{Display(TempS+1);}
							else{Display(TempS);}
						}
						else
						{
							Display(0xff);
							RTimes=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(RTimes<5)			
						{
							Display(0xff);
						}
						else
							Display((uchar)(RTimes/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}
				else if(GG1)			//此处if 语段为显示直行绿灯G1倒计时时间。by jansion
			{
				RLED_C=0;
			    if(G1Times)
				{
					if(DecSecond)
					{
						if(G1Times>9)		  
						{
							G1Times -=10;
							TempS = (uchar)(G1Times/10);
							rdrg  = (uchar)(RTimes%10);
							if(rdrg>5)
							{Display(TempS+1);}
							else{Display(TempS);}
						}
						else
						{
							Display(0xff);
							G1Times=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(G1Times<5)				   
						{
							Display(0xff);
						}
						else
							Display((uchar)(G1Times/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}			
			else if(YY)			  //此处if 语段为显示黄灯倒计时时间。by jansion
			{   RLED_C=0;
			    if(YTimes)
				{
					if(DecSecond)
					{
						if(YTimes>9)					//??此处中YTimes=?ms,是否应该改为YTimes/10
						{	//YR2Times=YTimes+R2Times;
							YTimes-=10;
							TempS = (uchar)(YTimes/10);
							Display(TempS);
						}
						else
						{
							Display(0xff);
							YTimes=0;
						}
						DecSecond = 0;
					}
					else 
					{
						if(YTimes<5)				  //??此处中YTimes=?ms,是否应该改为YTimes/10
						{
							Display(0xff);
						}
						else
							Display((uchar)((YTimes)/10));
					}
				}
				else
				{
					Display(0xff);//'-'	
				}		
			}

			}
			Flash_flg = 0;	 
		    //flagS();
	    }
 }
}

⌨️ 快捷键说明

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