智能交通灯控制器的设计。设计十字路口红绿灯的控制电路,根据交通规则,控制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的简易交通灯设计相关推荐

  1. 基于stm32简易计算机电路图,基于STM32的简易电子计算器设计与实现(DOC).doc

    嵌入式系统设计实验综合设计报告 PAGE 四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现 实验综合设计报告 学生姓名 陶龑 学 号 2016301033 所在学院 通信工程 ...

  2. 基于单片机的十字路口交通灯设计(带左转、紧急、夜间模式且每个绿灯后都有黄灯二)

    资源文件夹包含:proteus仿真+原理图:keil编写的C语言程序. 资源链接:加我QQ:1271370903 一.设计要求及内容 该控制系统中,主要由AT89C51单片机芯片.时钟电路.复位电路. ...

  3. Multisim14.0 简易交通灯设计

    设计框图 设计思路: 利用74LS160构成三进制计数器,使其对交通灯倒计时显示进行控制. 当计数器输出00(绿).01(黄).10(红灯) 并通过逻辑门化简对74LS192倒计芯片的输入端进行控制 ...

  4. 基于单片机的交通灯设计

    摘要 本系统由单片机系统.键盘.LED 显示.交通灯演示系统组成.系统包括人行道.左转.右转.以及基本的交通灯的功能.系统除基本交通灯功能外,还具有倒计时.时间设置.紧急情况处理.分时段调整信号灯的点 ...

  5. 基于51单片机的简易交通灯仿真代码讲解

    J028 51单片机简易交通灯易懂版_仿真+代码+报告讲解 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 目录标题 工作状态 仿真图 程序 倒计时的产生 红黄 ...

  6. 基于红外技术的交通灯设计

    目录 基于红外技术的交通灯设计 1 摘 要 1 Abstract 2 1 引言 1 1.1基于红外技术的交通灯的选题背景 1 1.2基于红外技术的交通灯选题的现实意义 1 1.3国内外研究现状及其发展 ...

  7. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  8. 基于AT89C51单片机的交通灯控制系统的设计

    一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...

  9. ewb交通灯报告和文件_基于EWB的交通灯设计

    本文着眼于目前普遍应用在城市道路上的交通灯控制系统,从课程设计的题目要求出发,设计了一个十字路口主次街道的交通灯控制电路. 首先进行交通灯状态变换的分析和交通灯总体框架的设计,接着提出了2种电路设计方 ...

  10. 基于单片机的十字路口交通灯课程设计

    1.设计要求: 设计一个十字路口交通灯控制器.用单片机控制LED灯模拟指示.模拟东西方向的十字路口交通信号控制情况.东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s. 2.设计思路: 通 ...

最新文章

  1. c++ 三次多项式拟合_非线性回归模型(一)--多项式回归
  2. 求平方根的算法 牛顿迭代法和二分法
  3. C++中的endl搭配cout和cin用法
  4. Codeforces Round #722 (Div. 2)
  5. stacktraces_Stacktraces告诉了事实。 但事实并非如此。
  6. 大数据之MapReduce详解(MR的运行机制及配合WordCount实例来说明运行机制)
  7. java选择题多选题系统小程序_单选题与多选题判断得分(自动考试小程序,入门级)...
  8. 移动端video播放时不弹出页面层
  9. 刚刚,华为发布全球首款 5G 基站核心芯片!
  10. Apache Storm技术实战之3 -- TridentWordCount
  11. 【直播】陈安东,马琦钧:赛题Baseline讲解以及语音识别基础知识介绍
  12. 异形双柱体阵列纳米粒:针状/花状纳米粒子/纳米金星/金笼/金壳/三角形纳米金
  13. 深度测评:RAKsmart美国站群服务器怎么样
  14. mysql修改列明sql语句_sqlserver 修改列名及表名的sql语句
  15. vue + elemen可远程搜索select选择器的封装(思路及源码分享)
  16. 商场三十六计——第32计 “空城计”
  17. 【NOIP2015模拟10.27】魔道研究题解
  18. python开源ide_前5个开源Python IDE
  19. Python学习day3、day4
  20. OpenGL基础图形编程(九)OpenGL颜色

热门文章

  1. js下载视频(mp4格式)
  2. DWG文件不大,打开却慢的要死?
  3. 低功耗微波雷达模块,LED庭院灯智能感应,雷达传感器助力节能减排
  4. JS 阻止浮层弹窗下滚动
  5. 基于matlab的图像识别分类实验(一)
  6. 三节锂电池充电芯片,IC设计模块的几种电路
  7. OpenCV 4 中文文档(更新mat部分)
  8. 易语言html截图,易语言如何指定区域截图;易语言怎么才能全屏截图
  9. 第三方支付接口开发原理
  10. python编程选股_通达信转python,python编写选股公式