资源描述:
《交通灯vhdl实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、大连理工大学本科实验报告题目:十字路口交通灯控制系统课程名称:数字电路课程设计学院(系):电子信息与电气工程学部专业:班级:学生姓名:学号:完成日期:成绩:题目:1设计要求设计并调试好一个十字路U的交通灯控制系统,具体功能如下:(1).主干道、支干道方向分别有红、黄、绿指示灯以及两个显示数码管。(2).当主干道方向允许通行亮绿灯时,支干道方向亮红灯,而支干道方向允许通行亮绿灯时,主干道方向亮红灯。(3).工作顺序为支干道方向红灯亮40秒,前35秒支干道方向绿灯亮,后5秒黄灯亮。然后主干道方向红灯亮20秒,前15秒支干道方向绿灯亮,后5秒黄灯亮。
2、"(4).主干道和支干道的数码管分别以倒计时的方式显示该道路当前状态所剩余的时间。2设计分析及系统方案设计根据设计要求整个系统需耍包括交通灯状态控制以及倒计时显示控制两部分,包括了计时器、交通灯状态转换控制器以及译码显示电路的设计。交通等状态转换控制器用来控制交通灯的颜色转换;计时器用来产生交通灯状态转换的条件以及数码管倒计时所需显示的数据;译码显示电路用来控制数码管完成倒计时的功能。奉道支干道计数值与交通灯亮灭关系交通灯控制流程mgmymrsgsysr1000010100010011000010103系统以及模块硬件电路设计下载时选择开发系统
3、模式5表1GW48-CK开发系统工作模式:5口称接名类型(输入/输出)结构图上的信号名引脚号说明elk输入clkO21Hz时钟信号mg输出PIO1019主干道绿灯显示信号my输出PIO918主干道黄灯显示信号mr输出PIO817主干道红灯显示信号Sg输出PIO1323支干道绿灯显示信号sy输出PIO1424支干道黄灯显示信号sr输出PIO1525支干道红灯显示信号showmh输出PIO23-2038,37,36,35主干道计吋高位信号showml输出PIO19〜1630,29,28,27主干道计时低位信号showsh输出PIO47〜4479,7
4、8,73,72支干道计时高位信号showsl输出PIO43〜4071,70,67,66支干道计时低位信号4系统的VHDL设计libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytrafficisport(clk:instd—logic;mg,my,mr,sg,sy,sr:outstd_logic;showmh:outstd_logic_vector(3downto0);showml:outstd_logic_vector(3downto0);sh
5、owsh:outstd_logic_vector(3downto0);showsl:outstd_logic_vector(3downto0));end;•交通灯亮灭状态•主干道显示状态•支干道显示状态architecturesysoftrafficistypestateis(a0,al,a2,a3);typemstateis(m0,ml,m2);typesstateis(s0,sl,s2);signalpresents,nexts:state;signalmpresent.mnext:mstate;signalspresent,snext:s
6、state;signalch35,mh35:std_logic_vector(3downto0):="0011";signalcl35,ml35:std_logic_vector(3downto0):=’’0100";-ch35(高位),cl35(低位)为交通灯状态计时信号(35s)--mh35(高位),ml35(低位)为主干道显示计时信号(35s)signalchl5,shl5:std一logic一vector(3downto0):="0001";signalcll5,sll5:stdjogic一vector(3downto0):="0100
7、";-chi5(高位),cl15(低位)为交通灯状态计时信号(15s)-shl5(高位),si15(低位)为支干道显示计时信号(15s)signalcl5,sl5,ml5:std_logic_vector(3downto0):=’’O1OO”;signalch5,sh5,mh5:stdjogic一vector(3downto0):=’’0000”;-ch5(高位),cl5(低位)为交通灯状态计时信号(5s)--sh5(高位),sl5(低位)为支干道显示计时信号(5s)--mh5(高位),ml5(低位)为主干道显示计时信号(5s)signalsh
8、40:std_logic_vector(3downto0):="0011";signalsl40:std_logic_vector(3downto0)