基于STM32的简易交通灯proteus仿真设计(仿真+程序+设计报告+讲解视频)
仿真图proteus 8.9
程序编译器:keil 5
编程语言:C语言
设计编号:C0091
**1.**主要功能
功能说明:
以STM32单片机和数码管、LED灯设计简易交通灯控制系统;
状态1:南北方向绿灯通行12秒,东西红灯禁止通行15秒,分别倒计时;
状态2:南北方向黄灯闪烁提醒3秒,东西继续红灯倒计时;
状态3:东西方向绿灯通行9秒,南北方向禁止通行12秒;
状态4:东西方向黄灯闪烁提醒3秒,南北继续红灯倒计时;
状态5:执行状态1,反复循环。
2.仿真
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
然后开始仿真。
图5.2 交通控制系统运行(东西通行)
图5.3 交通控制系统运行(东西等待)
图5.4 交通控制系统运行(南北通行)
图5.5 交通控制系统运行(南北等待)
3. 程序
程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。
关键代码
/* 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. 设计报告
随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本模拟交通灯系统利用单片机STM32F103C6作为核心元件,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。
本模拟系统由单片机硬/软件系统,四位8段数码管和LED灯显示系统等组成,较好的模拟了交通路面的控制。
5. 资料清单&下载链接
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