加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于小脚丫FPGA开发板的交通灯设计

2016/08/30
30
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

1、设计要求

基于小脚丫FPGA开发板设计带数码管显示倒计时的交通灯系统,要求:

  • 1)一个道路绿灯持续时间25S,红灯持续时间10S,黄灯持续时间3S;
  • 2)另一道路绿灯持续时间10S,红灯持续时间25S,黄灯持续时间3S;
  • 3)第一位数码管和第二位数码管显示倒计时;

2、硬件连接

FPGA的系统时钟来自于小脚丫FPGA开发板配置的25MHz时钟晶振,连接FPGA的C1引脚

本设计除了时钟和复位键以外没有其他的输入,故只用到一个按键K6硬件设计如图1所示,按键连接到FPGA的B1引脚。

图1、复位键硬件设计

设计中需要两个RGBled进行交通灯显示的呈现,每一个RGB的LED都有三个引脚需要跟小脚丫连接在一起。两个LED跟小脚丫FPGA开发板之间的连接关系如图2所示,对应的管脚如下。

图2、RGB_LED硬件连接

设计中需要使用数码管进行倒计时的显示,小脚丫通过74HC595来控驱动和控制数码管。74HC595跟小脚丫FPGA开发板之间的连接关系如图3所示,对应的管脚如下。

图3、数码管驱动74HC595硬件连接

3、工作原理和状态转换

  • 2)使用一个6bit的BCD码表示倒计时时间的值,其中高2bit表示值的十位,低4bit表示值的个位;
  • 3)用以下四个状态分别表示交通灯不同的显示;
  • S0: 大路绿灯亮,小路红灯亮,持续25S;
  • S1: 大路黄灯(蓝灯)亮,小路红灯持续3S;
  • S2: 大路红灯亮,小路绿灯亮,持续10S;
  • S3: 大路红灯亮,效率黄灯(蓝灯)亮,持续3S;
  • 得到状态转换图如下:

图4、交通灯状态转换图

4、代码设计

为了实现所需要的功能,我们将整个设计在顶层划分为五个不同的模块,如图5所示。

图5、交通灯程序框图

4.1 clock_division模块

Clock_division模块主要实现数字时钟的模式控制,程序代码截图如下:

4.2 Curren_state模块

这部分代码的作用是将次态赋值给当前态,这是三段式的标志性模块。该模块程序代码截图如下:

4.3 Output&count模块

这部分代码可以说是整个代码的核心部分,交通灯的显示在这部分完成。此外,这一部分还负责进行倒计时,这部分的代码将即使数字分为个位和十位进行分别倒计时。此举有利用后面对74HC595驱动数码管的代码进行调用。其序代码截图如下:

4.4 CubeDisplay模块

这部分代码用于74HC595的控制,以使得数码管能够按照计划进行倒计时显示。这部分代码截图如下:

5、系统运行

图6、系统运行

视频地址:

优酷视频(基于小脚丫FPGA的倒计时交通灯):

https://v.youku.com/v_show/id_XMTU0NDI4NjQ1Mg==.html

6、资源报告

资源 数量 比例 说明
LUT4s 249 19%
寄存器 115 7%
存储器 0 0%
IO管脚 11
时钟频率 25MHz

7、知识点

  • 时钟计数分频
  • 三段式程序段的编写
  • 串行/并行转换
  • 74HC595控制

9、相关文件

文件名称 功能
Traffic_Light 交通灯状态转换和灯显示,以及顶层模块功能
DLED_4Bit 倒计时显示模块
  • STEP_BaseBoard.pdf
    描述:小脚丫FPGA资源扩展板
  • Traffic_Light.zip
    描述:小脚丫FPGA交通灯设计逻辑代码
  • 基于小脚丫FPGA的交通灯设计.docx
    描述:基于小脚丫FPGA的交通灯设计资料

相关推荐

电子产业图谱