基于51单片机的交通灯智能调节系统

目录

具体实现功能

设计介绍

资料内容

全部内容

资料获取


具体实现功能

具体功能:

(1)东西方向45秒红灯倒计时:南北方向直行绿灯30秒倒计时,南北方向10秒左转绿灯倒计时,南北方向和东西方向5秒黄灯倒计时;

(2)南北方向45秒红灯倒计时:东西方向直行绿灯30秒倒计时,东西方向10秒左转绿灯倒计时,南北方向和东西方向5秒黄灯倒计时;

(3)设置自动、手动、特殊情况三种模式。自动模式下,自动显示倒计时,红绿灯自动切换,早高峰(8点到10点)东西方向绿灯增加10S,晚高峰(18点到20点)南北方向绿灯增加10S;

(4)手动模式下,根据道路车流量情况调节倒计时时间,当车辆增多10辆以上时,增加15秒通行时间;也可按键调整倒计时时间;

(5)两种紧急情况:第一种所有路口红灯、黄灯亮;第二种切换南北和东西红绿灯状态。

仿真演示视频:

基于51单片机的交通灯智能调节系统-仿真视频

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

复制代码
///////////////////////////////////////////////////

/*********************主程序开始***********************/
void	main(void)
{ 
	Ds1302_Init();
	IT0=1;	   //INT0负跳变触发	 设置成 低电平触发方式,IT0=1为下降沿触发
	TMOD=0x01; //定时器工作于方式1
	TH0=(65536-50000)/256; //定时器赋初值
	TL0=(65536-50000)%256;
	EA=1;  //CPU开中断总允许
	ET0=1; //开定时中断
	EX0=1; //开外部INTO中断
	TR0=1; //启动定时

	while(1)
	{
		Ds1302_Read_Time();
		hour=time_buf1[4];
		fen=time_buf1[5];
		Flag_zhuanhuan=0;	//南北倒计时		
		/*******S0状态,南北直行30S倒计时**********/
		Flag_EW_Yellow=0;	   //EW关黄灯显示信号,黄灯不亮
		Time_EW=EW;//赋倒计时初值20S
		Time_SN=SN;//赋倒计时初值30S
		time_control2();
		while(Time_SN>=0)//南北倒计时大于零则继续循环
		{    
			P1 = S[0];	//给P1口赋值,使SN绿灯,EW红灯
			Display();//调用显示函数,显示
			key();
			special();
			car_num();
		}
		/*******S1状态,南北左转15S绿灯**********/
		Flag_SN_Yellow=0; //SN关黄灯显示信号
		Time_SN=SNL;
		Time_EW=EWL;
		while(Time_SN>=6)//大于6S一直倒计时
		{
			P1=S[2];      //SN左拐绿灯亮,EW红灯
			Display();
			key();
			special();
			car_num();
		}		
		/*******S2状态,绿灯转黄灯**********/
		P1=0x00;
		while(Time_SN>=0)//倒计时6S到0S转黄灯
		{
				Flag_SN_Yellow=1; //SN开黄灯信号位
				Flag_EW_Yellow=1; //SN开黄灯信号位
				P1=P1|0x44;    //保持EW红灯
				Display();
				key();
				special();	
		}
		Flag_zhuanhuan=1;
		
	/*******S3状态,东西直行30S**********/
		Flag_SN_Yellow=0; //SN关黄灯显示信号
		Time_EW=EW1;
		Time_SN=SN1;	//倒计时时间赋值	
		time_control1();
		while(Time_EW>=0)		//30S倒计时
		{
			P1=S[4];	  //EW通行,SN红灯
			Display();
			key();
			special();
			car_num();
		}
				/*******S4状态,东西左转15S倒计时**********/
		Flag_EW_Yellow=0;//EW关黄灯显示信号
		Time_SN=SNL1;
		Time_EW=EWL1;
		while(Time_EW>=6)//大于6S时一直为左转绿灯
		{
			P1=S[6];     //EW左拐绿灯亮,SN红灯
			Display();
			key();
			special();
			car_num();
		}
			/*******S5状态**********/	
			P1=0x00;
			while(Time_EW>=0)//小于6S后为黄灯
			{
				Flag_EW_Yellow=1; //SN开黄灯信号位
				Flag_SN_Yellow=1; //SN开黄灯信号位
				P1=P1|0x44;    //保持EW红灯
				Display();
				key();
				special();
			}			
		P1=0XFF;						
	}
}

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、程序讲解视频、仿真讲解视频、最小系统介绍视频等。

资料获取

https://docs.qq.com/doc/DT3BmTFdjT2tTUWti

相关推荐
点灯小铭3 小时前
基于单片机的智能水瓶温度控制系统
单片机·嵌入式硬件·毕业设计·课程设计
点灯小铭3 小时前
基于单片机的四点位水位控制与报警系统设计
单片机·嵌入式硬件·毕业设计·课程设计
是大强3 小时前
肖特基二极管作用及应用
单片机·嵌入式硬件
是大强4 小时前
stm32 vdd引脚和vss引脚连锡会短路
stm32·单片机·嵌入式硬件
hazy1k4 小时前
K230基础-录放视频
网络·人工智能·stm32·单片机·嵌入式硬件·音视频·k230
李永奉5 小时前
STM32-STM32最小系统板介绍
stm32·单片机·嵌入式硬件
蜀黍@猿7 小时前
【GD32】软件I2C
单片机·嵌入式硬件·mcu
小鱼儿电子7 小时前
18-基于STM32的智能医嘱手环设计与实现
stm32·单片机·物联网·医嘱手环
Chat_zhanggong3459 小时前
HI3516CV610-20S开发板
人工智能·嵌入式硬件·编辑器