基于FPGA的交通灯的设计.docVIP

  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的交通灯控制器 课程设计 专业班级:微电子0802班 学 号: 0806080210 姓 名:王源 2012-1-5 一、设计任务要求 基于FPGA的交通灯控制器设计 1、总体要求: 实现十字路口的交通灯有序显示 2、具体要求: 按照开发板上的两组红、黄、绿做为南北双向指示灯 红灯亮60秒,绿灯亮55秒,黄灯亮5秒 要求采用状态机实现状态切换 3、附加要求: 采用两组两位数码管实现时间倒计时显示 二、设计思路 1、总体设计方案 由设计任务要求可知 输入部分有: CLK时钟频率输入,可由实验板上直接提供,本设计选用1kHZ时钟频率。 输出部分有: 1)东西方向和南北方向各使用3个LED显示,红黄绿各代表红黄绿灯。 2)东西方向和南北方向计时均为2位数,共需要4个LED七段数码管显示。由于为共阴极控制,输出三个SEL0,SEL1,SEL2信号控制选择数码管显示,A,B,C,D,E,F,G信号为输出显示的内容。 3)R1,G1,Y1;R2,G2,Y2信号分别为东西南北红绿灯的输出控制信号。 总体设计软件原理图如下所示 设计方案原理图: 图1 A对应13脚; B对应30脚;  C对应15脚; D对应31脚; E对应33脚; F对应32脚; G对应35脚; R1对应4脚; R2对应5脚 ;Y1对应3脚; Y2对应10脚;G2对应8脚 ; SEL0对应14脚; SEL1对应11脚; SEL2对应12脚.CLK对应24脚; 交通灯系统结构图如下所示: 红 黄 绿 红 黄 绿 LED LED 红 黄 绿 红 黄 绿 图2 状态切换的状态图如下图: 图3 2、模块设计及结果 在VHDL设计中,采用自顶向下的设计思路。 顶层模块中,根据硬件设计,设置如下端口: 外部时钟信号:Clk 东西方向状态灯控制信号:R1,G1,Y1; 南北方向状态灯控制信号:R2,G2,Y2; (1)分频模块:由于外部时钟信号clk的频率为1KHz,而实际需要的内部计时时钟频率为1Hz,需要一个分频电路。 输入端口:clk外部时钟信号 输出端口:clk_out分频后信号 源程序代码如下: 数码管显示信号:A,B,C,D,E,F,G; 数码管共阴极控制:SEL0,SEL1,SEL2; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity Frequency1 is port( clk:in std_logic; --外部时钟信号 clk_out:out std_logic --分频后信号 ); end Frequency1; architecture Frequency1_arc of Frequency1 is begin process(clk) variable temp:integer range 0 to 999; begin if(clkevent and clk=1)then if(temp=999)then --分频计数 temp:=0; clk_out=0; else temp:=temp+1; clk_out=1; end if; end if; end process; end; 图4 (2)状态选择模块:由于共需要显示4个数字,需要循环点亮7位数码管,该模块通过输入的时钟信号,循环输出4个选择信号。当紧急状态信号到来,改变显示状态,通过计数部分,实现闪烁。 输入端口:1KHZ clk时钟信号 输出端口:SEL0,SEL1,SEL2片选择信号 源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity StatusSelect is port( clk:in std_logic; --时钟信号 sel:out std_logic_vector(2 downto 0)); --选择信

文档评论(0)

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

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

1亿VIP精品文档

相关文档