仿真设计|基于51单片机的路口交通灯控制系统仿真

news2024/11/19 6:35:01

目录

 具体实现功能

设计介绍

51单片机简介

资料内容

仿真实现(protues8.7)

程序(Keil5)

全部内容

资料获取


 具体实现功能

(1)东西向右转和直行绿灯20S,左转红灯;南北向直行和左转红灯,右转绿灯;东西人行道绿灯。
(2)东西向右转绿灯,直行红灯,左转绿灯15S;南北向直行和左转红灯,右转绿灯;东西人行道绿灯。
(3)南北向右转和直行绿灯20S,左转红灯;东西向直行和左转红灯,右转绿灯;南北人行道绿灯。
(4)南北向右转绿灯,直行红灯,左转绿灯15S;东西向直行和左转红灯,右转绿灯;南北人行道绿灯。
(5)紧急按键按下,所有路口红灯亮,车辆禁行。
(6)特种车辆通行按键分为东西和南北两个按键,东西按键按下,东西向绿灯全亮;南北按键按下,南北向绿灯全亮,20S后恢复。

仿真演示视频:

基于51单片机的路口交通灯控制系统仿真-仿真视频

设计介绍

51单片机简介

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

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

资料内容

仿真实现(protues8.7)

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

程序(Keil5)

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

主函数如下:

///
void main()
{
	multiple = 1; 
	time = 20 *multiple;  //初始化开始时间
	Timer_Init();         //定时器初始化
	while(1) 
	{
		multiple = 1;
		
		
		if(NO_ENTRY == 1)  //全面禁止通行按钮没有按下时
		{
			TR0 = 1;
			key_value = Key_Scan();  //按键值
			if(key_value == 0) 
			{
				Digital_Display(time);//显示时间
				switch(step)
				{
					case 0: 
						NS_STRAIGHT_LED = 1;  //南北直行红灯亮
						EW_STRAIGHT_LED = 0;	//东西直行绿灯亮
						NS_SIDEWALK_LED = 0;	//南北人行道红灯亮				
						EW_SIDEWALK_LED = 1;  //东西人行道绿灯亮
						NS_LEFT_LED     = 1;  //南北左转红灯亮
						EW_LEFT_LED     = 1;  //东西左转红灯亮
						NS_RIGHT_LED  = 0;	//南北右转绿灯亮
						EW_RIGHT_LED    = 0;	//东西右转绿灯亮	
					break;
					case 1: 
						NS_STRAIGHT_LED = 1;  //南北直行红灯亮
						EW_STRAIGHT_LED = 1;	//东西直行红灯亮
						NS_SIDEWALK_LED = 0;	//南北人行道红灯亮			
						EW_SIDEWALK_LED = 1;  //东西人行道红灯亮
						NS_LEFT_LED     = 1;  //南北左转红灯亮
						EW_LEFT_LED     = 0;  //东西左转绿灯亮
						NS_RIGHT_LED		= 0;	//南北右转绿灯亮	
						EW_RIGHT_LED    = 0;  //东西右转绿灯亮
					break;
					case 2: 
						NS_STRAIGHT_LED = 0;  //南北直行绿灯亮
						EW_STRAIGHT_LED = 1;  //东西直行红灯亮	
						NS_SIDEWALK_LED = 1;  //南北人行道绿灯亮				
						EW_SIDEWALK_LED = 0;  //东西人行道红灯亮
						NS_LEFT_LED     = 1;  //南北左转红灯亮
						EW_LEFT_LED     = 1;  //东西左转红灯亮
						NS_RIGHT_LED		= 0;  //南北右转绿灯亮		
						EW_RIGHT_LED    = 0;  //东西右转绿灯亮
					break;
					case 3: 
						NS_STRAIGHT_LED = 1;  //南北直行红灯亮
						EW_STRAIGHT_LED = 1;  //东西直行红灯亮	
						NS_SIDEWALK_LED = 1;  //南北人行道红灯亮				
						EW_SIDEWALK_LED = 0;  //东西人行道红灯亮
						NS_LEFT_LED     = 0;  //南北左转绿灯亮
						EW_LEFT_LED     = 1;  //东西左转红灯亮
						NS_RIGHT_LED		= 0;	//南北右转绿灯亮	
						EW_RIGHT_LED    = 0;  //东西右转红绿灯亮
					break;
					default: break;
				}
			}
			else 
			{
				if(key_value == 1)
				{
					TR0 = 0;
					TR1 = 1;
					ns_time = 20;
					while(ns_time)
					{
						NS_STRAIGHT_LED = 0;  //南北直行绿灯亮
						EW_STRAIGHT_LED = 1;	//
						NS_SIDEWALK_LED = 1;	//			
						EW_SIDEWALK_LED = 1;  //
						NS_LEFT_LED     = 0;  //
						EW_LEFT_LED     = 1;  //
						NS_RIGHT_LED		= 0;	//	
						EW_RIGHT_LED    = 1;  //			
						Digital_Display(ns_time);//显示时间
					}
				}
				if(key_value == 2)
				{
					TR0 = 0;
					TR1 = 1;
					ew_time = 20;
					while(ew_time)
					{
						NS_STRAIGHT_LED = 1;  //东西直行绿灯亮
						EW_STRAIGHT_LED = 0;	//
						NS_SIDEWALK_LED = 1;	//			
						EW_SIDEWALK_LED = 1;  //
						NS_LEFT_LED     = 1;  //
						EW_LEFT_LED     = 0;  //
						NS_RIGHT_LED		= 1;	//	
						EW_RIGHT_LED    = 0;  //
						Digital_Display(ew_time);//显示时间
					}
				}
			}
		}
		if(NO_ENTRY == 0) //禁止通行
		{
			TR0 = 0;
			NS_STRAIGHT_LED = 1;   
			EW_STRAIGHT_LED = 1;  	
			NS_SIDEWALK_LED = 0;  				
			EW_SIDEWALK_LED = 0;  
			NS_LEFT_LED     = 1;  
			EW_LEFT_LED     = 1;  
			NS_RIGHT_LED		= 1;		
			EW_RIGHT_LED    = 1;  
		}
	}
}

程序运行结果如图:

全部内容

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

资料获取

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依从redis中获取用户列表

因为若依放入用户的时候&#xff0c;会在减值中添加随机串&#xff0c;所以用户的key会在redis中变成&#xff1a; login_tokens:6af07052-b76d-44dd-a296-1335af03b2a6 这样的样子。 如果用 Set<Object> items redisService.redisTemplate.keys("login_tokens&…

wordpress重置密码的方法

通过phpMyAdmin直接修改数据库&#xff1a; 登录到phpMyAdmin(通常在cPanel中找到)&#xff0c;找到WordPress数据库&#xff0c;进入wp_users表。 找到对应的用户ID行&#xff0c;修改user_pass字段为新的密码值&#xff0c;并保存更改。 比如&#xff0c;把值改为&#xff…

Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错

文章目录 一、问题报错二、ONLY_FULL_GROUP_BY模式2.1、什么是ONLY_FULL_GROUP_BY&#xff1f;2.2、为什么要使用ONLY_FULL_GROUP_BY&#xff1f;2.3、查看sql_mode 三、解决方法3.1、关闭only_full_group_by模式3.1.1、方法一&#xff1a;关闭当前会话中的only_full_group_by3…

电商选品/分析| 亚马逊常见插件爬虫实战之-helium插件

说明 插件爬虫相当于二次爬虫,二次加工信息,因为大部分插件信息也是从正规网上去获取数据,这次列举helium插件爬虫案例,其他插件爬虫也是类似这个方式. 需求 1、⽤⾕歌浏览器&#xff0c;下载chrome extension&#xff1a;“Helium 10 2、登录helium10 3、打开 打开Amazo…

详细阐述matplotlib.pyplot中plot模块的相关用法和参数以及一些画图基础用法(解决图例不完全显示、中文不显示问题等。)

本文章类似于一篇学习笔记&#xff0c;matplotlib.pyplot是一个很实用的图像绘图模块&#xff0c;下面主要针对plot()绘图函数进行系统性的阐述。 目录 关于figure() figure() 的基本使用 plt.figure() 常用参数 figsize 和 dpi facecolor 和 edgecolor 图形的编号和重…

PHP反序列化8(phar反序列化)

考点8&#xff1a;phar反序列化 <aside> &#x1f4a1; 使用条件 </aside> 文件上传时&#xff0c;不必要.phar后缀&#xff0c;文件上传不是难点&#xff01;&#xff01;&#xff01;&#xff08;phar伪协议自动解析成.phar文件&#xff09; phar文件本质上是…

【网络安全】内部应用中的多重漏洞利用

未经许可,不得转载。 文章目录 初步发现:帐户枚举利用帐户枚举发现 IDOR 导致帐户接管拦截请求洪水攻击:注册拒绝服务目标网站:https://redacted.com 初步发现:帐户枚举 在最近的一次渗透测试中,我对一个仅供员工使用的内部应用程序进行了评估,重点关注身份验证和帐户…

LangChain进阶技巧:提高聊天机器人性能的策略[第三课]

LangChain应运而生&#xff0c;为开发者们提供了一种高效、便捷的工具&#xff0c;助力他们构建出功能强大的大型语言模型应用。本文将带您走进LangChain的世界&#xff0c;揭秘其背后的技术原理&#xff0c;探讨如何利用这一利器来拓展语言模型的无限可能。通过丰富的实例分析…

数据订阅与消费中间件Canal 服务搭建(docker)

MySQL Bin-log开启 进入mysql容器 docker exec -it mysql5.7 bash开启mysql的binlog cd /etc/mysql/mysql.conf.dvi mysqld.cnf #在文件末尾处添加如下配置&#xff08;如果没有这个文件就创建一个&#xff09; [mysqld] # 开启 binlog log-binmysql-bin #log-bin/var/lib/mys…

宿州儿童自闭症寄宿制学校:培养孩子独立能力的专业机构

在探索自闭症儿童教育的广阔领域里&#xff0c;宿州儿童自闭症寄宿制学校以其专业的教育模式和显著的成效&#xff0c;为众多家庭带来了希望。然而&#xff0c;当我们把目光投向中国南方的繁华都市——广州&#xff0c;会发现另一所同样在自闭症儿童教育领域深耕多年、成果显著…

P3397 地毯 Python题解

地毯 题目描述 在 n n n\times n nn 的格子上有 m m m 个地毯。 给出这些地毯的信息&#xff0c;问每个点被多少个地毯覆盖。 输入格式 第一行&#xff0c;两个正整数 n , m n,m n,m。意义如题所述。 接下来 m m m 行&#xff0c;每行两个坐标 ( x 1 , y 1 ) (x_1,…

在矩池云使用 Llama-3.2-11B-Vision 详细指南

Llama 3.2-Vision是Meta开发的一系列多模态大型语言模型&#xff08;LLMs&#xff09;&#xff0c;包含11B和90B两种规模的预训练和指令调整模型。 这些模型专门优化用于视觉识别、图像推理、字幕生成和回答有关图像的一般问题。Llama 3.2-Vision模型在常见行业基准测试中的表…

docker下载mysql时出现Unable to pull mysql:latest (HTTP code 500) server error 问题

报错 Unable to pull mysql:latest (HTTP code 500) server error - Get “https://registry-1.docker.io/v2/”: EOF 解决方法 将VPN开到Global模式 解决啦

C# 解决Excel边框样式无法复制问题及实现格式刷功能

目录 问题现象 范例运行环境 解决方案 剪贴板加特殊粘贴 自定义样式 直接赋值 完美方案 小结 问题现象 在运行数据表数据导出到 EXCEL 数据输出时遇到了一个问题&#xff0c;开发者设计了单行细线下边框的输出模板&#xff0c;如下图设计&#xff1a; 其中 <%syst…

机器学习篇-day02-KNN算法实现鸢尾花模型和手写数字识别模型

一. KNN简介 KNN思想 K-近邻算法&#xff08;K Nearest Neighbor&#xff0c;简称KNN&#xff09;。比如&#xff1a;根据你的“邻居”来推断出你的类别 KNN算法思想&#xff1a;如果一个样本在特征空间中的k 个最相似的样本中的大多数属于某一个类别&#xff0c;则该样本也属…

sentinelhub3.7相比3.4的版本主要变化

sentinelhub3.7相比3.4的版本&#xff0c;主要变化包括: 1. 增加对sentinel 基线04.00数据产品的支持&#xff1b; 2. 将aws数据下载模块独立出来 3.4版本 3.7版本 3. 原来的DataSource改为DataCollection 3.7版本不再支持DataSource 3.4版本中的DataSource 3.7版本使用Data…

鸿蒙NEXT入门到实战(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

音频信号处理学习

来源B站&#xff0c;但是代码微改&#xff0c;更好理解。 B站网址&#xff1a;https://www.bilibili.com/video/BV1vT411m7yc/?spm_id_from333.788&vd_sourcec105ef445d9ba79ff025b5ba5869ce2b import mathimport librosa import numpy as np import matplotlib.pyplot a…

【floor报错注入】

一、sql语句基础 floor 向下取整 count 取数据的数量 group by 分组查询 Rand 随机数 limit 二、floor报错注入 主键重复报错 我们先了解group by产生的虚拟表的原理&#xff0c;了解到虚拟表的主键是不可以重复的 我们再可以通过Rand(0)函数规定固定种子后乘2&…

Jmeter常用函数、逻辑控制器

目录 一、Jmeter常用函数 counter函数 machineName函数 machineIP函数 Random函数 RandomString函数 RandomDate函数 time函数 二、逻辑控制器 IF控制器 循环控制器 foreach控制器 仅一次控制器 事务控制器 聚合报告 随机控制器 随机顺序控制器 一、Jmeter常用…