《FPGA系统设计》实验报告》交通灯控制系统的设计实验 .pdfVIP

《FPGA系统设计》实验报告》交通灯控制系统的设计实验 .pdf

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

《FPGA系统设计》实验报告》交通灯控制系统的设计实验

一.实验目的

了解交通灯及控制系统的控制及其显示模块。

二.实验要求

1.交通灯从绿色变成红色时,要经过黄色的过渡,黄色灯亮的时间为5秒:

2.交通灯从红色变成绿色时,不要需要经过黄色灯的过渡,直接由红色变成绿色,绿色灯点亮的时间为25

秒,红色灯点亮的时间为20秒;

3.各种灯点亮时,要实现时间的倒计时显示。

三.实验操作步骤

假设十字路口的方向为xy两方向,对两个方向需要两个控制模块来控制交通灯的点亮,还需要时间倒计时

显示,即需要显示模块,因此系统的总设计模块图由三大模块组成,分别是xy两方向的控制模块,显示模

块。其中显示模块又由三个子模块构成,分别是数码管选择模块,数据分配模块,数码管驱动模块。

控制模块的设计

控制模块是控制系统的核心部分,它实现了交通灯的三种颜色的交替点亮和时间倒计时的控制。

x方向控制代码如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCORNAIS

PORT(CLK:INSTD_LOGIC;

R,G,Y:OUTSTD_LOGIC;

TIMH,TIML:OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDCORNA;

ARCHITECTURECORNEROFCORNAIS

TYPERGYIS(GREEN,YELLOW,RED);

BEGIN

PROCESS(CLK)

VARIABLEA:STD_LOGIC;

VARIABLETH,TL:STD_LOGIC_VECTOR(3DOWNTO0);

VARIABLESTATE:RGY;

BEGIN

IF(CLKEVENTANDCLK=1)THEN

CASESTATEIS

WHENGREEN=

IFA=0THEN

TH:=0001;

TL:=1001;

A:=1;

G=1;

R=0;

Y=0;

ELSE

IFNOT(TH=0000ANDTL=0001)THEN

IFTL=0000THEN

TL:=1001;

TH:=TH-1;

ELSE

TL:=TL-1;

ENDIF;

ELSE

TH:=0000;

TL:=0000;

A:=0;

STATE:=YELLOW;

ENDIF;

ENDIF;

WHENYELLOW=

IFA=0THEN

TH:=0000;

TL:=0100;

A:1;

Y=1;

G=0;

R=0;

ELSE

IFNOT(TH=0000ANDTL=0001)THEN

TL:=TL-1;

ELSE

TH:=0000;

TL:=0000;

A:=0;

STATE:=RED;

ENDIF;

ENDIF;

WHENRED=

IFA=0THEN

TH:=0010;

TL:=0100;

A:=1;

R=1;

Y=0;

G=0;

ELSE

IFNOT(TH=0000ANDTL=0001)THEN

IFTL=0000THEN

TL:=1001;

TH:=TH-1;

ELSE

TL:=TL-1;

ENDIF;

ELSE

TH:=0000;

TL:=0000;

A:=0;

STATE:=GREEN

ENDIF;

ENDIF;

ENDCASE;

ENDIF;

TIMH=TH;

TIML=TL;

ENDPROCESS;

ENDCORNER;

在以上程序中,实体部分定义的输入时钟信号clk为1Hz的脉冲信号,r、g、y为接水通灯的信号,

timh和timl为时间显示信号的十位和个位值。

在结构体中定义了交通灯显示状态rgy,显示状态的顺序分别为绿、黄、红(greenyellow.red)。在

进程中进行交通灯点亮的循环操作和倒计时,定义了变量a为倒计时的标志,a为0时倒计时开始,此时设

置倒计时的初始值和哪种类型的灯点亮,并将a置1.为1时是倒计时在进行中,当倒计时计到时间的高位

和低位均为零时,a置0,并且将状本设置为下一种该点亮的交通灯。

y方向控制代码如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

US

文档评论(0)

151****9022 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档