📄 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 + -