2 系统方案设计及功能需求

2.1 系统方案设计
基于STM32单片机的交通系统的设计工作主要包括硬件电路的设计和软件程序的编写,通过C语言编写软件程序,采用keil5环境进行编译链接,然后烧写到硬件电路中,从而软硬件联合调试实现系统功能。在制作实物之前,需要通过查阅相关资料进行前期调研和对比,验证方案的可行性,然后设计软硬件,最后焊接电路板,做出实物系统。硬件电路设计主要是各个元器件的电气逻辑连接图,其中最主要的是元器件的选型,需要根据系统的兼容性和成本进行选型,稳定性和低功耗是系统必须考虑的问题。软件设计需要考虑可移植性和可读性,让后续开发中可以再本系统基础上改进和完善交通系统的软件程序。基于STM32的交通系统主要包括主控制器、稳压电源驱动电路,,LED灯模块,模块。
图2.1为基于基于STM32的交通系统的结构框图。
在这里插入图片描述

图2.1 系统结构框图

3 系统硬件设计

本系统的硬件电路包括单片机最小系统电路、电源转换电路、摄像头电路、TFT显示电路、HC-SR04超声波测距电路、蜂鸣器报警电路和按键电路。硬件电路框图如图2.1所示。
3.1 STM32最小系统
最小的单片系统包括单片机、复位电路和晶振时钟电路。如图3.2所示,单片机的正常工作是必须要有时钟节拍的,需要在时钟控制下运行。时钟芯片是系统的“心率”,是单片机正常运行必不可少的部分。为了使单片机正常工作,时钟控制必须提供一个基本的定时,复位电路是为了让程序在上电开始或者执行过程中出现错误能够及时纠正,防止程序跑飞。单片机最小系统电路如图3.1所示。复位电路由一个10 uF的电解电容和一个连接到单片机复位引脚的1KΩ电阻组成,并且通过按键接入VCC电压。时钟电路是有两个的,一个提供主频一个提供时钟,分别由8MHz的时钟晶振和32.768kHz的时钟晶振组成,并且搭配两个22PF的电容组成,晶振的两端分别接入STM32单片机。
在这里插入图片描述

图3.1 STM32 cortax-M4最小系统电路原理图

4 系统软件设计

单片机的通用开发语言主要包括C语言、汇编语言和python语言,根据课程学习和实际情况,交通系统的软件程序采用了C语言进行编写,C语言相对于其他语言可移植性强,能够跨平台移植,并且具有容易维护的特点,更接近于人类理解的语言。软件编译环境选择了通用的编程环境Keil5,Keil软件能够实现在线仿真和程序下载的功能,能够开发各种单片机的软件程序,以上作为编程的基础,就可以开始编写软件程序。
4.1 主程序设计
在这里插入图片描述

图4.1 主程序流程图

检测过程首先是初始化,然后数码管检测,剩余是否为3s,当剩余3秒时红绿灯变化。
4.2主要程序
数码管显示数字对应的16进制编码,红绿灯首先进行赋值,然后将赋值写入数码管,首先将东西南北,四个方向的灯分别赋值,东侧赋值10,个位赋值为减1,然后赋值数码管计数是否为3秒。如果剩余3秒,则红绿灯变化,如果剩余0秒,东侧则绿灯开启,其他均为红灯。主要赋值如下图所示。
在这里插入图片描述

5 系统调试

5.1 东侧绿灯
当我们焊接成功后,写入程序后,开启电源灯,电路板电源灯亮起,会自动亮起,最开始初始化为东侧开始先亮,西北南均为红灯,当东侧剩余3秒后,西边黄灯准备,其他北侧和南侧为黄灯,绿灯一直执行绿灯,等待时间变化,变成红灯,如图5-1所示。
在这里插入图片描述

图5-1电路板初始化

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐