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

📄 main.c

📁 分析了现代城市交通控制与管理问题的现状
💻 C
📖 第 1 页 / 共 2 页
字号:
			if(uiShowCnt-C_FlashTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_1_Flash;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_1_Flash://
			//对于双色LED
			if(uiFlash_Flag)
			{
				uiE_2ColorLED = C_1_E_Flash;
				uiW_2ColorLED = C_1_W_Flash;
				uiS_2ColorLED = C_1_S_Flash;
				uiN_2ColorLED = C_1_N_Flash;
			}
			else
			{
				uiE_2ColorLED = C_1_E_Green;
				uiW_2ColorLED = C_1_W_Green;
				uiS_2ColorLED = C_1_S_Green;
				uiN_2ColorLED = C_1_N_Green;
			}
			//对于数码管
			if(uiShowCnt-C_YellowTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_1_Yellow;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_1_Yellow:
			//对于双色LED
				uiE_2ColorLED = C_1_E_Yellow;
				uiW_2ColorLED = C_1_W_Yellow;
				uiS_2ColorLED = C_1_S_Yellow;
				uiN_2ColorLED = C_1_N_Yellow;
			//对于数码管
			if(uiShowCnt>0)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
			{
				uiStatus_Normal = C_2_Green;
				uiShowCnt = ui_SN_RedLight;
				PlayS480(C_HuanXiang);										// 播放提示音
			}				
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;

		case C_2_Green://
			//对于双色LED
			uiE_2ColorLED = C_2_E_Green;
			uiW_2ColorLED = C_2_W_Green;
			uiS_2ColorLED = C_2_S_Green;
			uiN_2ColorLED = C_2_N_Green;
			//对于数码管
			if(uiShowCnt-C_FlashTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_2_Flash;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_2_Flash://
			//对于双色LED
			if(uiFlash_Flag)
			{
				uiE_2ColorLED = C_2_E_Flash;
				uiW_2ColorLED = C_2_W_Flash;
				uiS_2ColorLED = C_2_S_Flash;
				uiN_2ColorLED = C_2_N_Flash;
			}
			else
			{
				uiE_2ColorLED = C_2_E_Green;
				uiW_2ColorLED = C_2_W_Green;
				uiS_2ColorLED = C_2_S_Green;
				uiN_2ColorLED = C_2_N_Green;
			}
			//对于数码管
			if(uiShowCnt-C_YellowTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_2_Yellow;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_2_Yellow:
			//对于双色LED
				uiE_2ColorLED = C_2_E_Yellow;
				uiW_2ColorLED = C_2_W_Yellow;
				uiS_2ColorLED = C_2_S_Yellow;
				uiN_2ColorLED = C_2_N_Yellow;
			//对于数码管
			if(uiShowCnt>0)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
			{
				uiStatus_Normal = C_3_Green;
				uiShowCnt = ui_SN_RedLight;
				PlayS480(C_HuanXiang);										// 播放提示音
			}				
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;

		case C_3_Green://
			//对于双色LED
			uiE_2ColorLED = C_3_E_Green;
			uiW_2ColorLED = C_3_W_Green;
			uiS_2ColorLED = C_3_S_Green;
			uiN_2ColorLED = C_3_N_Green;
			//对于数码管
			if(uiShowCnt-C_FlashTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_3_Flash;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_3_Flash://
			//对于双色LED
			if(uiFlash_Flag)
			{
				uiE_2ColorLED = C_3_E_Flash;
				uiW_2ColorLED = C_3_W_Flash;
				uiS_2ColorLED = C_3_S_Flash;
				uiN_2ColorLED = C_3_N_Flash;
			}
			else
			{
				uiE_2ColorLED = C_3_E_Green;
				uiW_2ColorLED = C_3_W_Green;
				uiS_2ColorLED = C_3_S_Green;
				uiN_2ColorLED = C_3_N_Green;
			}
			//对于数码管
			if(uiShowCnt-C_YellowTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_3_Yellow;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_3_Yellow:
			//对于双色LED
				uiE_2ColorLED = C_3_E_Yellow;
				uiW_2ColorLED = C_3_W_Yellow;
				uiS_2ColorLED = C_3_S_Yellow;
				uiN_2ColorLED = C_3_N_Yellow;
			//对于数码管
			if(uiShowCnt>0)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
			{
				uiStatus_Normal = C_4_Green;
				uiShowCnt = ui_SN_RedLight;
				PlayS480(C_HuanXiang);										// 播放提示音
			}				
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;

		case C_4_Green://
			//对于双色LED
			uiE_2ColorLED = C_4_E_Green;
			uiW_2ColorLED = C_4_W_Green;
			uiS_2ColorLED = C_4_S_Green;
			uiN_2ColorLED = C_4_N_Green;
			//对于数码管
			if(uiShowCnt-C_FlashTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_4_Flash;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_4_Flash://
			//对于双色LED
			if(uiFlash_Flag)
			{
				uiE_2ColorLED = C_4_E_Flash;
				uiW_2ColorLED = C_4_W_Flash;
				uiS_2ColorLED = C_4_S_Flash;
				uiN_2ColorLED = C_4_N_Flash;
			}
			else
			{
				uiE_2ColorLED = C_4_E_Green;
				uiW_2ColorLED = C_4_W_Green;
				uiS_2ColorLED = C_4_S_Green;
				uiN_2ColorLED = C_4_N_Green;
			}
			//对于数码管
			if(uiShowCnt-C_YellowTime)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
				uiStatus_Normal = C_4_Yellow;
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;
		case C_4_Yellow:
			//对于双色LED
				uiE_2ColorLED = C_4_E_Yellow;
				uiW_2ColorLED = C_4_W_Yellow;
				uiS_2ColorLED = C_4_S_Yellow;
				uiN_2ColorLED = C_4_N_Yellow;
			//对于数码管
			if(uiShowCnt>0)
			{
				if(uiShowCntFlag>=2)
				{
					uiShowCntFlag = 0;
					uiShowCnt--;
				}
			}
			else
			{
				uiStatus_Normal = C_1_Green;
				uiShowCnt = ui_SN_RedLight;
				PlayS480(C_HuanXiang);										// 播放提示音
			}				
			uiShi=uiShowCnt/10;												// 取倒计时显示的十位
			uiGe=uiShowCnt%10;												// 取倒计时显示的个位
			break;

		default:			
			break;		
	}
}
	

//========================================================================================================
//函数: GetKeyValue
//语法:unsigned int GetKeyValue(void)
//描述:获取与IOA连接的按键的键值
//参数:无
//返回:键值
//========================================================================================================
unsigned int GetKeyValue(void)
{
	unsigned int	uiTem=0;
	uiTem = *P_IOA_Data;
	uiTem &= 0xfff7;
	if(uiTem)
	{
		MyDelay(5000);
		uiTem = *P_IOA_Data;
		uiTem &= 0xfff7;
		if(uiTem)
		{
			while(*P_IOA_Data&0xfff7)
				*P_Watchdog_Clear = C_WDTCLR;
		}
		else
			uiTem = 0;
	}
	return uiTem;
}

//========================================================================================================
//函数: IRQ4
//语法:void IRQ4(void)
//描述:IRQ4中断服务函数,作显示控制调度
//参数:无
//返回:无 
//========================================================================================================
void IRQ4(void) __attribute__ ((ISR));
void IRQ4(void)
{
	if(ui_Cnt<=7)
		{
			F_Show(5,uiShi);				//显示数码管十位
		}
	else if((ui_Cnt>7)&&(ui_Cnt<=15))
		{
			F_Show(4,uiGe);					//显示数码管个位
		}
	else if((ui_Cnt>15)&&(ui_Cnt<=23))
		{
			*P_IOB_Data = uiE_2ColorLED;	//显示东方向双色LED(红黄绿灯)
		}
	else if((ui_Cnt>23)&&(ui_Cnt<=31))
		{
			*P_IOB_Data = uiW_2ColorLED;	//显示西方向双色LED(红黄绿灯)
		}
	else if((ui_Cnt>31)&&(ui_Cnt<=39))
		{
			*P_IOB_Data = uiS_2ColorLED;	//显示南方向双色LED(红黄绿灯)
		}
	else if((ui_Cnt>39)&&(ui_Cnt<=47))
		{
			*P_IOB_Data = uiN_2ColorLED;	//显示北方向双色LED(红黄绿灯)
		}
	else
		ui_Cnt = 0;
		
	ui_Cnt++;
//	MyDelay(0x17);
		
	*P_INT_Clear=C_IRQ4_4KHz;        		//清中断标志位
}

⌨️ 快捷键说明

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