51单片机的交通灯控制系统(仿真+程序+报告+原理图)

1、主要功能

该系统由AT89C51单片机+数码管模块+LED指示灯模块+按键模块构成。

可实现基本功能:

1、红绿灯正常切换,黄灯会闪烁

2、红灯30s,绿灯25s,黄灯5s(时间不同只需修改变量,简单)

按键功能:

1、南北向红灯时间可调,东西向绿灯时间可调

2、东西方向紧急模式:按下东西方向变为绿灯/红灯

3、南北方向紧急模式:按下南北方向变为绿灯/红灯

4、夜间模式:按下四路黄灯闪烁

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第1张图片

3、程序代码

只是放上来了部分代码,仅供参考。

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第2张图片

void NS_SMG_drive(char *buff)			//南北向数码管驱动
{
	//显示十位
	NS_1=0;
	NS_2=1;
	P0=~smgduan[buff[0]];               //段码取反
	delay(5); 							//间隔一段时间扫描	
	P0=0x00;							//消隐

	//显示个位
	NS_1=1;
	NS_2=0;
	P0=~smgduan[buff[1]];
	delay(5); 
	P0=0x00;

	//关闭南北向数码管
	NS_1=1;
	NS_2=1;
}

void Init()						    	//系统初始化
{
	P0=0x00;							//默认led数码管全部不亮
	P2=0x00;
	EW_1=1;		   
	EW_2=1;
	NS_1=1;
	NS_2=1;
	NS_led=1;
	EW_led=1;
	NS_second=red_time;							//默认初始时南北向灯亮红灯,并赋红灯时长
	EW_second=green_time;						//默认初始时东西向灯亮绿灯,并赋绿灯时长
	yellow_time=red_time-green_time;            //黄灯时间为红灯时间与绿灯时间差
	Timer_init();								//定时器初始化
}

void main()
{
	Init();
	while(1)
	{
		Time_del();													//时间处理
		data_del(display_data,NS_second,EW_second);	                //数据处理
		NS_SMG_drive(display_data);									//南北向数码管驱动
		EW_SMG_drive(display_data);									//东西向数码管驱动
		R_G_Y_led();												//红绿灯驱动
		Set_time();												    //红绿灯时长设置
		Urgent();												    //紧急控制
		Urgent_yellow();											//夜间模式控制
	}
}


4、原理图

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第3张图片

5、报告

内含3.5k字,18页的详细报告一份,纯手打,内容与项目一致

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第4张图片

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第5张图片

7、资源获取

51单片机的交通灯控制系统(仿真+程序+报告+原理图)_第6张图片

 本项目包含的所有文件都可以在今天也不想打工获取!

希望可以帮到你哈!

你可能感兴趣的:(单片机设计,51单片机,单片机,嵌入式硬件)