交通灯控制器的vhdl程序设计方案_第1页
交通灯控制器的vhdl程序设计方案_第2页
交通灯控制器的vhdl程序设计方案_第3页
交通灯控制器的vhdl程序设计方案_第4页
交通灯控制器的vhdl程序设计方案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE4交通灯控制器实验目的:1、学会使用VHDL语言编程解决实际问题;2、实现高速公路与乡间小路的交叉路口红绿灯的控制;3、熟悉MAX—plusⅡ的使用。实验设备:PC机一台实验原理与内容:实现高速公路与乡间小路的交叉路口红绿灯的控制。功能如下要求:1。只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。2。当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间。〔注;这段时间定义为20S时间)。高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯。(注:这段时间定义为60S)。程序流程图:实验步骤:在C盘以后的盘上建一个文件夹,后缀名不能有中文。打开MAX—plusⅡ,单击file,在new中选择texteditorfile,单击ok打开文本编辑框。保存到新建的文件夹中,名称与实体一致,类型为。vhd。在编辑框中输入程序,保存,置顶(file—〉project—〉setprojectcurrentfile);编译MAX—plusⅡ->compiler->star,如果有错误,可根据错误提示修改源程序,直到编译没有错误.波形编辑MAX—plusⅡ-〉Wavefromeditor->EnterNodesfromSnf—>list-〉=>-〉ok;设置仿真信号(时钟信号,输入信号),保存。仿真simulator,保存,改变输入信号仿真。程序:LIBRARYIEEE;-—库和程序包USEIEEE。STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;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; BEGINCNT:PROCESS(CLK)ISVARIABLECLR: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-—判断小路是否有车 STATE〈=D;CLR:=’0';-—小路没车,跳转到状态D ELSE STATE<=C;CLR:=’1’;—-小路有车,继续状态C ENDIF;--状态D为大路禁止通车(红灯),小路禁止通车(黄灯) WHEND=>MR<=’1';MY<='0’;MG〈='0'; BR〈='0';BY<='1';BG〈='0’; IFS="000100”THEN——判断小路黄灯是否满5秒 STATE<=A;CLR:=’0’;——满5秒,计时清零,跳转到A状态 ELSE STATE<=D;CLR:='1';—-不满5秒,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论