📄 trafficlight.h
字号:
#ifndef __TRAFFICLIGHT_H__
#define __TRAFFICLIGHT_H__
// write your header here
unsigned int ui_Cnt = 1;
unsigned int uiRet = 0;
unsigned int uiFlash_Flag = 0; //闪烁时显示绿灯还是熄灭的标志
unsigned int uiShowCntFlag = 0; //改变显示值的标志
unsigned int uiQuarterSecondCnt = 0; //0.25秒计数器
int uiShowCnt = 20; //数码管倒计时显示值
unsigned int uiShi = 0; //数码管显示的十位
unsigned int uiGe = 0; //数码管显示的个位
unsigned int uiE_2ColorLED = 0; //东方向双色LED要显示的数(红绿黄灯)
unsigned int uiW_2ColorLED = 0; //西方向双色LED要显示的数(红绿黄灯)
unsigned int uiS_2ColorLED = 0; //南方向双色LED要显示的数(红绿黄灯)
unsigned int uiN_2ColorLED = 0; //北方向双色LED要显示的数(红绿黄灯)
unsigned int uiStatus; //整个系统运行状态
unsigned int uiStatus_Normal; //正常运行状态下的子状态
unsigned int uiKey; //键值
unsigned int ui_SN_RedLight = 20; //南北红灯时间设置值
unsigned int ui_SN_GreenLight = 20; //南北绿灯时间设置值
unsigned int uiEastCnt = 0; //往东车流量
unsigned int uiWeastCnt = 0; //往西车流量
unsigned int uiSouthCnt = 0; //往南车流量
unsigned int uiNorthCnt = 0; //往北车流量
unsigned int uiEastCnt_L = 0; //来自东边左转车流量
unsigned int uiEastCnt_S = 0; //来自东边直行车流量
unsigned int uiEastCnt_R = 0; //来自东边右转车流量
unsigned int uiWeastCnt_L = 0; //来自西边左转车流量
unsigned int uiWeastCnt_S = 0; //来自西边直行车流量
unsigned int uiWeastCnt_R = 0; //来自西边右转车流量
unsigned int uiSouthCnt_L = 0; //来自南边左转车流量
unsigned int uiSouthCnt_S = 0; //来自南边直行车流量
unsigned int uiSouthCnt_R = 0; //来自南边右转车流量
unsigned int uiNorthCnt_L = 0; //来自北边左转车流量
unsigned int uiNorthCnt_S = 0; //来自北边直行车流量
unsigned int uiNorthCnt_R = 0; //来自北边右转车流量
unsigned int g_uiResetIO = 0;
#define C_FlashTime 16 //开始闪烁的剩余时间
#define C_YellowTime 8 //开始变黄灯的剩余时间
//系统状态定义
#define C_Status_Normal 1 //正常运行状态
#define C_Status_Emergency 2 //紧急状态
#define C_Status_Setup 3 //设置状态
#define C_Status_Query 4 //查询状态
//片选端的定义
//&&&
#define CS0 0xfffe // 选通东边的双色LED
#define CS1 0xfffd // 选通南边的双色LED
#define CS2 0xfffb // 选通西边的双色LED
#define CS3 0xfff7 // 选通北边的双色LED
//|||
#define CS4 0x0010 // 选通数码管个位
#define CS5 0x0020 // 选通数码管十位
//双色LED定义
#define C_ALL_Red 0xaa00
//&&&
#define C_Left_Green 0xfe0f
#define C_Left_Red 0xfd0f
#define C_Left_Yellow 0xfc0f
//|||
#define C_Left_Close 0x010f
//&&&
#define C_Straight_Green 0xfb0f
#define C_Straight_Red 0xf70f
#define C_Straight_Yellow 0xf30f
//|||
#define C_Straight_Close 0x040f
//&&&
#define C_Right_Green 0xef0f
#define C_Right_Red 0xdf0f
#define C_Right_Yellow 0xcf0f
//|||
#define C_Right_Close 0x100f
//&&&
#define C_Pavement_Green 0xbf0f
#define C_Pavement_Red 0x7f0f
#define C_Pavement_Yellow 0x3f0f
//|||
#define C_Pavement_Close 0x400f
//正常运行下的几种子状态
//1南边车道左转弯绿灯,南边车道直行绿灯,北边车道右转弯绿灯,西边车道右转弯绿灯,东边人行道绿灯,其它为红灯
#define C_1_Green 1
#define C_1_S_Green (C_Left_Green&C_Straight_Green&C_Right_Red&C_Pavement_Red)&CS1
#define C_1_N_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS3
#define C_1_E_Green (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Green)&CS0
#define C_1_W_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS2
//2南边车道左转弯绿灯闪烁,南边车道直行绿灯闪烁,北边车道右转弯绿灯闪烁,西边车道右转弯绿灯,东边人行道绿灯闪烁,其它为红灯
#define C_1_Flash 2
#define C_1_S_Flash (C_Right_Red&C_Pavement_Red)|(C_Left_Close|C_Straight_Close)&CS1
#define C_1_N_Flash (C_Left_Red&C_Straight_Red&C_Pavement_Red)|(C_Right_Close)&CS3
#define C_1_E_Flash (C_Left_Red&C_Straight_Red&C_Right_Red)|(C_Pavement_Close)&CS0
#define C_1_W_Flash (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS2
//3南边车道左转弯黄灯,南边车道直行黄灯,北边车道右转弯黄灯,西边车道右转弯绿灯,东边人行道黄灯,其它为红灯
#define C_1_Yellow 3
#define C_1_S_Yellow (C_Left_Yellow&C_Straight_Yellow&C_Right_Red&C_Pavement_Red)&CS1
#define C_1_N_Yellow (C_Left_Red&C_Straight_Red&C_Right_Yellow&C_Pavement_Red)&CS3
#define C_1_E_Yellow (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Yellow)&CS0
#define C_1_W_Yellow (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS2
//4东边车道左转弯绿灯,东边车道直行绿灯,西边车道右转弯绿灯,南边车道右转弯绿灯,北边人行道绿灯,其它为红灯
#define C_2_Green 4
#define C_2_S_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS1
#define C_2_N_Green (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Green)&CS3
#define C_2_E_Green (C_Left_Green&C_Straight_Green&C_Right_Red&C_Pavement_Red)&CS0
#define C_2_W_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS2
//5东边车道左转弯绿灯闪烁,东边车道直行绿灯闪烁,西边车道右转弯绿灯闪烁,南边车道右转弯绿灯,北边人行道绿灯闪烁,其它为红灯
#define C_2_Flash 5
#define C_2_S_Flash (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS1
#define C_2_N_Flash (C_Left_Red&C_Straight_Red&C_Right_Red)|(C_Pavement_Close)&CS3
#define C_2_E_Flash (C_Right_Red&C_Pavement_Red)|(C_Left_Close|C_Straight_Close)&CS0
#define C_2_W_Flash (C_Left_Red&C_Straight_Red&C_Pavement_Red)|(C_Right_Close)&CS2
//6东边车道左转弯黄灯,东边车道直行黄灯,西边车道右转弯黄灯,南边车道右转弯绿灯,北边人行道黄灯,其它为红灯
#define C_2_Yellow 6
#define C_2_S_Yellow (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS1
#define C_2_N_Yellow (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Yellow)&CS3
#define C_2_E_Yellow (C_Left_Yellow&C_Straight_Yellow&C_Right_Red&C_Pavement_Red)&CS0
#define C_2_W_Yellow (C_Left_Red&C_Straight_Red&C_Right_Yellow&C_Pavement_Red)&CS2
//7北边车道左转弯绿灯,北边车道直行绿灯,南边车道右转弯绿灯,东边车道右转弯绿灯,西边人行道绿灯,其它为红灯
#define C_3_Green 7
#define C_3_S_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS1
#define C_3_N_Green (C_Left_Green&C_Straight_Green&C_Right_Red&C_Pavement_Red)&CS3
#define C_3_E_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS0
#define C_3_W_Green (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Green)&CS2
//8北边车道左转弯绿灯闪烁,北边车道直行绿灯闪烁,南边车道右转弯绿灯闪烁,东边车道右转弯绿灯,西边人行道绿灯闪烁,其它为红灯
#define C_3_Flash 8
#define C_3_S_Flash (C_Left_Red&C_Straight_Red&C_Pavement_Red)|(C_Right_Close)&CS1
#define C_3_N_Flash (C_Right_Red&C_Pavement_Red)|(C_Left_Close|C_Straight_Close)&CS3
#define C_3_E_Flash (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS0
#define C_3_W_Flash (C_Left_Red&C_Straight_Red&C_Right_Red)|(C_Pavement_Close)&CS2
//9北边车道左转弯黄灯,北边车道直行黄灯,南边车道右转弯黄灯,东边车道右转弯绿灯,西边人行道黄灯,其它为红灯
#define C_3_Yellow 9
#define C_3_S_Yellow (C_Left_Red&C_Straight_Red&C_Right_Yellow&C_Pavement_Red)&CS1
#define C_3_N_Yellow (C_Left_Yellow&C_Straight_Yellow&C_Right_Red&C_Pavement_Red)&CS3
#define C_3_E_Yellow (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS0
#define C_3_W_Yellow (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Yellow)&CS2
//10西边车道左转弯绿灯闪烁,西边车道直行绿灯闪烁,东边车道右转弯绿灯闪烁,北边车道右转弯绿灯,南边人行道绿灯闪烁,其它为红灯
#define C_4_Green 10
#define C_4_S_Green (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Green)&CS1
#define C_4_N_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS3
#define C_4_E_Green (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS0
#define C_4_W_Green (C_Left_Green&C_Straight_Green&C_Right_Red&C_Pavement_Red)&CS2
//11西边车道左转弯绿灯,西边车道直行绿灯,东边车道右转弯绿灯,北边车道右转弯绿灯,南边人行道绿灯,其它为红灯
#define C_4_Flash 11
#define C_4_S_Flash (C_Left_Red&C_Straight_Red&C_Right_Red)|(C_Pavement_Close)&CS1
#define C_4_N_Flash (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS3
#define C_4_E_Flash (C_Left_Red&C_Straight_Red&C_Pavement_Red)|(C_Right_Close)&CS0
#define C_4_W_Flash (C_Right_Red&C_Pavement_Red)|(C_Left_Close|C_Straight_Close)&CS2
//12西边车道左转弯黄灯,西边车道直行黄灯,东边车道右转弯黄灯,北边车道右转弯绿灯,南边人行道黄灯,其它为红灯
#define C_4_Yellow 12
#define C_4_S_Yellow (C_Left_Red&C_Straight_Red&C_Right_Red&C_Pavement_Yellow)&CS1
#define C_4_N_Yellow (C_Left_Red&C_Straight_Red&C_Right_Green&C_Pavement_Red)&CS3
#define C_4_E_Yellow (C_Left_Red&C_Straight_Red&C_Right_Yellow&C_Pavement_Red)&CS0
#define C_4_W_Yellow (C_Left_Yellow&C_Straight_Yellow&C_Right_Red&C_Pavement_Red)&CS2
//语音资源定义
#define C_0 0 // 语音资源: 0
#define C_1 1 // 语音资源: 1
#define C_2 2 // 语音资源: 2
#define C_3 3 // 语音资源: 3
#define C_4 4 // 语音资源: 4
#define C_5 5 // 语音资源: 5
#define C_6 6 // 语音资源: 6
#define C_7 7 // 语音资源: 7
#define C_8 8 // 语音资源: 8
#define C_9 9 // 语音资源: 9
#define C_10 10 // 语音资源: 十
#define C_ZHUYI 11 // 语音资源: 注意
#define C_WANG 12 // 语音资源: 往
#define C_DONG 13 // 语音资源: 东
#define C_XI 14 // 语音资源: 西
#define C_NAN 15 // 语音资源: 南
#define C_BEI 16 // 语音资源: 北
#define C_ZOU 17 // 语音资源: 走
#define C_DE 18 // 语音资源: 的
#define C_CHELIULIANG 19 // 语音资源: 车流量
#define C_SHI 20 // 语音资源: 是
#define C_LIANG 21 // 语音资源: 辆
#define C_SouthNorth 22 // 语音资源: 现在南北方向通行,请注意
#define C_EastWeast 23 // 语音资源: 现在东西方向通行,请注意
#define C_JINGDI 24 // 语音资源: 警笛声
#define C_HuanXiang 25 // 语音资源: 换向时的提示音
//键值的定义
#define C_Key1 0x0001
#define C_Key2 0x0002
#define C_Key3 0x0004
#define C_S_L 0x0010
#define C_S_S 0x0020
#define C_S_R 0x0040
#define C_N_L 0x0080
#define C_N_S 0x0100
#define C_N_R 0x0200
#define C_E_L 0x0400
#define C_E_S 0x0800
#define C_E_R 0x1000
#define C_W_L 0x2000
#define C_W_S 0x4000
#define C_W_R 0x8000
void PlayS480(int Index);
void Play2Number(unsigned int uiNumber,unsigned int uiDirection);
void Run_Normal(void);
void Run_Emergency(void);
void Run_Setup(void);
void Run_Query(void);
void ShowControl(void);
unsigned int GetKeyValue(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -