基于fpga的智能交通灯设计附vhdl语言程序.docVIP

基于fpga的智能交通灯设计附vhdl语言程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于fpga的智能交通灯设计附vhdl语言程序

目录 第一章 设计原理 1 1.1 使用VHDL语言实现对FPGA器件的编程 1 1.2 使用的设计工具 1 1.2.1 硬件部分 1 1.2.2 软件部分 1 1.3 软件框图 1 1.4 红绿灯拓展模块 2 第二章 程序设计及分析 3 2.1 分频器器件的设计 3 2.2 数码管显示驱动器件的设计 3 2.3 顶层器件设计 4 2.3.1 按键消抖 4 2.3.2 数码管扫描显示 5 2.3.3 24小时时钟 5 2.3.4 改变时间设定 6 2.3.5 交通灯主控程序 7 第三章 使用说明及实验结果 8 3.1 使用说明 8 3.2 实验结果 9 第四章 结论与体会 12 附录 程序源码 13 1.1 使用VHDL语言实现对FPGA器件的编程 FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 Verilog或VHDL)完成电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。 1.2.1 硬件部分 Cyclone ii是一款FPGA器件2004年Altera公司推出。Cyclone II FPGA的成本比第一代Cyclone器件低30%,逻辑容量大了三倍多SDRAM芯片,时钟频率为50MHz。同时,实验板包含4个数码管以及5个按键,同时将丰富的I/O口用排针进行了引出。从系统资源以及运行速度的方面考虑,均足以完成智能交通灯的设计。 1.2.2 软件部分 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。 1.3 软件框图 本系统包含一个顶层以及两个子器件(分频器以及数码管显示驱动)。分频器将系统时钟分为1000Hz,1Hz等待信号供顶层程序使用。顶层包含了整个系统关键性控制逻辑,在接收到分频器时钟信号以及按键信号后,由不同的进程进行处理,同时不同的进程间通过标志位信号进行通信。处理完成的信息将传递给LED直接输出红绿灯信号或数码管驱动器件进行进一步的处理后输出给数码管进行显示。 图1.1 1.4 红绿灯拓展模块 为了达到更好的人机交互效果,本系统 模块原理图如下: 图1.2 PCB设计如下: 图1.3 第二章 程序设计及分析 2.1 分频器器件的设计 本系统将分频器单独设置为一个器件,目的是便于对时间倍率进行修改以及方便调用。具体思路如下:(以1ms为周期的输出信号为例) 图2.1 2.2 数码管显示驱动器件的设计 实验板的数码管为共阳连接,含有4个位选信号以及8个段选信号,通过控制位选及段选可以实现数码管的显示。 该子器件的输入信号为0-15的整数,输出为显示16进制相应字符的段选信号。程序主体采用case语句,对输入信号进行选择并相应的输出。 图2.2 2.3 顶层器件设计 2.3.1 按键消抖 本系统对于按键采取了消抖的处理办法,可以有效的增加稳定性。消抖的实现原理基于计数器,当检测到有按键按下则开始计数,当计数达到设定值时给出按键按下的信号并执行相应功能,其中key5实现模式选择,其余按键实现对时间设定的更改。 图2.3 2.3.2 数码管扫描显示 实验板采用了四个共阳的数码管,若需要让每个数码管都显示不一样的内容,则需要对数码管进行扫描显示。本系统采用1000Hz的频率对数码管进行扫描显示,实际效果可以稳定的显示而不会出现闪烁的现象。 程序设计方面采用了两个process,分别对数码管位选进行扫描以及输入段选信号 图2.4 图2.5 2.3.3 24小时时钟 为了实现白天与夜间的模式切换效果,需要加入24小时制的时钟。本系统对于时钟的实现依然基于计数器。具体流程如下: 对分频器输出的分钟信号进行检测,当检测到上升沿时执行计数,当达到该位最大值时执行进位与清零。 图2.6 2.3.4 改变时间设定 本程序实现了对行人通行时间,汽车通行时间以及夜间时间段的设定。设定方式为由按键实现加减。主要代码已经内嵌于按键消抖程序中。 图2.6 图2.7 2.3.5 交通灯主控程序

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档