交通灯控制器的vhdl程序设计

交通灯控制器的vhdl程序设计

ID:11887408

大小:454.50 KB

页数:9页

时间:2018-07-14

交通灯控制器的vhdl程序设计_第1页
交通灯控制器的vhdl程序设计_第2页
交通灯控制器的vhdl程序设计_第3页
交通灯控制器的vhdl程序设计_第4页
交通灯控制器的vhdl程序设计_第5页
资源描述:

《交通灯控制器的vhdl程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、交通灯控制器一、实验目的:1、学会使用VHDL语言编程解决实际问题;2、实现高速公路与乡间小路的交叉路口红绿灯的控制;3、熟悉MAX-plusⅡ的使用。二、实验设备:PC机一台三、实验原理与内容:实现高速公路与乡间小路的交叉路口红绿灯的控制。功能如下要求:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间。〔注;这段时间定义为20S时间)。3.高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高

2、速公路绿灯。(注:这段时间定义为60S)。8程序流程图:一、实验步骤:1、在C盘以后的盘上建一个文件夹,后缀名不能有中文。2、打开MAX-plusⅡ,单击file,在new中选择texteditorfile,单击ok打开文本编辑框。3、保存到新建的文件夹中,名称与实体一致,类型为.vhd。4、在编辑框中输入程序,保存,置顶(file->project->setprojectcurrentfile);81、编译MAX-plusⅡ->compiler->star,如果有错误,可根据错误提示修改源程序,直到编译没有错误。2

3、、波形编辑MAX-plusⅡ->Wavefromeditor->EnterNodesfromSnf->list->=>->ok;3、设置仿真信号(时钟信号,输入信号),保存。4、仿真simulator,保存,改变输入信号仿真。一、程序:LIBRARYIEEE;--库和程序包USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYJTDKZIS--实体JTDKZ的说明PORT(CLK:INSTD_LOGIC;--时钟信号SB:INSTD_LOGIC

4、;--小路有无车信号(SB=1:小路有车)MR,MY,MG,BR,BY,BG:OUTSTD_LOGIC);--交通灯信号ENDENTITYJTDKZ;ARCHITECTUREARTOFJTDKZIS--JTDKZ的结构体说明TYPESTATE_TYPEIS(A,B,C,D);--定义信号SIGNALSTATE:STATE_TYPE;BEGINCNT:PROCESS(CLK)IS8VARIABLECLR:BIT;--在进程中定义变量CLR(CLR=0:计时清零)VARIABLES:STD_LOGIC_VECTOR(0T

5、O5);--在进程中定义变量S(S为时钟计时器)BEGINIF(CLK'EVENTANDCLK='1')THEN--判断时钟信号上升沿IFCLR='0'THEN--当CLR=0时计时变量清零S:="000000";ELSES:=S+1;ENDIF;CASESTATEIS--状态A为大路通车(绿灯),小路禁止通车(红灯)WHENA=>MR<='0';MY<='0';MG<='1';BR<='1';BY<='0';BG<='0';IF(SB='1')THEN--判断小路是否有车IF(S="111011")THEN--判断

6、大路通行是否满60秒STATE<=B;CLR:='0';--大路满60秒,计时清零,转到状态BELSESTATE<=A;CLR:='1';--大路不满60秒,继续状态A8ENDIF;ELSESTATE<=A;CLR:='1';--小路没车,大路一直通车ENDIF;--状态B为大路禁止通车(黄灯),小路禁止通车(红灯)WHENB=>MR<='0';MY<='1';MG<='0';BR<='1';BY<='0';BG<='0';IFS="000100"THEN--判断大路黄灯是否满5秒STATE<=C;CLR:='0';

7、--满5秒,计时清零,跳转到C状态ELSESTATE<=B;CLR:='1';--不满5秒继续状态B。ENDIF;--状态C为大路禁止通车(红灯),小路通车(绿灯)WHENC=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='0';BG<='1';IF(SB='1')THEN--判断小路是否有车IFS="010011"THEN--判断大路通行是否满20秒STATE<=D;CLR:='0';--满20秒,计时清零,跳转到D状态ELSESTATE<=C;CLR:='1';--不满20秒继续状态C

8、。8ENDIF;ELSIFSB='0'THEN--判断小路是否有车STATE<=D;CLR:='0';--小路没车,跳转到状态DELSESTATE<=C;CLR:='1';--小路有车,继续状态CENDIF;--状态D为大路禁止通车(红灯),小路禁止通车(黄灯)WHEND=>MR<='1';MY<='0';MG<='0';BR<='0';BY<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。