十字路口交通灯控制器的设计.docx

上传人:叶*** 文档编号:35578604 上传时间:2022-08-22 格式:DOCX 页数:8 大小:16.01KB
返回 下载 相关 举报
十字路口交通灯控制器的设计.docx_第1页
第1页 / 共8页
十字路口交通灯控制器的设计.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《十字路口交通灯控制器的设计.docx》由会员分享,可在线阅读,更多相关《十字路口交通灯控制器的设计.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、西安工业大学北方信息工程学院课程设计报告课 程 数字系统设计 题 目 十字路口交通灯控制器的设计 专 业 通信工程 班 级 学 号 姓 名 2012年 6 月 23 日目录一、设计目的2二、设计要求和任务2设计任务:2三、方案论证2四、VHDL语言程序描述3五、对VHDL语言进行处理7六、硬件仿真7七、心得体会10一、设计目的利用MaxplussII平台的VHDL语言设计一个十字交叉路口的交通灯控制器,要求主干道和支道持续的时间各不相同,并能够用倒计时的形式显示。二、设计要求和任务设计任务:有一条主干道和一条支干道的汇合点形成十字交叉路口,主干道为东西向,支干道为南北向。为确保车辆安全,迅速地

2、通行,在交叉道口的每个入口处设置了红、黄、绿3种信号灯(可利用实验板上的LED显示灯表示交通状态,其中O1、O2、O3分别表示主干道红、黄、绿灯,O6、O7、O8分别表示支干道红、黄、绿灯)。要求:(1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,时间为5s。(2)利用七段数码显示器,实现正常的倒计时显示功能(用数码管1和数码管2显示主干道倒计时时间,用数码管4和数码管5显示支干道倒计时时间)。(3)能实现总体清零功能:计数器由初始状态开始计数,对应状态的指示灯亮。三、方案论证图1交通灯控

3、制器原理图交通灯控制器原理框图如图1所示,包括置数模块、计数模块、主控制器模块和译码器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。其中,核心部分是主控制模块,他负责整个交通灯的运行状态。表1 交通灯控制器的状态转换表状态主干道支干道时间1(00)绿灯亮红灯亮35s2(01)黄灯亮红灯亮5s3(10)红灯亮绿灯亮25s4(11)红灯亮黄灯亮5s(1)控制器模块设计依设计要求,可画出交通灯点亮规律的状态转换表,如表1所示。根据状态图进行主控制器的设计。(2)译码模块由于系统要进行35s,5s,25s

4、三种定时,可以采用一个置数模块由主控模块输出的信号控制定时时间的选择。(3)定时计数器采用倒序计时的方式,由主控模块输出的信号控制定时的开始,定时时间结束时输出定时时间结束信号到主控模块,通过主控模块控制交通灯的亮、灭。(4)译码模块把计数器输出的信号分别进行译码,由数码管显示当前计数。四、VHDL语言程序描述-主干道放行35秒,支干道放行25秒,黄灯过渡时间为5秒的程序示例library ieee; -库说明use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity jiaotongdeng is -实体名称 port(

5、 clk_in:instd_logic; -端口定义:时钟信号rst:instd_logic;复位信号light:outstd_logic_vector(7 downto 0);指示灯显示 LED7S0:out STD_LOGIC_VECTOR(6 downto 0); -支干道十位数 LED7S1:out STD_LOGIC_VECTOR(6 downto 0); -支干道个位数 LED7S2:out STD_LOGIC_VECTOR(6 downto 0); -主干道十位数 LED7S3:out STD_LOGIC_VECTOR(6 downto 0) -主干道个位数endjiaotong

6、deng;architecture arc of jiaotongdeng is -结构体 type states is(green_red,yellow_red,red_green,red_yellow); -定义了一个新的类型signalstate:states; signal nextstate:states:=green_red; -定义下一状态 signal data0:integer range 0 to 3; -支干道十位初始值范围 signal data1:integer range 0 to 9; -支干道个位初始值范围 signal data2:integer range

7、0 to 3; -主干道十位初始值范围 signal data3:integer range 0 to 9; -主干道个位初始值范围signalclock_buffer:std_logic; signal count_time:integer range 0 to 1999999; -时钟技术范围signalclk:std_logic; signal sec0:integer range 0 to 3; -支干道十位显示值范围 signal sec1:integer range 0 to 9; -支干道十位显示值范围 signal sec2:integer range 0 to 3; -主干道

8、十位显示值范围 signal sec3:integer range 0 to 9; -主干道十位显示值范围beginfrequent:process(clk_in) -分频程序beginifclk_inevent and clk_in=1 then if count_time=1999999 then -2M翻转一次count_time=0;clock_buffer=not clock_buffer;elsecount_time=count_time+1;end if;end if;clk=clock_buffer; -输出为1HZ的频率end process;light_statment:p

9、rocess(rst,state) -交通信号灯的显示状态,及状态转换、初始值的设置beginif rst=0 then lightlight=11011011; -主干道绿灯亮,支干道红灯亮(状态一)nextstate=yellow_red; -下一状态为主干道黄灯亮,支干道红灯亮(状态二) data2=0;-下一状态的初始值设置 data3=4; data0=0;data1light=10111011; -主干道黄灯亮,支干道红灯亮(状态二)nextstate=red_green; data2=2; data3=9;data0=2;data1light=01111110; -主干道红灯亮,

10、支干道绿灯亮(状态三)nextstate=red_yellow; data2=0; data3=4;data0=0;data1light=01111101; -主干道红灯亮,支干道黄灯亮(状态四)nextstate=green_red; data2=3; data3=4; data0=3;data1=9;end case;end if;end process;time:process(rst,clk) -记时状态beginifrst=0 then sec0=3;sec1=9;sec2=3;sec3=4; state=green_red; -数码管的初始值,初始状态elsif (rising_e

11、dge(clk)then if(sec0=0 )and(sec1=0) )or (sec2=0 )and(sec3=0)then -若支干道十位为0,个位为0或者主干道十位为0,个位为0就跳转到下一个状态state=nextstate; sec2=data2;sec3=data3; -数码管置下一状态的初始值 sec0=data0;sec1=data1;elsesec1=sec1-1; -支干道个位减一sec3=sec3-1; -主干道个位减一 if(sec2/=0)and(sec3=0)then -主干道十位不为0,个位为0则十位减一,个位附为9 sec2=sec2-1; sec3=9;en

12、d if; if (sec0/=0)and(sec1=0)then -支干道十位不为0,个位为0则十位减一,个位附为9 sec0=sec0-1; sec1 LED7S0 LED7S0 LED7S0 LED7S0 LED7S0 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S2 LED7S2 LED7S2 LED7S2 LED7S2 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 83,rst-1,LED

13、7S0006-69、70、73、74、75、76、77LED7S1016-60、61、63、64、65、67、68LED7S2026-18、20、21、22、24、25、27LED7S3036-9、10、11、12、15、16、17Light07-58、57、56、55、54、52、51、50(3) 编译:选取窗口菜单,即可进行编译,编译完成后的提示信息如图6所示。图6 编译完成后的提示信息(4) 烧写:(a) 启动pof2jed.exe程序,将编译后生成的pof文件转换成jed文件,如图7所示进行设置。设置完毕,点击“Run”按钮。图7 pof文件转换成jed文件(b) 硬件连接:插上电源,

14、下载线一端连接计算机并口端,一端接硬件板上的JTAG端口。为了进行绝缘,在板子下面垫上一张白纸。电源插好以后,POWER灯(红灯)亮。(c) 启动Atmel ISP.exe程序,将转换好的jiaotongdeng.jed文件下载到实际硬件中去。点击,弹出的对话框“Enter Number of :1”,点击OK按钮。在弹出的对话框中按如图8所示进行设置,在JTAG中选择“Program/Verify”,Device选择“ATF1508AS”,Jedec选择刚刚转换好的jiaotongdeng.Jed,点击OK按钮。在PORT中选择所连接的计算机并口号,在Cable types选择下载线的种类为ByteBlaster。一切设置完毕后,点击Run按钮开始烧写,在烧写过程中,硬件板上的PROG灯(绿灯)会一直闪烁,烧写完毕后绿灯熄灭。七、心得体会通过利用MaxplussII平台的VHDL语言设计一个十字交叉路口的交通灯控制器,加深了我对于VHDL语言的理解和熟练,将原来的VHDL模块综合在一起。在设计过程中,对于VHDL的语言模式,定义方式等的熟练,我更加意识到了其优越的性能,设计红绿灯的时间显示,各个状态跳变的方式和时刻考察了较为严密的思路,加强了团队合作能力和动手能力。由于选择的器件所含有的宏单元有限,对程序的优化显得至关重要,避免了不必要的浪费,使得程序更加严谨和通畅。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁