?? main.c
字號:
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 + -