欢迎来到天天文库
浏览记录
ID:18607602
大小:56.50 KB
页数:7页
时间:2018-09-19
《数字系统设计课程设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安工业大学北方信息工程学院课程设计报告课程数字系统设计题目十字路口交通灯控制器的设计专业通信工程班级B090310学号B09031010姓名李向上2012年6月20日一、设计目的利用MaxplussII平台的VHDL语言设计一个十字交叉路口的交通灯控制器,要求主干道和支道持续的时间各不相同,并能够用倒计时的形式显示。二、设计要求和任务设计任务:有一条主干道和一条支干道的汇合点形成十字交叉路口,主干道为东西向,支干道为南北向。为确保车辆安全,迅速地通行,在交叉道口的每个入口处设置了红、黄、绿3种信号灯(可利用实
2、验板上的LED显示灯表示交通状态,其中O1、O2、O3分别表示主干道红、黄、绿灯,O6、O7、O8分别表示支干道红、黄、绿灯)。要求:(1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,时间为5s。(2)利用七段数码显示器,实现正常的倒计时显示功能(用数码管1和数码管2显示主干道倒计时时间,用数码管4和数码管5显示支干道倒计时时间)。(3)能实现总体清零功能:计数器由初始状态开始计数,对应状态的指示灯亮。三、
3、方案论证图1交通灯控制器原理图交通灯控制器原理框图如图1所示,包括置数模块、计数模块、主控制器模块和译码器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。其中,核心部分是主控制模块,他负责整个交通灯的运行状态。表1交通灯控制器的状态转换表状态主干道支干道时间1(00)绿灯亮红灯亮35s2(01)黄灯亮红灯亮5s3(10)红灯亮绿灯亮25s4(11)红灯亮黄灯亮5s(1)控制器模块设计依设计要求,可画出交通灯点亮规律的
4、状态转换表,如表1所示。根据状态图进行主控制器的设计。(2)译码模块由于系统要进行35s,5s,25s三种定时,可以采用一个置数模块由主控模块输出的信号控制定时时间的选择。(3)定时计数器采用倒序计时的方式,由主控模块输出的信号控制定时的开始,定时时间结束时输出定时时间结束信号到主控模块,通过主控模块控制交通灯的亮、灭。(4)译码模块把计数器输出的信号分别进行译码,由数码管显示当前计数值。、下面以主干道放行7秒,支干道放行5秒,黄灯过渡时间为2秒为例,给出了程序的代码注:加上注释是为了让大家更好地理解程序,若因
5、为注释中汉字的识别原因造成检查错误,请大家去除注释后再运行----主干道放行7秒,支干道放行5秒,黄灯过渡时间为2秒的程序示例libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityjiaotongdengisport(clk_in:instd_logic;----4MHz时钟输入信号rst:instd_logic;----复位信号light:outstd_logic_vector(7downto0);----输出的
6、灯信号LED7S0:outSTD_LOGIC_VECTOR(6downto0);----输出的支干道计数信号LED7S2:outSTD_LOGIC_VECTOR(6downto0)----输出的主干道计数信号);endjiaotongdeng;architecturearcofjiaotongdengistypestatesis(green_red,yellow_red,red_green,red_yellow);----定义状态类型signalstate:states:=green_red;----当前状态s
7、ignalnextstate:states:=green_red;----下一状态signaldata0:integerrange0to9;--支干道数码管置数初始值signaldata2:integerrange0to9;--主干道数码管置数初始值signalclock_buffer:std_logic;signalcount_time:integerrange0to1999999;signalclk:std_logic;signalsec0:integerrange0to9;--支干道数码管当前显示值sig
8、nalsec2:integerrange0to9;--主干道数码管当前显示值beginfrequent:process(clk_in)--分频程序beginifclk_in'eventandclk_in='1'thenifcount_time=1999999thencount_time<=0;clock_buffer<=notclock_buffer;elsecount_time<=c
此文档下载收益归作者所有