EDA技术及应用课程设计 交通灯.docx
- 文档编号:12641528
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:11
- 大小:682.88KB
EDA技术及应用课程设计 交通灯.docx
《EDA技术及应用课程设计 交通灯.docx》由会员分享,可在线阅读,更多相关《EDA技术及应用课程设计 交通灯.docx(11页珍藏版)》请在冰豆网上搜索。
EDA技术及应用课程设计交通灯
太原理工大学
EDA技术及应用课程设计
设计题目:
交通灯控制器的设计
学生姓名凌天
学号
专业班级电信0801班
同组人
课设题目:
交通灯控制器
1、设计要求
设计一个由一条主干道和一条支干道的十字路口的交通灯控制器,具体要求如下:
1、主、支干道各设有一个绿、黄、红指示灯,2个显示数码管。
2、主干道处于常允许通行状态,而支干道有车来才允许通行。
当主干道允许通行亮绿灯时,支干道亮红灯。
当支干道允许通行亮绿灯时,主干道亮红灯。
3、当主、支干道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减计时显示。
2、设计方案
原理图
各部分功能叙述
1、交通灯主控制器模块JTDKZ
接收时钟和主、支干道的输入信号,控制主干道和支干道的信号灯的输出。
2、45S计时译码模块CNT45S
完成主干道45s的计时功能。
3、5S计时译码模块CNT5S
完成主、支干道红绿灯转换时,黄灯显示的5s倒计时功能。
4、25S计时译码模块CNT25S
完成支干道25s的计时功能。
5、显示控制模块XSKZ
控制两个数码显示管的输出,使其能显示45s、25s的计时和5s的倒计时功能。
6、显示译码器YMQ
译码。
7、例化程序
使各个部分的功能合为一体,完成整个交通控制器的功能。
3、执行过程
1、将各部分VHDL参考程序输入软件,编译使其各个通过
1、交通灯主控制器模块JTDKZ:
2、45S计时译码模块CNT45S:
3、5S计时译码模块CNT5S:
4、25S计时译码模块CNT25S:
5、显示控制模块XSKZ:
6、显示译码器YMQ:
7、顶层原件例化程序及其编译
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityjiaotdis
port(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;
architecturearcofjiaotdis
componentjtdkzis
port(clk,sm,sb:
instd_logic;
mr,my,mg,br,by,bg:
outstd_logic);
endcomponent;
componentCNT45Sis
port(SB,CLK,EN45:
INSTD_LOGIC;
DOUT45M,DOUT45B:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
endcomponent;
componentCNT05SIS
PORT(CLK,EN05M,EN05B:
INSTD_LOGIC;
DOUT5:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
endcomponent;
componentCNT25SIS
PORT(SB,SM,CLK,EN25:
INSTD_LOGIC;
DOUT25M,DOUT25B:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
endcomponent;
componentXSKZIS
PORT(EN45,EN25,EN05M,EN05B:
INSTD_LOGIC;
AIN45M,AIN45B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
AIN25M,AIN25B,AIN05:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUTM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
DOUTB:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
endcomponent;
componentYMQIS
PORT(AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)
);
endcomponent;
signaldout4:
std_logic_vector(6downto0);
signalmy1,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);
begin
mg<=notmg1;
my<=notmy1;
bg<=notbg1;
by<=notby1;
mr<=notmr1;
br<=notbr1;
u1:
jtdkzportmap(clk=>clk,sm=>sm,sb=>sb,mr=>mr1,my=>my1,mg=>mg1,br=>br1,by=>by1,bg=>bg1);
u2:
cnt45sportmap(clk=>clk,sb=>sb,en45=>mg1,dout45m=>dout45m,dout45b=>dout45b);
u3:
cnt05sportmap(clk=>clk,en05m=>my1,en05b=>by1,dout5=>dout5);
u4:
cnt25sportmap(clk=>clk,sb=>sb,sm=>sm,en25=>bg1,dout25m=>dout25m,dout25b=>dout25b);
u5:
xskzportmap(en45=>mg1,en25=>bg1,en05m=>my1,en05b=>by1,ain45m=>dout45m,
ain45b=>dout45b,ain25m=>dout25m,ain25b=>dout25b,ain05=>dout5);
u6:
ymqportmap(ain4=>doutm(3downto0),dout7=>dout1);
U7:
ymqportmap(ain4=>doutm(7downto4),dout7=>dout2);
U8:
ymqportmap(ain4=>doutb(3downto0),dout7=>dout3);
U9:
ymqportmap(ain4=>doutb(7downto4),dout7=>dout4);
endarc;
顶层程序编译
2、将所有程序进行器件适配,成功后设定管脚
3、下载程序
4、课程设计总结
通过这次的数字电路硬件课程设计,我学会了如何利用软件将通用的可编程硬件变成自己想要的功能的硬件。
也对用VHDL语言进行编程有了直观的感受,尤其是关于原件例化的程序,通过不断的修改和编译,终于使其实现了它的功能。
由于这次设计之前并没有一个很好的思路,所以在后续的编写和合成时总是出现警告和错误,使设计无法顺利进行。
其实如果自己去独立设计的话,会用更简单的思路去设计和实现它,就是用一个计数器,使其分成三段时间,每段时间分别完成在45s、25s、5s的计时段中的相关动作。
这样可以大大降低工作程度且不易出错。
总之,这次课设对以后的学习和工作实践会有很大的启发及帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA技术及应用课程设计 交通灯 EDA 技术 应用 课程设计