一、项目功能简介
整个设计系统由STC89C52单片机+数码管显示模块+LED指向灯模块+三线八线译码器模块+按键模块组成。
具体功能:
1、东西向、南北向依次进行周期通行,默认设置为:东西向直行(绿灯)时间30秒,左转(绿灯)时间15秒;南北向直行(绿灯)时间30秒,左转(绿灯)时间15秒。
2、每次直行(绿灯)变左转(绿灯)和左转(绿灯)变停车(红灯)前,黄灯需先闪烁3次,此3次时长包含在上述直行和左转时间内。
3、可通过控制台按键实现对十字路口进行交通管制的功能。
4、可通过控制台按键实现对十字路口各方向的通行时间进行设置的功能。
二、系统构成图
三、仿真
本次项目采用proteus8.11软件实现仿真设计。由于proteus软件版本原因,不能确保proteus其他版本软件能够正常运行,请安装好对应软件版本(版本一致或者高于这个版本都可以)
四、程序
/* 主函数 */
void main(void)
{DataPort0 = 0x40; //显示"----"Delay_ms(100); //延时大约1s T0_Init(); //定时器初始化Time_SN = Straigh_Green ; //赋值SN方向的绿灯时间Time_WE = Straigh_Green + Left_Green ; //赋值WE方向的红灯时间(直行绿灯时间+左转绿灯时间) SN_GREEN = 0; //SN方向直行绿灯开启SN_GREEN_LEFT = 1 ; //SN方向左转绿灯关闭SN_YELLOW = 1 ; //SN方向黄灯关闭SN_RED = 1 ; //SN方向红灯关闭WE_GREEN = 1 ; //WE方向直行绿灯关闭WE_GREEN_LEFT = 1 ; //WE方向左转绿灯关闭WE_YELLOW = 1 ; //WE方向黄灯关闭WE_RED = 0 ; //WE方向红灯开启WE_SW_GREEN = 0 ; //WE方向人行道绿灯开启WE_SW_RED = 1 ; //WE方向人行道红灯关闭SN_SW_GREEN = 1 ; //SN方向人行道绿灯关闭SN_SW_RED = 0 ; //SN方向人行道红灯开启SN_WE_FLAG = 0; //进入SN方向直行状态dis_buf[4] = duan_ma[Straigh_Green/10] ; //放入缓存dis_buf[5] = duan_ma[Straigh_Green%10] ; //放入缓存 while(1){ KeyNumber = Key(); //检测哪个按键被按下Key_Set(); //按键处理函数if(Busy_flag == 0){TIME_CountDown(); //数码管处理函数}Delay(10); }
}
五、原理图
本原理图利用AD17软件设计。
六、参考论文
总共有7.5k字的论文,都是自己收集资料纯手打的。
论文仅限于参考,内容跟项目对应。
七、全部资料
八、资料获取
关注公众号,后台回复:51交通灯