资源描述:
《eda技术及应用课程设计 交通灯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、太原理工大学EDA技术及应用课程设计设计题目:交通灯控制器的设计学生姓名凌天学号专业班级电信0801班同组人课设题目:交通灯控制器一、设计要求设计一个由一条主干道和一条支干道的十字路口的交通灯控制器,具体要求如下:1、主、支干道各设有一个绿、黄、红指示灯,2个显示数码管。2、主干道处于常允许通行状态,而支干道有车来才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。当支干道允许通行亮绿灯时,主干道亮红灯。3、当主、支干道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮
2、绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减计时显示。二、设计方案原理图各部分功能叙述1、交通灯主控制器模块JTDKZ接收时钟和主、支干道的输入信号,控制主干道和支干道的信号灯的输出。2、45S计时译码模块CNT45S完成主干道45s的计时功能。3、5S计时译码模块CNT5S完成主、支干道红绿灯转换时,黄灯显示的5s倒计时功能。4、25S计时译码模块CNT25S完成支干道25s的计时功能。5、显示控制模块XSKZ控制两个数码显示管的输出,使其能显示45s、25s的计时和5s的倒计时功能
3、。6、显示译码器YMQ译码。7、例化程序使各个部分的功能合为一体,完成整个交通控制器的功能。二、执行过程1、将各部分VHDL参考程序输入软件,编译使其各个通过1、交通灯主控制器模块JTDKZ:2、45S计时译码模块CNT45S:3、5S计时译码模块CNT5S:4、25S计时译码模块CNT25S:5、显示控制模块XSKZ:5、显示译码器YMQ:7、顶层原件例化程序及其编译libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigne
4、d.all;useieee.std_logic_arith.all;entityjiaotdisport(sm:instd_logic;clk:instd_logic;sb:instd_logic;mr,br:outstd_logic;my,mg,by,bg:outstd_logic;dout1,dout2:outstd_logic_vector(6downto0));end;architecturearcofjiaotdiscomponentjtdkzisport(clk,sm,sb:inst
5、d_logic;mr,my,mg,br,by,bg:outstd_logic);endcomponent;componentCNT45Sisport(SB,CLK,EN45:INSTD_LOGIC;DOUT45M,DOUT45B:OUTSTD_LOGIC_VECTOR(7DOWNTO0));endcomponent;componentCNT05SISPORT(CLK,EN05M,EN05B:INSTD_LOGIC;DOUT5:OUTSTD_LOGIC_VECTOR(7DOWNTO0));endc
6、omponent;componentCNT25SISPORT(SB,SM,CLK,EN25:INSTD_LOGIC;DOUT25M,DOUT25B:OUTSTD_LOGIC_VECTOR(7DOWNTO0));endcomponent;componentXSKZISPORT(EN45,EN25,EN05M,EN05B:INSTD_LOGIC;AIN45M,AIN45B:INSTD_LOGIC_VECTOR(7DOWNTO0);AIN25M,AIN25B,AIN05:INSTD_LOGIC_VEC
7、TOR(7DOWNTO0);DOUTM:OUTSTD_LOGIC_VECTOR(7DOWNTO0);DOUTB:OUTSTD_LOGIC_VECTOR(7DOWNTO0));endcomponent;componentYMQISPORT(AIN4:INSTD_LOGIC_VECTOR(3DOWNTO0);DOUT7:OUTSTD_LOGIC_VECTOR(6DOWNTO0));endcomponent;signaldout4:std_logic_vector(6downto0);signalmy
8、1,mg1,by1,bg1,en45,en25,en05m,en05b:std_logic;signalmr1,br1:std_logic;signaldout45m,dout45b,dout25m,dout25b,dout5,ain45m,ain45b,ain25b,ain25m,ain05m,doutm,doutb:STD_LOGIC_VECTOR(7DOWNTO0);signaldout3:std_logic_vector(6downto0);beginmg<=notmg1;my<=not