基于STM32的简易交通灯proteus仿真设计(仿真+程序+设计报告+讲解视频)

news/2024/10/10 8:44:23/

基于STM32的简易交通灯proteus仿真设计(仿真+程序+设计报告+讲解视频)

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0091

**1.**主要功能

功能说明:

以STM32单片机和数码管、LED灯设计简易交通灯控制系统;

状态1:南北方向绿灯通行12秒,东西红灯禁止通行15秒,分别倒计时;

状态2:南北方向黄灯闪烁提醒3秒,东西继续红灯倒计时;

状态3:东西方向绿灯通行9秒,南北方向禁止通行12秒;

状态4:东西方向黄灯闪烁提醒3秒,南北继续红灯倒计时;

状态5:执行状态1,反复循环。

主要硬件设备:STM32F103系列单片机 数码管

2.仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

然后开始仿真。

img

图5.2 交通控制系统运行(东西通行)

img

图5.3 交通控制系统运行(东西等待)

img

图5.4 交通控制系统运行(南北通行)

img

图5.5 交通控制系统运行(南北等待)

3. 程序

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。

img

关键代码

/* USER CODE BEGIN 4 */
void led_sacn(void)
{if(run_mode==0)			 //0 正常运行{if(main_road_time==0 || secondary_road_time==0)//当主干道或者次干道倒数到0,切换状态。//这一段程序只有倒计时为0才执行一次,执行完一次等下一次倒计时为0才再执行一次{switch(state)//改变红绿灯的状态{case 0:{state=1;//下次切换到下一个模式main_road_time=ns_green_cnt;//主干道绿灯通行时间secondary_road_time=ns_green_cnt+yellow_cnt; //次干道红灯时间we_red    = ON; 		//次干道红灯亮we_yellow = OFF;		//次干道黄灯亮we_green  = OFF;		//次干道绿灯亮ns_red    = OFF;		//主干道红灯亮ns_yellow = OFF;		//主干道黄灯亮ns_green  = ON;		//主干道绿灯亮}break;case 1:{state=2;main_road_time = yellow_cnt;//主干道直行黄灯时间we_red	  = ON;we_yellow = OFF;we_green  = OFF;ns_red	  = OFF;ns_yellow = ON;ns_green  = OFF;	}break;case 2:{state=3;main_road_time=we_green_cnt+yellow_cnt;secondary_road_time = we_green_cnt;we_red	  = OFF;we_yellow = OFF;we_green  = ON;ns_red	  = ON;ns_yellow = OFF;ns_green  = OFF;	}break;case 3:{state=0;secondary_road_time = yellow_cnt;we_red	  = OFF;we_yellow = ON;we_green  = OFF;ns_red	  = ON;ns_yellow = OFF;ns_green  = OFF;	}break;default:break;}}memset(smgbuf, 0, sizeof(smgbuf));smgbuf[4]=gsmg_code[main_road_time%10];//主干道时间smgbuf[5]=gsmg_code[main_road_time/10];smgbuf[6]=gsmg_code[secondary_road_time%10];//次干道时间smgbuf[7]=gsmg_code[secondary_road_time/10];SMG_Display(smgbuf,1);//数码管更新时间}
}void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(htim == &htim3)  //定时器2中断50MS一次{if(++half_sec_flag>10){half_sec_flag=0;half_flag1s=1;}if(++one_sec_flag<20){return;//提前结束函数}one_sec_flag=0;if(run_mode==0){//不是正常运行时,不红绿灯数值不减一 flag1s=1;	}		}
}

4. 设计报告

7214字设计报告,内容包括硬件设计、软件设计、结论等。

img

随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本模拟交通灯系统利用单片机STM32F103C6作为核心元件,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。

本模拟系统由单片机硬/软件系统,四位8段数码管和LED灯显示系统等组成,较好的模拟了交通路面的控制。

5. 资料清单&下载链接

img

0、常见使用问题及解决方法–必读!!!!

1、程序代码

2、Proteus仿真

3、功能要求

4、开题报告

5、设计报告

6、讲解视频

7、框图

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接(可点击):

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


http://www.ppmy.cn/news/1536920.html

相关文章

fiddler抓包18-1_导出jmeter脚本(jmx文件)

课程大纲 方法1 ① 下载2个扩展文件&#xff0c;FiddlerExtensions.dll和FiddlerExtensions.pdb&#xff0c;到Fiddler根目录中的“ImportExport”下&#xff0c;重启Fiddler。 下载链接: https://pan.baidu.com/s/1qtLoaiTd-VfHFb3UIPoSZw?pwdtwcu提取码: twcu ② Fiddler导…

世界职业院校技能大赛-软件测试赛项模拟案例参考分享

智慧金融探索&#xff1a;软件测试的未来 一、项目总体思路 本项目“智慧金融探索&#xff1a;软件测试的未来”&#xff0c;旨在通过深入研究和实践&#xff0c;探索软件测试的新高度。不仅追求精益求精的技术水平&#xff0c;更致力于将传统测试方法与现代技术相结合&#x…

Spring Boot 开发详细案例:在线商品管理系统

目录: 项目概述开发环境与依赖配置项目结构设计数据库设计与配置Spring Boot 控制器与业务逻辑实现Spring Security 认证与权限管理前端与后端的交互总结1. 项目概述 在本案例中,我们将开发一个 在线商品管理系统。用户可以通过登录系统查看所有商品、添加新商品、更新商品信…

从零开始搭建一个node.js后端服务项目

一、下载node.js及配置环境 网上很多安装教程&#xff0c;此处就不再赘述了 版本信息 C:\Users\XXX>node -v v20.15.0C:\Users\XXX>npm -v 10.7.0 二、搭建node.js项目及安装express框架 在任意位置创建一个项目文件夹&#xff0c;此处项目文件夹名为test&#xff0…

SQL注入靶场sqli-labs less-4

sqli-labs靶场第三关less-4 1、确定注入点 http://192.168.128.3/sq/Less-4/?id1 http://192.168.128.3/sq/Less-4/?id2 有不同回显&#xff0c;判断可能存在注入&#xff0c; 2、判断注入类型 输入 http://192.168.128.3/sq/less-4/?id1 and 11 http://192.168.128.3/sq/l…

HTTP的请求头有哪些

HTTP请求头包含了很多重要的信息&#xff0c;它们可以分为几个主要类别。以下是常见的HTTP请求头和它们的功能&#xff1a; 1. 通用头部&#xff08;General Headers&#xff09; Cache-Control: 指示请求和响应遵循的缓存策略。 Connection: 控制当前的网络连接选项&#xf…

ubutun安装ffmpeg

安装依赖 sudo apt-get install yasm sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 下载安装 tar -zxvf filename.gz ./configure --enable-shared --prefix/usr/local/ffmpeg make -j4 sudo make install 添加路径 路径/usr/local/ffmpeg…

Feign源码详解

一&#xff0c;入口 —— Feign的核心注解 Feign是我们在分布式开发中常用的RPC框架&#xff0c;关于Feign远程调用的秘密&#xff0c;我有很多想要探究的例如&#xff1a; Feign是如何收集FeignClient的&#xff1f;Feign是如何配置FeignClient的&#xff0c;让其拥有降级重试…