基于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

相关推荐
磨十三1 小时前
ARM Cortex-M 系列 MCU:内核、指令、异常与中断解析
arm开发·单片机·嵌入式硬件
罗汉松(山水白河)3 小时前
关于串口与UDP通讯的实验
单片机·嵌入式硬件·网络协议·udp·tcp·串口、
d111111111d4 小时前
STM32外设--SPI读取W25Q64(学习笔记)硬件SPI
笔记·stm32·单片机·嵌入式硬件·学习
steins_甲乙6 小时前
stm32入门篇(6)
stm32·单片机·嵌入式硬件
刻BITTER15 小时前
用EXCEL 将单色屏幕的Bitmap 字模数据还原回图形
单片机·嵌入式硬件·excel·arduino
撬动未来的支点18 小时前
【嵌入式】MCU和MPU的区别
单片机·嵌入式硬件
一支闲人18 小时前
CAN:STM32 CAN外设2
stm32·单片机·基础知识·can协议·stm外设
雅欣鱼子酱19 小时前
两种电流检测电路设计方案 高侧,低侧,最高耐压90V
单片机·嵌入式硬件·芯片·电子元器件·电流检测芯片
平凡灵感码头19 小时前
经典按键扫描程序算法实现方式
单片机·矩阵·计算机外设
d111111111d20 小时前
STM32--SPI通讯外设-学习笔记
笔记·stm32·单片机·嵌入式硬件·学习