大连理工大学本科实验报告题目:十字路口交通灯控制系统课程名称:数字电路课程设计学院(系):电子信息与电气工程学部专业:班级:学生姓名:学号:完成日期:成绩:日月年题目:1设计要求设计并调试好一个十字路口的交通灯控制系统,具体功能如下:(1).主干道、支干道方向分别有红、黄、绿指示灯以及两个显示数码管。(2).当主干道方向允许通行亮绿灯时,支干道方向亮红灯,而支干道方向允许通行亮绿灯时,主干道方向亮红灯。(3).工作顺序为支干道方向红灯亮40秒,前35秒支干道方向绿灯亮,后5秒黄灯亮。然后主干道方向红灯亮20秒,前15秒支干道方向绿灯亮,后5秒黄灯亮。(4).主干道和支干道的数码管分别以倒计时的方式显示该道路当前状态所剩余的时间。2设计分析及系统方案设计根据设计要求整个系统需要包括交通灯状态控制以及倒计时显示控制两部分,包括了计时器、交通灯状态转换控制器以及译码显示电路的设计。交通等状态转换控制器用来控制交通灯的颜色转换;计时器用来产生交通灯状态转换的条件以及数码管倒计时所需显示的数据;译码显示电路用来控制数码管完成倒计时的功能。03540绿灯亮黄灯亮主干道红灯亮支干道040计数值与交通灯亮灭关系60红灯黄灯绿灯5560交通灯控制流程图srsymrsgmgmy100100100100010100000110系统以及模块硬件电路设计3下载时选择开发系统模式5表1GW48-CK开发系统工作模式:5接口名称类型(输入/输出)结构图上的信号名引脚号说明clk输入clk021Hz时钟信号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,78,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);showsh:outstd_logic_vector(3downto0);showsl:outstd_logic_vector(3downto0));end;architecturesysoftrafficistypestateis(a0,a1,a2,a3);--交通灯亮灭状态--主干道显示状态typemstateis(m0,m1,m2);--typesstateis(s0,s1,s2);支干道显示状态signalpresents,nexts:state;signalmpresent,mnext:mstate;signalspresent,snext:sstate;signalch35,mh35:std_logic_vector(3downto0):=1;signalcl35,ml35:std_logic_vector(3downto0):=0;--ch35(高位),cl35(低位)为交通灯状态计时信号(35s)--mh35(高位),ml35(低位)为主干道显示计时信号(35s)signalch15,sh15:std_logic_vector(3downto0):=signalcl15,sl15:std_logic_vector(3downto0):=0;--ch15(高位),cl15(低位)为交通灯状态计时信号(15s)--sh15(高位),sl15(低位)为支干道显示计时信号(15s)signalcl5,sl5,ml5:std_logic_vector(3downto0):=0;signalch5,sh5,mh5:std_logic_vector(3downto0):=--ch5(高位),cl5(低位)为交通灯状态计时信号(5s)--sh5(高位),sl5(低位)为支干道显示计时信号(5s)--mh5(高位),ml5(低位)为主干道显示计时信号(5s)signalsh40:std_logic_vector(3downto0):=1;signalsl40:std_logic_vector(3downto0):=@1;--sh40(高位),sl40(低位)为支干道显示计时信号(40s)signalmh20:std_logic_vector(3downto0):=signalml20:std_logic_vector(3downto0):=@1;--mh20(高位),ml20(低位)为主干道显示计时信号(20s)signalsreach40,mreach20,mreach5,sreach5,mreach35:std_logic:='0';sreach15,reach5,reach35,reach15:std_logic:='0';--表示各计时信号计时一次结束的信号signalsrst40,mrst20,mrst5,srst5,mrst35,srst15,rst5,rst35,rst15:std_logic:='0';--将各计时信号重新置数的信号beginshift:process(clk)--状态转换beginifclk'eventandclk='1'thenpresents<=nexts;--交通灯状态转换--主干道显示状态转换mpr...