- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
物理科学与电子信息学院
EDA课程设计报告书
姓名: 张连兵
班级: 电信(一)班
学号: 1334301124
时间: 2016年 06月 14 日
.一:论文题目 步行街道自助式交通灯控制器的设计 .二:课程论文要求
正常情况下保证主干道的畅通。
当步行街道上的行人要穿过主干道时,通过设置的按钮来发出请求。
当有人按下此按钮时,主干道变为黄灯,设置计数器时间为3秒。
3秒过后,主干道变为红灯,计数器继续计时(计时时间为30秒),在30秒内若有人再次按按钮,计数器不重新计时。
步行街绿灯闪烁时间为5秒,25秒后主干道变为绿灯,车辆通行。且咬保证车辆通行一定时间(30秒)。在此时间内,行人按按钮无效。30秒过后,若有人再按下按钮,又出现(3)中的状态。
计数器的计时时间长短X~Y~Z可以任意设定。 .三:设计方案 系统设计方案
根据系统设计要求有两种实现方法,一种是采用EDA的实验软件来实现系统要求;另一种采用基本门电路和各种触发器电路元件来实现。
方案一:EDA设计方法(软件:max_plus10.0)
根据系统设计要求,系统设计采用自顶而下的设计方法,顶层设计采用原理图设计方法,系统的整体设计原理图如图(1)所示,它右去抖模块~设置计数模块和交通灯控制三部分组成。
去抖模块
去抖模块的作用在于消除按键的抖动,因为当输入信号在高低电平之间转换时,在转换的瞬间会产生毛刺,使信号波形不稳定,从而使系统不能正常工作,因此要加入去抖模块。
设置计数模块
设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。主干道方向需要设置的时间包括主干道黄灯信号时间,红灯信号时间和主干道车辆允许通行的最短时间,步行街道方向需要设置的时间为步行街道的闪烁时间。
交通灯控制模块
交通灯模块通过采用状态机来实现,用于存储交通灯的五种状态。五种状态的集体说明如下表。
状态
主干道信号灯
步行街信号灯
主干道
步行街道
R红
G绿
Y黄
R红
G绿
S0
0
1
0
1
0
通行
禁行
S1
0
0
1
1
0
车停靠
禁行
S2
1
0
0
0
1
禁行
通行
S3
1
0
0
0
禁行
通行(绿灯闪烁
S4
0
1
0
1
0
通行
禁行
方案二:用硬件来实现本系统要求的功能
其基本组成部分和方案一一样,但不同的是用硬件来实现三个模块的逻辑功能。
对于去抖模块,可采用下图所示的防抖动输出电路来解决。课本P216 4.4题
对于计数模块,设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。所以需要两个可以计数并存储的计数器来实现,
综上所述,两个方案各有各的优点,但根据时代的发展要求,选择方案一是首选!因为方案二要焊接的电路板太多,对于有实际用处的逻辑电路一般是进行设计·仿真后有功能实现就大批量生产,如果采用电路板焊接来实现,会增加工作时间,并且不一定能买到合适的元件来满足设计要求,而方案一采用EDA技术来实现实验功能,在出现问题后容易进行解决并进行修正。所以本实验采用方案二进行设计。
.四:设计过程 1:根据系统设计方案二编写各模块的元程序如下:
去抖模块的VHDL源程序(dither.vhd)
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 OUT1: STD_LOGIC;
SIGNAL OUT2: STD_LOGIC;
BEGIN
OUT1=NOT( OUT2 AND UPIN );
OUT2=NOT( OUT1 AND DOWNIN );
KEYOUT=OUT1;
END BEHAVE;
产生图形如下
(2):设置计数模块的VHDL源程序如下(count.vhd)
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:
原创力文档


文档评论(0)