1 / 15
文档名称:

交通灯控制器vhdl程序设计方案.doc

格式:doc   大小:452KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

交通灯控制器vhdl程序设计方案.doc

上传人:水中望月 2019/5/6 文件大小:452 KB

下载得到文件列表

交通灯控制器vhdl程序设计方案.doc

文档介绍

文档介绍:Forpersonaluseonlyinstudyandresearch;mercialuse芆袈交通灯控制器羂膄实验目的:节1、学会使用VHDL语言编程解决实际问题;袁2、实现高速公路与乡间小路的交叉路口红绿灯的控制;莆3、熟悉MAX-plusⅡ的使用。薄实验设备:羄PC机一台虿实验原理与内容:蒆实现高速公路与乡间小路的交叉路口红绿灯的控制。羅功能如下要求:,高速公路上的交通灯才可能变为红灯。、小路的交通灯保持为绿灯,但不能超过给定的延迟时间。蒆〔注;这段时间定义为20S时间)。莆高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯。膄(注:这段时间定义为60S)。蒁薅薃薂程序流程图:膀蚅羄实验步骤:莄在C盘以后的盘上建一个文件夹,后缀名不能有中文。罿打开MAX-plusⅡ,单击file,在new中选择texteditorfile,单击ok打开文本编辑框。聿保存到新建的文件夹中,名称与实体一致,。莅在编辑框中输入程序,保存,置顶(file->project->setprojectcurrentfile);螂编译MAX-plusⅡ->compiler->star,如果有错误,可根据错误提示修改源程序,直到编译没有错误。羂波形编辑MAX-plusⅡ->Wavefromeditor->EnterNodesfromSnf->list->=>->ok;腿设置仿真信号(时钟信号,输入信号),保存。螆仿真simulator,保存,改变输入信号仿真。蒄螁腿程序:***LIBRARYIEEE;--;;艿ENTITYJTDKZIS--实体JTDKZ的说明芃PORT(CLK:INSTD_LOGIC;--时钟信号蚃SB:INSTD_LOGIC;--小路有无车信号(SB=1:小路有车)莈 MR,MY,MG,BR,BY,BG:OUTSTD_LOGIC);--交通灯信号荿ENDENTITYJTDKZ;蚄ARCHITECTUREARTOFJTDKZIS--JTDKZ的结构体说明膁 TYPESTATE_TYPEIS(A,B,C,D);--定义信号莁 SIGNALSTATE:STATE_TYPE; T:PROCESS(CLK)IS袃VARIABLECLR:BIT;膀--在进程中定义变量CLR(CLR=0:计时清零)薈VARIABLES:STD_LOGIC_VECTOR(0TO5);蒆--在进程中定义变量S(S为时钟计时器)芁 BEGIN衿 IF(CLK'EVENTANDCLK='1')THEN--判断时钟信号上升沿蚈 IFCLR='0'THEN--当CLR=0时计时变量清零蚃 S:="000000";羃 ELSE蚈 S:=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--判断大路通行是否满60秒蒀STATE<=B;CLR:='0';袈--大路满60秒,计时清零,转到状态B袆 ELSE蚀 STATE<=A;CLR:='1';芈--大路不满60秒,继续状态A羈 ENDIF;芆ELSE莂 STATE<=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';螄--满5秒,计时清零,跳转到C状态薂 ELSE蝿 STATE<=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状态莇 ELSE蚃 STATE<=C;CLR:='1';--不满20秒继续状态C。蒄 ENDIF;莀 ELSIFSB='0'THEN--判断小路是否有车蒇 ST