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