- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)); --选择信
您可能关注的文档
最近下载
- 液体伤口敷料产品技术要求标准2023版.docx VIP
- 《水利工程外观质量评定规程DB34∕T 4010-2021》知识培训.pptx VIP
- DLT741-2023年架空送电线路运行规程.docx
- 并网光伏电站项目工程现场电气二次施工方案.doc
- 英语新课标背景下:非纸笔测试在小学英语期末评价中的实践研究.pdf VIP
- 股市实战绝技汇总篇(精华).doc VIP
- 历年行情的十大牛股.doc VIP
- 安徽省六校联考暨安徽六校教育研究会2026届高三入学素质检测-物理试卷答案.docx VIP
- 基于Ansys CFX的风扇叶片双向流固耦合分析.docx VIP
- (高清版)DB1307∕T 334-2020 蛋鸡无抗养殖技术规范.pdf VIP
文档评论(0)