步行街道交通等控制电路的设计毕业设计(论文)word格式.doc

上传人:哈尼dd 文档编号:3937840 上传时间:2019-10-10 格式:DOC 页数:12 大小:151.52KB
返回 下载 相关 举报
步行街道交通等控制电路的设计毕业设计(论文)word格式.doc_第1页
第1页 / 共12页
步行街道交通等控制电路的设计毕业设计(论文)word格式.doc_第2页
第2页 / 共12页
步行街道交通等控制电路的设计毕业设计(论文)word格式.doc_第3页
第3页 / 共12页
步行街道交通等控制电路的设计毕业设计(论文)word格式.doc_第4页
第4页 / 共12页
步行街道交通等控制电路的设计毕业设计(论文)word格式.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《步行街道交通等控制电路的设计毕业设计(论文)word格式.doc》由会员分享,可在线阅读,更多相关《步行街道交通等控制电路的设计毕业设计(论文)word格式.doc(12页珍藏版)》请在三一文库上搜索。

1、步行街道交通等控制电路的设计一)设计方案 方案一: 用单片机来实现这个电路功能。单片机的最小系统,它有着丰富的IO接口,ROM和等优势,能非常方便的实现这个电路的功能,但是它的接口复杂,而且现阶段也没有深入的学习单片机。方案二:根据系统设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图设计方法,系统的整体组装设计原理图如图下所表示,它由去抖模块,设置计数器模块和交通灯控制模块三部分组成。整个系统简单,易于控制。 所以选择第二个方案。二)电路设计(1) 去抖模块去抖模块的作用在于消除按键的抖动。因为当输入信号在高低电平之间转换时,在转换的瞬间会产生毛刺,使信号波形不稳定,从而使系统不能

2、正常工作,因此加入去抖模块如图下。模块的语言设计DITHER(去抖模块)VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DITHER IS PORT(UPIN: IN STD_LOGIC; 按键弹起 DOWNIN:IN STD_LOGIC; 按键压下 KEYOUT:OUT STD_LOGIC); 按键输出信号END DITHER;ARCHITECTURE BEHAVE OF DITHER IS SIGNAL OU

3、T1: STD_LOGIC; SIGNAL OUT2: STD_LOGIC;BEGINOUT1=NOT(OUT2 AND UPIN);OUT2=NOT(OUT1 AND DOWNIN);KEYOUT=OUT1;END BEHAVE; (2)设置计数模块设置计数器模块的是设置并存储主干道方向和步行街道方向的时间长短。主干道方向需要设置的时间包括主干道黄灯信号时间,红灯信号时间和主干道车辆通行的最短时间,步行街道方向需要设置的时间为步行街道绿灯的闪烁时间,如图下。COUNT(计数模块)VHD源程序SSTATE=000WHEN PRE_SET=0 ELSE HUMAN_SET & CLEAR & C

4、LKSUB; SCLK=CLKADD OR CLKSUB OR CLEAR;PROCESS(CLK) BEGIN IF (CLKEVENT AND CLK=1)THEN DSCLK=SCLK; END IF;END PROCESS;PROCESS(RST,CLEAR,DSCLK) BEGIN IF(RST=1)THEN VEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIMEVEHICLE_TIME=VEHICLE_TIME; END CASE; END IF;END PROCESS

5、;PROCESS(CLEAR,DSCLK) BEGIN IF(RST=1)THEN HUMAN_TIME HUMAN_TIME HUMAN_TIME HUMAN_TIME HUMAN_TIME HUMAN_TIME HUMAN_TIME HUMAN_TIME=HUMAN_TIME; END CASE; END IF; END PROCESS;PROCESS(PRE_SET,RST) BEGIN IF(RST=1)THEN GHUMAN_TIME=5; GHUMAN_CLKT=7; GVEHICLE_TIME=15; ELSIF(PRE_SETEVENT AND PRE_SET=0)THEN G

6、HUMAN_TIME=HUMAN_TIME+1; GHUMAN_CLKT=HUMAN_TIME+3; GVEHICLE_TIME=HUMAN_TIME+VEHICLE_TIME+3; END IF;END PROCESS;END BEHAVE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; CLEAR: IN STD_LOGIC; CLKADD: IN STD_

7、LOGIC; CLKSUB: IN STD_LOGIC; PRE_SET: IN STD_LOGIC; HUMAN_SET: IN STD_LOGIC; RST: IN STD_LOGIC; GHUMAN_TIME: OUT INTEGER RANGE 31 DOWNTO 0; GHUMAN_CLKT: OUT INTEGER RANGE 31 DOWNTO 0; GVEHICLE_TIME:OUT INTEGER RANGE 31 DOWNTO 0);END COUNT;ARCHITECTURE BEHAVE OF COUNT IS SIGNAL HUMAN_TIME: INTEGER RA

8、NGE 31 DOWNTO 0; SIGNAL VEHICLE_TIME: INTEGER RANGE 31 DOWNTO 0; SIGNAL SSTATE: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL SCLK: STD_LOGIC; SIGNAL DSCLK: STD_LOGIC;BEGIN图3(3)交通灯控制模块交通灯控制模块采用状态机来实现,用于存储交通灯的五种状态。五种状态的具体说明表1所表示,模块如图4所显示。(VHDL语言见附页) 表1 图4LIGHT(交通灯控制模块)VHD源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_116

9、4.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY LIGHT IS PORT(SRED: OUT STD_LOGIC; 行人方向红灯 SGREEN: OUT STD_LOGIC; 行人方向绿灯 ERED: OUT STD_LOGIC; 车辆方向红灯 EGREEN: OUT STD_LOGIC; 车辆方向绿灯 EYELLOW: OUT STD_LOGIC; 车辆方向黄灯 GT_SET: IN STD_LOGIC; 预置有效信号输入 GHUMAN_TIME: IN INTEGER RANGE 31 D

10、OWNTO 0; 行人通行时间 GHUMAN_CLKT: IN INTEGER RANGE 31 DOWNTO 0; 行人方向信号灯闪烁时间 GVEHICLE_TIME: IN INTEGER RANGE 31 DOWNTO 0; 车辆通行时间 REQUEST: IN STD_LOGIC; 请求信号输入 CLK: IN STD_LOGIC; 时钟信号 RST: IN STD_LOGIC); 复位信号END LIGHT;ARCHITECTURE BEHAVE OF LIGHT IS TYPE IN_STATES IS (ST0,ST1,ST2,ST3,ST4); SIGNAL CURRENT_S

11、TATE: IN_STATES; SIGNAL NEXT_STATE: IN_STATES; SIGNAL START: STD_LOGIC; SIGNAL SIG: INTEGER RANGE 31 DOWNTO 0;BEGIN PROCESS(CURRENT_STATE,RST) BEGIN IF(RST=1 OR CURRENT_STATE=ST0)THEN START=0; ELSE START=1; END IF; END PROCESS; A:PROCESS(START,CLK) BEGIN IF(RST=1)THEN SIG=0; ELSIF(CLKEVENT AND CLK=1

12、)THEN IF(START=1)THEN IF(SIG=GVEHICLE_TIME)THEN SIG=0; ELSE SIG=SIG+1; END IF; ELSE SIG=0; END IF; END IF; END PROCESS A;PROCESS(RST,CLK) BEGIN IF(RST=1)THEN CURRENT_STATE=ST0; ELSIF(CLKEVENT AND CLK=1)THEN CURRENT_STATE ERED=0;EGREEN=1;EYELLOW=1;SRED=0;SGREEN=0; IF(REQUEST=1 AND GT_SET=0)THEN NEXT_

13、STATE=ST1; ELSE NEXT_STATE ERED=0;EGREEN=0;EYELLOW=1;SRED=1;SGREEN=0; IF(SIG=1)THEN NEXT_STATE=ST2; ELSE NEXT_STATE ERED=1;EGREEN=0;EYELLOW=0;SRED=0;SGREEN=1; IF(SIG=GHUMAN_TIME)THEN NEXT_STATE=ST3; ELSE NEXT_STATE ERED=1;EGREEN=0;EYELLOW=0;SRED=0;SGREEN=NOT CLK; IF(SIG=GHUMAN_CLKT)THEN NEXT_STATE=S

14、T4; ELSE NEXT_STATE ERED=0;EGREEN=1;EYELLOW=0;SRED=1;SGREEN=0; IF(SIG=GVEHICLE_TIME)THEN NEXT_STATE=ST0; ELSE NEXT_STATEERED=0;EGREEN=1;EYELLOW=0; SRED=1;SGREEN=0;NEXT_STATE=ST3; END CASE; END PROCESS;END BEHAVE;三)系统仿真(1)去抖模块的仿真(2)设置计数模块的仿真图图1-2设置计数模块的仿真图(3)交通灯控制模块的仿真(如图1-3所示)图1-3交通等控制模图(4)整个系统的仿真(如

15、图1-4所示)图1-4整体模块仿真图3.上机实现步骤(1)把画好的实验原理图考到实验室的微机上。(2) 对原理图进行编译和适配,选择适当的芯片型号,如实验室支持的EPM7128SLC84-15。(3) 对电路进行仿真和时序分析,使得仿真图符合实验的设计要求真值表。(4)对电路的管脚进行重新分配与定位,可以用手动的或是自动的。(5) 进行器件的下载编程,下载时实验灯会一直亮着,下载完后就会灭。(6) 根据管脚的分配编号实验板上找到相应的管脚连线,要注意CLK是要接时钟信号,其他的4个输入端接拔码开关,同时6个输出端接发光二极管,并且要记得对号入座,不要搞混了。(7)根据仿真结果并对照真值表,拔动

16、输入端的开关,使之处于不同的高低电平,看输出的发光二极管的亮灭情况,对实验要求进行验证。(8) 若实验结果符合仿真图和真值表,则这个实验的设计是符合要求的,本课程设计是成功的。4.实验结果讨论这个实验由去抖模块,设置计数模块和交通灯控制模块三部分组成,在实验结果中,我们实现了实验要求。现是主干道的绿灯亮表示可以通行,然后主干道黄灯亮表示计时,而此时步行街道的是红灯亮表示禁止通行。再者主干道的红灯亮表示禁止通行,而步行街道的绿灯亮说明可以通行,步行街道的黄灯亮表示计时。之后循环下去。5.实验心得体会在做这次课程设计的过程中,我遇到了好多问题,随之当然就学到了很多东西。刚开始我是在琢磨选什么样的题

17、目,选定题目之后又在考虑是做硬件实验还是软件实验,这期间花了好长一段时间。本来决定做硬件实验的,因为自从上学期焊了电路板之后就在没动电烙铁了,我想动一动手来焊电路板,我也叫那些参加了电子设计大赛的同学帮我拿一些器件,但是还有一些没有了,在市区也不一定能买到,衡量之下还是选着做软件实验吧!在这过程中我又发现EDA软件库里只有基本的一些门电路和一些常用的芯片而已。于是我就想那没有的期间我要怎样才能画上去呢?随之我就了解道了一种叫着VHDL硬件描述语言,它是一种用来编程人们所需要的、具有自己想要功能的模块的硬件语言,就如C语言一样。之后我就去图书馆借这方面的教科书,从而知道怎么用VHDL语言在EDA

18、软件里编程从而产生想要的模块,怎么去理解这些语言的语句及其结构方式。我是很早就着手课程设计的,因为我怕后面时间不够。前面一段时间都在都在了解关于VHDL语言的知识,虽然我们还没学,但它是以后必须学的内容所以我们可以先自己学一些基本的东西。在这过程中我学到了很多东西,当然期间我碰了好多钉子,毕竟我们没学过这东西,所以我向大三的学长和学姐门问了一些关于这方面的问题,看不懂就问他们,后来就更知道了一些东西,真是受益匪浅啊!现在我对VHDL语言有了以一定的了解,为以后学这们课打好了基础时值得的。之后我把设计好多原理图带到实验室去测试,发现里面还存问题,当我把电路接好时那数码管没有发光,老师帮我们检查也

19、查不出原因,问他们大三的人也不知道,所以我就只好该题目了。想到我之前的努力白费了,好伤心啊,花了那么长的时间却没有成功,真的好难受。我做每件事都是好认真的,但难受也没有用啊,课程设计还是的完成啊。所以我又赶紧投入进去,设计了现在这个题目步行街道交通控制电路的设计,这个题目比之前的更容易一些,这次我很仔细的做好每一个步骤,以防又出现之前的问题,现在终于完成了。经过这次的设计实验心中好多感慨,有些无法用语言来描述,在这里只能说这些了,总的来说我还是很高兴的,因为我从中学到了好多东西,同时我也认识了几个好强的学长,通过他们我以后可以学道更多的东西,收获比较大。(1)对于一个系统的设计,一般采用自顶向

20、下的设计方法。 先对要求做一个系统的功能实现分析,再根据需要选好元器件,并找到相应的VHDL语言,从而创建此元件,再绘制原理图。(2)从这个课程设计的软件设计中,我学会了较熟练地进行操作EDA软件,知道它可以用来创建元件、绘制原理图和进行仿真等等大部分的功能及操作方法。(3)由于这是一个软件设计,其中要用到的元器件在本有的库中不存在,所以必须要自己创建新元件,因此要用到VHD语言来设计,而这个语言我们还没有学到,所以通过这次课程设计我还懂得了一些关于VHD的一些硬件描述语言的大概结构和轮廓,如何定义,如何声明等等。6.参考文献(1)电子设计自动化快速入门教程 李平编著(2)EDA技术与应用 江国强编著(3)EDA技术习题与实验 江国强编著(4)数字电子技术基础 阎石编著(5)电子技术实验与课程设计 赵淑范

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1