基于STM32的简易交通灯设计
智能交通灯控制器的设计。设计十字路口红绿灯的控制电路,根据交通规则,控制4组红绿黄共12个LED指示灯的显示。
通过对车流量的捕获,来合理的安排各个方位的红绿黄灯的时间,从而达到更高效率的交通。采用了摄像头OV7670模块来获取车流量信息,进而通知CPU进行那种方案。
方案1::所有红绿黄灯时间分别是:红灯10S,绿灯5S,绿灯闪3S,黄灯2S。
方案2:南北红灯8S,南北绿灯7S,南北绿灯闪3S,黄灯2S。
东西红灯12S,东西绿灯3S,东西绿灯闪3S,黄灯2S。
方案3:东西红灯8S,东西绿灯7S,东西绿灯闪3S,黄灯2S。
南北红灯12S,南北绿灯3S,南北绿灯闪3S,黄灯2S。
通过以上方案可以合理的减缓交通堵塞的情况。
交通灯规则有一下四种状态:
1、东西绿灯闪、黄灯亮,南北红灯。
2、东西红灯,南北绿灯。
3、东西红灯,南北绿灯闪、黄灯亮。
4、东西绿灯,南北红灯。
通过该规则可以使车合理的行驶,规范交通规则。
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
#define GPIOC_ODR_Addr (GPIOC_BASE+0x0C)
#define PCout(n) *(unsigned int *)((GPIOC_ODR_Addr&0xF0000000)+0x02000000+((GPIOC_ODR_Addr&0x00FFFFFF)<<5)+(n<<2))
#define GPIOC_IDR_Addr (GPIOC_BASE+0x08)
#define PCin(n) *(unsigned int*)((GPIOC_IDR_Addr&0xF0000000)+0x02000000+((GPIOC_IDR_Addr&0x00FFFFFF)<<5)+(n<<2))
#define ON 0
#define OFF 1
//北
#define N_R PCout(0)
#define N_G PCout(1)
#define N_Y PCout(2)
//南
#define S_R PCout(3)
#define S_G PCout(4)
#define S_Y PCout(5)
//东
#define E_R PCout(6)
#define E_G PCout(7)
#define E_Y PCout(8)
//西
#define W_R PCout(9)
#define W_G PCout(10)
#define W_Y PCout(11)
//全灭
#define LED_MIE GPIO_Write(GPIOC,0xffff);
void LED_Config(void);
void delay_ms(u32 i);
#endif
#include "led.h"
void LED_Config()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3|
GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7|
GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);
LED_MIE;//灯全灭
}
void delay_ms(u32 i)
{
u32 temp;
SysTick->LOAD=9000*i; //设置重装数值, 72MHZ时
SysTick->CTRL=0X01; //使能,减到零是无动作,采用外部时钟源
SysTick->VAL=0; //清零计数器
do
{
temp=SysTick->CTRL; //读取当前倒计数值
}
while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达
SysTick->CTRL=0; //关闭计数器
SysTick->VAL=0; //清空计数器
}
#include "led.h"
int main()
{
LED_Config();
while(1)
{
u8 i=0;
delay_ms(1000);
while(i<5)
{
E_Y=OFF;
W_Y=OFF;
S_R=OFF;
N_R=OFF;
N_Y=OFF;
S_Y=OFF;
E_R=ON;
W_R=ON;
S_G=ON;
N_G=ON;//东西红灯、南北绿灯
delay_ms(1000);
i++;
}
i=0;
while(i<3)
{
S_G=ON;
N_G=ON;
delay_ms(500);
S_G=OFF;
N_G=OFF;
delay_ms(500);//东西红灯,南北绿灯闪
i++;
}
i=0;
while(i<2)
{
S_G=OFF;
N_G=OFF;
N_Y=ON;
S_Y=ON;
delay_ms(1000);//东西红灯,南北黄灯亮
i++;
}
i=0;
while(i<5)
{
E_R=OFF;
W_R=OFF;
N_Y=OFF;
S_Y=OFF;
E_G=ON;
W_G=ON;
S_R=ON;
N_R=ON;
delay_ms(1000);//东西绿灯,南北红灯
i++;
}
i=0;
while(i<3)
{
E_G=ON;
W_G=ON;
delay_ms(500);
E_G=OFF;
W_G=OFF;
delay_ms(500);//东西绿灯闪,南北红灯
i++;
}
i=0;
while(i<2)
{
E_G=OFF;
W_G=OFF;
E_Y=ON;
W_Y=ON;
delay_ms(1000);//东西黄灯亮,南北红灯
i++;
}
}
}
基于STM32的简易交通灯设计相关推荐
- 基于stm32简易计算机电路图,基于STM32的简易电子计算器设计与实现(DOC).doc
嵌入式系统设计实验综合设计报告 PAGE 四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现 实验综合设计报告 学生姓名 陶龑 学 号 2016301033 所在学院 通信工程 ...
- 基于单片机的十字路口交通灯设计(带左转、紧急、夜间模式且每个绿灯后都有黄灯二)
资源文件夹包含:proteus仿真+原理图:keil编写的C语言程序. 资源链接:加我QQ:1271370903 一.设计要求及内容 该控制系统中,主要由AT89C51单片机芯片.时钟电路.复位电路. ...
- Multisim14.0 简易交通灯设计
设计框图 设计思路: 利用74LS160构成三进制计数器,使其对交通灯倒计时显示进行控制. 当计数器输出00(绿).01(黄).10(红灯) 并通过逻辑门化简对74LS192倒计芯片的输入端进行控制 ...
- 基于单片机的交通灯设计
摘要 本系统由单片机系统.键盘.LED 显示.交通灯演示系统组成.系统包括人行道.左转.右转.以及基本的交通灯的功能.系统除基本交通灯功能外,还具有倒计时.时间设置.紧急情况处理.分时段调整信号灯的点 ...
- 基于51单片机的简易交通灯仿真代码讲解
J028 51单片机简易交通灯易懂版_仿真+代码+报告讲解 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 目录标题 工作状态 仿真图 程序 倒计时的产生 红黄 ...
- 基于红外技术的交通灯设计
目录 基于红外技术的交通灯设计 1 摘 要 1 Abstract 2 1 引言 1 1.1基于红外技术的交通灯的选题背景 1 1.2基于红外技术的交通灯选题的现实意义 1 1.3国内外研究现状及其发展 ...
- 【019】基于51单片机的交通灯Proteus仿真设计
一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...
- 基于AT89C51单片机的交通灯控制系统的设计
一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...
- ewb交通灯报告和文件_基于EWB的交通灯设计
本文着眼于目前普遍应用在城市道路上的交通灯控制系统,从课程设计的题目要求出发,设计了一个十字路口主次街道的交通灯控制电路. 首先进行交通灯状态变换的分析和交通灯总体框架的设计,接着提出了2种电路设计方 ...
- 基于单片机的十字路口交通灯课程设计
1.设计要求: 设计一个十字路口交通灯控制器.用单片机控制LED灯模拟指示.模拟东西方向的十字路口交通信号控制情况.东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s. 2.设计思路: 通 ...
最新文章
- c++ 三次多项式拟合_非线性回归模型(一)--多项式回归
- 求平方根的算法 牛顿迭代法和二分法
- C++中的endl搭配cout和cin用法
- Codeforces Round #722 (Div. 2)
- stacktraces_Stacktraces告诉了事实。 但事实并非如此。
- 大数据之MapReduce详解(MR的运行机制及配合WordCount实例来说明运行机制)
- java选择题多选题系统小程序_单选题与多选题判断得分(自动考试小程序,入门级)...
- 移动端video播放时不弹出页面层
- 刚刚,华为发布全球首款 5G 基站核心芯片!
- Apache Storm技术实战之3 -- TridentWordCount
- 【直播】陈安东,马琦钧:赛题Baseline讲解以及语音识别基础知识介绍
- 异形双柱体阵列纳米粒:针状/花状纳米粒子/纳米金星/金笼/金壳/三角形纳米金
- 深度测评:RAKsmart美国站群服务器怎么样
- mysql修改列明sql语句_sqlserver 修改列名及表名的sql语句
- vue + elemen可远程搜索select选择器的封装(思路及源码分享)
- 商场三十六计——第32计 “空城计”
- 【NOIP2015模拟10.27】魔道研究题解
- python开源ide_前5个开源Python IDE
- Python学习day3、day4
- OpenGL基础图形编程(九)OpenGL颜色