EDA交通灯课设.docx
- 文档编号:9233534
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:158.98KB
EDA交通灯课设.docx
《EDA交通灯课设.docx》由会员分享,可在线阅读,更多相关《EDA交通灯课设.docx(20页珍藏版)》请在冰豆网上搜索。
EDA交通灯课设
课程设计报告(论文)
设计课题:
交通灯信号控制器接口设计
专业班级:
12211
学生姓名:
张**
指导教师:
胡辉
设计时间:
2014.6.7
北华航天工业学院电子工程系
EDA技术与实践课程设计任务书
姓名:
张**
专业:
应用电子技术
班级:
12211
指导教师:
胡辉
职称:
教授
课程设计题目:
交通灯信号控制器接口设计
已知技术参数和设计要求:
总体设计要求:
通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。
技术要点:
1.主干道和支干道自动循环。
主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,持续时间都为4s。
2. 手动设置主干道和支道每次通行的时间分别为为30s、40s、5
所需仪器设备:
1.EDA实验箱一台
2.PC机一台
成果验收形式:
1.与设计内容对应的软件程序
2.课程设计报告书
3.成果使用说明书
4.设计工作量要求
参考文献:
[1]EDA技术与实验李国洪·胡辉机械工业出版
[2]EDA原理及VHDL实现何斌清华大学出版社
时间
安排
周一:
总体方案设计
周二:
设计软件流程及编程
周三:
编程
周四:
软硬件联机调试
周五:
验收实验
指导教师:
胡辉教研室主任:
2014年6月7日
.概述
1.1设计背景
随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。
自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。
交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。
要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。
现代人类科学技术,特别是电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面要求的技术难题。
目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。
交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。
随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,交通自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比.
1.2设计意义交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。
要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。
现代电子科学技术的发展和成熟能比较好的解决系统建立中硬软件方面要求的技术难题。
目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。
交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。
交通网络是城市的动脉,象征着一个城市的工业文明水平。
2 研究内容及整体构思
2.1研究内容
(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
(2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了时间的显示提示
(3)设计程序的各个控制器件的排列与程序的实现可能,利用教学课本所学到的知识以及在图书馆和网络找到的资料总体上完成了软硬件的编写。
2.2整体构思
主、支路红、黄、绿灯的时长相同,定为红灯30sec,黄灯4sec,绿灯30sec,因为在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,黄灯持续时间都为4s,红灯不灭。
3、电路设计
3.1分频器的设计
分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器和计数器。
该分频器实现的是1.25MHZ,将2.5MHZ的时钟信号分频成1.25MHZ的时钟信号。
生成的Symbol文件如图所示.
3.2控制器的设计(主程序)
控制器的作用是根据计数器的计数值及输入数据控制发光二极管的亮、灭,以及输出主、支道路个灯的状态。
控制各路显示时间。
3.3计数器的设计
计数器cnt30时30s计数,cntz30是主黄,支红"和"主红,支黄"状态主干道30s计数。
Cnt4是黄灯4s计数。
四秒仿真
30s仿真
3.4译码电路设计
译码显示设计
3.5主.支道路计数显示选择程序
主.支道路计数选择的程序,判断道路交通灯的计数选择。
3.6总设计图
4安装与调试
将试验箱中所用到的模块用导线连接起来,确定各级连线正确,保证连线稳定,将调试好的程序下载到芯片里,运行程序,看二极管显示是否正确,计数是否真确,如果不符合要求那么重新调试系统。
5结论
通过硬件验证,支、干道路交通灯符合设计要求,计数正确,演示结束并通过了老师的验收,本系统合格。
6.心得体会
短短一个星期的EDA课程设计很块就结束了,虽然在之前的学习过程中还存在着没有弄懂的问题,但是通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
在拿到题目后,首先进行了单元模块的设计,将每一个单元模块设计完成后再经行仿真,在波形仿真的过程中,同样遇到了困难,有的时候,由于END TIME的时间修改的太大,会出现仿真时间过长的问题,这个时候应该要把END TIME的时间相应的改小,或是修改系统时钟的频率。
在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。
在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。
有的时候,理论上是正确的东西放到现实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。
这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。
7参考文献
[1]EDA技术与实验李国洪·胡辉机械工业出版
[2]EDA原理及VHDL实现何斌清华大学出版社
8附录
各单元程序设计
1.分频
(1)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityfenpingqiis
port(CLR,CLK:
instd_logic;
q:
bufferstd_logic);
endfenpingqi;
architectureoneoffenpingqiis
signalcounter:
integerrange0to12499;
begin
process(CLR,CLK)
begin
if(CLK='1'andCLK'event)then
ifCLR='1'then
counter<=0;
elsifcounter=12499then
counter<=0;
q<=notq;
else
counter<=counter+1;
endif;
endif;
endprocess;
endone;
(2)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityfpqis
port(CLK:
instd_logic;
q:
bufferstd_logic);
endfpq;
architectureoneoffpqis
signalcounter:
integerrange0to250;
begin
process(CLK)
begin
if(CLK='1'andCLK'event)then
ifcounter=250then
counter<=0;
q<=notq;
else
counter<=counter+1;
endif;
endif;
endprocess;
endone;
2.计数程序
4s计数:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT04SIS
PORT(
EN04M,EN04B,CLK:
INSTD_LOGIC;
DOUT4:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDCNT04S;
ARCHITECTUREAAOFCNT04SIS
SIGNALCNT3B:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
PROCESS(EN04M,EN04B,CLK)IS
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFEN04M='1'OREN04B='1'THEN
CNT3B<=CNT3B+1;
ELSE
CNT3B<="000";
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CNT3B)IS
BEGIN
CASECNT3BIS
WHEN"000"=>DOUT4<="00000100";
WHEN"001"=>DOUT4<="00000011";
WHEN"010"=>DOUT4<="00000010";
WHEN"011"=>DOUT4<="00000001";
WHENOTHERS=>DOUT4<="00000000";
ENDCASE;
ENDPROCESS;
ENDAA;
30S程序计数
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNTZ30SIS
PORT(
SB,SM,CLK,ENZ30:
INSTD_LOGIC;
DOUT30M,DOUT30B:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDCNTZ30S;
ARCHITECTUREARTOFCNTZ30SIS
SIGNALCNT5B:
STD_LOGIC_VECTOR(4DOWNTO0);
BEGIN
PROCESS(SB,SM,CLK,EN30)IS
BEGIN
IFSB='0'ORSM='0'THEN
CNT5B<=CNT5B-CNT5B-1;
ELSIF(CLK'EVENTANDCLK='1')THEN
IFENZ30='1'THENCNT5B<=CNT5B+1;
ELSIFEN30='0'THENCNT5B<=CNT5B-CNT5B-1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CNT5B)IS
BEGIN
CASECNT5BIS
WHEN"00000"=>DOUT30M<="00110000";DOUT30B<="00110100";
WHEN"00001"=>DOUT30M<="00101001";DOUT30B<="00110011";
WHEN"00010"=>DOUT30M<="00101000";DOUT30B<="00110010";
WHEN"00011"=>DOUT30M<="00100111";DOUT30B<="00110001";
WHEN"00100"=>DOUT30M<="00100110";DOUT30B<="00110000";
WHEN"00101"=>DOUT30M<="00100101";DOUT30B<="00101001";
WHEN"00110"=>DOUT30M<="00100100";DOUT30B<="00101000";
WHEN"00111"=>DOUT30M<="00100011";DOUT30B<="00100111";
WHEN"01000"=>DOUT30M<="00100010";DOUT30B<="00100110";
WHEN"01001"=>DOUT30M<="00100001";DOUT30B<="00100101";
WHEN"01010"=>DOUT30M<="00100000";DOUT30B<="00100100";
WHEN"01011"=>DOUT30M<="00011001";DOUT30B<="00100011";
WHEN"01100"=>DOUT30M<="00011000";DOUT30B<="00100010";
WHEN"01101"=>DOUT30M<="00010111";DOUT30B<="00100001";
WHEN"01110"=>DOUT30M<="00010110";DOUT30B<="00100000";
WHEN"01111"=>DOUT30M<="00010101";DOUT30B<="00011001";
WHEN"10000"=>DOUT30M<="00010100";DOUT30B<="00011000";
WHEN"10001"=>DOUT30M<="00010011";DOUT30B<="00010111";
WHEN"10010"=>DOUT30M<="00010010";DOUT30B<="00010110";
WHEN"10011"=>DOUT30M<="00010001";DOUT30B<="00010101";
WHEN"10100"=>DOUT30M<="00010000";DOUT30B<="00010100";
WHEN"10101"=>DOUT30M<="00001001";DOUT30B<="00010011";
WHEN"10110"=>DOUT30M<="00001000";DOUT30B<="00010010";
WHEN"10111"=>DOUT30M<="00000111";DOUT30B<="00010001";
WHEN"11000"=>DOUT30M<="00000110";DOUT30B<="00010000";
WHEN"11001"=>DOUT30M<="00000101";DOUT30B<="00001001";
WHEN"11010"=>DOUT30M<="00000100";DOUT30B<="00001000";
WHEN"11011"=>DOUT30M<="00000011";DOUT30B<="00000111";
WHEN"11100"=>DOUT30M<="00000010";DOUT30B<="00000110";
WHEN"11101"=>DOUT30M<="00000001";DOUT30B<="00000101";
WHENOTHERS=>DOUT30M<="00000000";DOUT30B<="00000000";
ENDCASE;
ENDPROCESS;
ENDART;
3.译码显示程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYMQIS
PORT(
AIN4:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)
);
ENDYMQ;
ARCHITECTUREARTOFYMQIS
SIGNALCNT5B:
STD_LOGIC_VECTOR(4DOWNTO0);
BEGIN
PROCESS(AIN4)IS
BEGIN
CASEAIN4IS
WHEN"0000"=>DOUT7<="0111111";
WHEN"0001"=>DOUT7<="0000110";
WHEN"0010"=>DOUT7<="1011011";
WHEN"0011"=>DOUT7<="1001111";
WHEN"0100"=>DOUT7<="1100110";
WHEN"0101"=>DOUT7<="1101101";
WHEN"0110"=>DOUT7<="1111101";
WHEN"0111"=>DOUT7<="0000111";
WHEN"1000"=>DOUT7<="1111111";
WHEN"1001"=>DOUT7<="1101111";
WHENOTHERS=>DOUT7<="0000000";
ENDCASE;
ENDPROCESS;
ENDART;
4.主干选择计数显示程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYXSKZIS
PORT(
EN30,ENZ30,EN04M,EN04B:
INSTD_LOGIC;
AIN30M,AIN30B,AIN04:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUTM,DOUTB:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDXSKZ;
ARCHITECTUREARTOFXSKZIS
BEGIN
PROCESS(EN04M,EN04B,EN30,ENZ30)IS
BEGIN
IFEN30='1'THEN
DOUTM<=AIN30M(7DOWNTO0);DOUTB<=AIN30B(7DOWNTO0);
ELSIFEN04M='1'THEN
DOUTM<=AIN04(7DOWNTO0);DOUTB<=AIN04(7DOWNTO0);
ELSIFENZ30='1'THEN
DOUTM<=AIN30M(7DOWNTO0);DOUTB<=AIN30B(7DOWNTO0);
ELSIFEN04B='1'THEN
DOUTM<=AIN04(7DOWNTO0);DOUTB<=AIN04(7DOWNTO0);
ENDIF;
ENDPROCESS;
ENDART;
6.主程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYMMMIS
PORT(
CLK,SM,SB:
INSTD_LOGIC;
MR,MY,MG,BR,BY,BG:
OUTSTD_LOGIC
);
ENDMMM;
ARCHITECTUREARTOFMMMIS
TYPESTATE_TYPEIS(A,B,C,D);
SIGNALSTATE:
STATE_TYPE;
BEGIN
PROCESS(CLK)
VARIABLES:
INTEGERRANGE0TO30;
VARIABLECLR,EN:
BIT;
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
IFCLR='0'THEN
S:
=0;
ELSIFEN='0'THEN
S:
=S;
ELSE
S:
=S+1;
ENDIF;
CASESTATEIS
WHENA=>MR<='0';MY<='0';MG<='1';
BR<='1';BY<='0';BG<='0';
IF(SBANDSM)='1'THEN
IFS=30THEN
STATE<=B;CLR:
='0';EN:
='0';
ELSE
STATE<=A;CLR:
='1';EN:
='1';
ENDIF;
ELSIF(SBAND(NOTSM))='1'THEN
STATE<=B;CLR:
='0';EN:
='0';
ELSE
STATE<=A;CLR:
='1';EN:
='1';
ENDIF;
WHENB=>MR<='0';MY<='1';MG<='0';
BR<='1';BY<='0';BG<='0';
IFS=4THEN
STATE<=C;CLR:
='0';EN:
='0';
ELSE
STATE<=B;CLR:
='1';EN:
='1';
ENDIF;
WHENC=>MR<='1';MY<='0';MG<='0';
BR<='0';BY<='0';BG<='1';
IF(SMANDSB)='1'THEN
IFS=30THEN
STATE<=D;CLR:
='0';EN:
='0';
ELSE
STATE<=C;CLR:
='1';EN:
='1';
ENDIF;
ELSIFSB='0'THEN
STATE<=D;CLR:
='0';EN:
='0';
ELSE
STATE<=C;CLR:
='1';EN:
='1';
ENDIF;
WHEND=>MR<='1';MY<='0';MG<='0';
BR<='0';BY<='1';BG<='0';
IFS=4THEN
STATE<=A;CLR:
='0';EN:
='0';
ELSE
STATE<=D;CLR:
='1';EN:
='1';
ENDIF;
ENDCASE;
ENDIF;
ENDPROCESS;
ENDART;
电子工程系EDA技术与实践课程设计成绩评定表
专业:
应用电子技术班级:
12211学号:
姓名:
张泽明
课题名称
交通灯信号控制器接口设计
设计任务与要求
总体设计要求:
通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。
技术要点:
1.主干道和支干道自动循环。
主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,持续时间都为4s。
2. 手动设置主干道和支道每次通行的时间分别为为30s、40s、50s;
指导教师评语
建议成绩:
指导教师:
课程小组评定
评定成绩:
课程负责人:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 交通灯