交通灯控制器设计EDA课程设计.docx

上传人:b****2 文档编号:18611439 上传时间:2023-08-20 格式:DOCX 页数:19 大小:353.87KB
下载 相关 举报
交通灯控制器设计EDA课程设计.docx_第1页
第1页 / 共19页
交通灯控制器设计EDA课程设计.docx_第2页
第2页 / 共19页
交通灯控制器设计EDA课程设计.docx_第3页
第3页 / 共19页
交通灯控制器设计EDA课程设计.docx_第4页
第4页 / 共19页
交通灯控制器设计EDA课程设计.docx_第5页
第5页 / 共19页
交通灯控制器设计EDA课程设计.docx_第6页
第6页 / 共19页
交通灯控制器设计EDA课程设计.docx_第7页
第7页 / 共19页
交通灯控制器设计EDA课程设计.docx_第8页
第8页 / 共19页
交通灯控制器设计EDA课程设计.docx_第9页
第9页 / 共19页
交通灯控制器设计EDA课程设计.docx_第10页
第10页 / 共19页
交通灯控制器设计EDA课程设计.docx_第11页
第11页 / 共19页
交通灯控制器设计EDA课程设计.docx_第12页
第12页 / 共19页
交通灯控制器设计EDA课程设计.docx_第13页
第13页 / 共19页
交通灯控制器设计EDA课程设计.docx_第14页
第14页 / 共19页
交通灯控制器设计EDA课程设计.docx_第15页
第15页 / 共19页
交通灯控制器设计EDA课程设计.docx_第16页
第16页 / 共19页
交通灯控制器设计EDA课程设计.docx_第17页
第17页 / 共19页
交通灯控制器设计EDA课程设计.docx_第18页
第18页 / 共19页
交通灯控制器设计EDA课程设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

交通灯控制器设计EDA课程设计.docx

《交通灯控制器设计EDA课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯控制器设计EDA课程设计.docx(19页珍藏版)》请在冰点文库上搜索。

交通灯控制器设计EDA课程设计.docx

交通灯控制器设计EDA课程设计

 

东北石油大学

课程设计

课程EDA技术课程设计

题目交通灯控制器

院系电子科学学院

专业班级电子信息工程

学生姓名

学生学号

指导教师

 

 

2011年3月11日

东北石油大学课程设计任务书

课程EDA技术课程设计

题目交通灯控制器

专业电子信息工程姓名学号

主要内容、基本要求、主要参考资料等

主要内容:

设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

基本要求:

1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。

2、主干道处于常允许通行的状态,支干道有车来时才允许通行。

主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。

4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。

主要参考资料:

[1]潘松著.EDA技术实用教程(第二版).北京:

科学出版社,2005.

[2]康华光主编.电子技术基础模拟部分.北京:

高教出版社,2006.

[3]阎石主编.数字电子技术基础.北京:

高教出版社,2003.

完成期限2011.3.11

指导教师

专业负责人

2011年3月7日

一、总体设计思想

1.基本原理

该系统主要由计数模块、控制模块、分频模块、分位模块以及显示电路构成。

其中分频模块主要将系统输入的基准时钟信号转换是1Hz的激励信号。

驱动计数模块和控制模块工作,控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制,并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来。

2.设计框图

1kHZ

1kHZ1HZ

支干道车辆检测

1kHZ数码管及LED信号

 

 

二、设计步骤和调试过程

1、总体设计电路

2、模块设计和相应模块程序

《1》模块设计

(1)分频器

分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。

该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。

(2)控制器设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。

本控制器可以有两种设计方法,一种是利用时钟沿的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。

(3)计数器设计

这里需要的计数器的计数范围为0-45。

计到45后,下一个时钟沿回复到0,开始下一轮计数。

(4)分位译码电路设计-1

因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路。

与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。

控制器中,引入了寄存器。

为了让读者开拓眼界,分位电路就用组合逻辑电路实现。

(5)分位译码电路设计—2

(6)数码管驱动设计

串行连接,即每个数码管对应的引脚都接在一起,通过控制公共端为高电平控制相应数码管的亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。

(7)下图为交通灯控制器的顶层文件连接图

《2》相应模块程序

(1)分频器的设计

LIBRARYIEEE;

USEIEEE.Std_Logic_1164.ALL;

ENTITYFreDeviderIS

PORT

(Clkin:

INStd_Logic;

Clkout:

OUTStd_Logic);

END;

ARCHITECTUREDeviderOFFreDeviderIS

CONSTANTN:

Integer:

=499;

signalcounter:

Integerrange0toN;

signalClk:

Std_Logic;

BEGIN

PROCESS(Clkin)

begin

IFrising_edge(Clkin)THEN

IFCounter=Nthen

counter<=0;

Clk<=notclk;

else

counter<=counter+1;

endif;

endif;

endprocess;

clkout<=clk;

end;

(2)控制设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYcountrollerIS

PORT(Clock:

INSTD_LOGIC;

Hold:

instd_logic;

CountNum:

inINTEGERRANGE0TO89;

NumA,NumB:

outINTEGERRANGE0TO45;

RedA,GreenA,YellowA:

outstd_logic;

RedB,GreenB,YellowB:

outstd_logic);

END;

ARCHITECTUREbehaviorOFCountrollerIS

BEGIN

process(Clock)

BEGIN

IFfalling_edge(Clock)THEN

IFHold='1'THEN

RedA<='1';

RedB<='1';

GreenA<='0';

GreenA<='0';

YellowA<='0';

YellowB<='0';

ELSIFCountNum<=39THEN

NumA<=40-CountNum;

RedA<='0';

GreenA<='1';

YellowA<='0';

ELSIFCountNum<=44THEN

NumA<=45-CountNum;

RedA<='0';

GreenA<='0';

YellowA<='1';

ELSE

NumA<=90-CountNum;

RedA<='1';

GreenA<='0';

YellowA<='0';

ENDIF;

IFCountNum<=44THEN

NumB<=45-CountNum;

RedB<='1';

GreenB<='0';

YellowB<='0';

ELSIFCountNum<=84THEN

NumB<=85-CountNum;

RedB<='0';

GreenB<='1';

YellowB<='0';

ELSe

NumB<=90-CountNum;

RedB<='0';

GreenB<='0';

YellowB<='1';

ENDIF;

ENDIF;

ENDPROCESS;

END;

(3)计数器的设计

这里计数器的计数范围为0—45S。

计到45后,下一个时钟沿回复到0,开始下一轮计数。

程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYcounterIS

PORT(clock:

INSTD_LOGIC;

reset:

instd_logic;

Hold:

instd_logic;

countNum:

BuFFeRINTEGERRANGE0TO90);

END;

ARCHITECTUREbehaviorOFcounterIS

BEGIN

process(reset,Clock)

BEGIN

IFReset='1'THEN

countNum<=0;

ELSIFrising_edge(Clock)THEN

IFHold='1'then

countNum<=countNum;

ELSE

IFcountNum=90THEN

countNum<=0;

ELSE

countNum<=countNum+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

END;

(4)分位译码电路设计--1

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFenweiIS

PORT

(Numin:

INintegerRANGE0TO45;

NumA,NumB:

OUTIntegerRANGE0to9

);

END;

ARCHITECTUREbehaviorOFFenweiIS

BEGIN

process(Numin)

BEGIN

IFNumin>=40THEN

NumA<=4;

NumB<=Numin-40;

ELSIFNumin>=30THEN

NumA<=3;

NumB<=Numin-30;

ELSIFNumin>=20THEN

NumA<=2;

NumB<=Numin-20;

ELSIFNumin>=10THEN

NumA<=1;

NumB<=Numin-10;

ELSE

NumA<=0;

NumB<=Numin;

ENDIF;

ENDPROCESS;

END;

(5)分位译码电路设计—2

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFenwei2IS

PORT

(Numin:

INintegerRANGE0TO45;

NumC,NumD:

OUTIntegerRANGE0to9

);

END;

ARCHITECTUREbehaviorOFFenwei2IS

BEGIN

process(Numin)

BEGIN

IFNumin>=40THEN

NumC<=4;

NumD<=Numin-40;

ELSIFNumin>=30THEN

NumC<=3;

NumD<=Numin-30;

ELSIFNumin>=20THEN

NumC<=2;

NumD<=Numin-20;

ELSIFNumin>=10THEN

NumC<=1;

NumD<=Numin-10;

ELSE

NumC<=0;

NumD<=Numin;

ENDIF;

ENDPROCESS;

END;

(6)数码管驱动设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYbcd_dataIS

PORT

(bcd_data:

inSTD_LOGIC_VECTOR(3downto0);

segout:

outSTD_LOGIC_VECTOR(6downto0)

);

END;

ARCHITECTUREbehaviorOFbcd_dataIS

BEGIN

process(bcd_data)

BEGIN

casebcd_datais

when"0000"=>segout<="1111110";

when"0001"=>segout<="0110000";

when"0010"=>segout<="1101101";

when"0011"=>segout<="1111001";

when"0100"=>segout<="0110011";

when"0101"=>segout<="1011011";

when"0110"=>segout<="0011111";

when"0111"=>segout<="1110000";

when"1000"=>segout<="1111111";

when"1001"=>segout<="1110011";

whenothers=>null;

ENDCASE;

ENDPROCESS;

END;

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_unsigned.ALL;

ENTITYdtsmIS

PORT(clk:

inSTD_LOGIC;

NumA,NumB,NumC,NumD:

inSTD_LOGIC_VECTOR(3downto0);

segout1:

outSTD_LOGIC_VECTOR(6downto0);

led_sel:

outSTD_LOGIC_VECTOR(3downto0));

ENDdtsm;

architecturebhvofdtsmis

componentbcd_datais

port(bcd_data:

inSTD_LOGIC_VECTOR(3downto0);

segout:

outSTD_LOGIC_VECTOR(6downto0));

endcomponent;

signalx:

STD_LOGIC_VECTOR(3downto0);

signalq:

STD_LOGIC_VECTOR(1downto0);

begin

p1:

process(clk)

begin

ifclk'eventandclk='1'then

Q<=Q+'1';

endif;

endprocess;

p2:

process(Q)

begin

caseQis

when"00"=>led_sel<="1110";x<=NumD;

when"01"=>led_sel<="1101";x<=NumC;

when"10"=>led_sel<="1011";x<=NumB;

when"11"=>led_sel<="0111";x<=NumA;

whenothers=>null;

endcase;

endprocess;

u1:

bcd_dataPORTmap(bcd_data=>x,segout=>segout1);

end;

3、仿真及仿真结果分析

交通灯控制单元电路分析及仿真

此单元电路主要完成控制交通灯的功能,即根据主,支干道传感信号sm,sb以及来自时基发生电路的时钟信号clk,发出主,支干道指示灯的控制信号,同时向各定时单元,显示控制单元发出使能控制信号en1,en2,en3,en4。

支干道无车通行时,主干道一直亮绿灯,当sb感应到支干道来车时,主干道亮45s绿灯之后,亮5s黄灯,开始亮红灯,而支干道随之由之前的红灯变为绿灯亮25s,之后亮5s黄灯,最后变为红灯,如此交替进行下去。

4、实验调试结果

仿真后可以得到最终的结果:

开始时,支干道没有车辆行驶。

主干道处于常通行状态,支干道处于禁止状态;当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行25秒倒计时;

主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继续亮红灯,进行倒计时;

主干道5秒倒计时结束后跳变到红灯,经行45秒倒计时,支干道跳变到绿灯,进行25秒倒计时;

支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时;

支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态

验证了设计完成了预定功能。

三、结论及心得体会

EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次。

我在编完各模块程序之后,编译查错最初有三十几个错误,有输入错误、语法错误。

一遍一遍的变异查错,直到没有错误。

必须注意工程名和实体名一致,不然一般会出错。

在没有错误之后可以进行波型仿真。

若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。

都通过可以进行管脚配对,把程序烧入芯片,在实物机上看结果,从显示中得出还需改正的地方,再去改程序。

必须注意没改一次都要编译,重新烧入。

 

参考资料

[1]潘松著.EDA技术实用教程(第二版).北京:

科学出版社,2005.

[2]康华光主编.电子技术基础模拟部分.北京:

高教出版社,2006.

[3]阎石主编.数字电子技术基础.北京:

高教出版社,2003.

[4]尹常永,孙延鹏,王存旭.EDA技术与数字系统设计[M].西安:

西安电子科技大学出版社,2004.

[5]刘艳萍,高振斌,李志军.EDA实用技术及应用[M].北京:

国防工业出版社,2006

东北石油大学课程设计成绩评价表

课程名称

EDA技术课程设计

题目名称

交通灯控制器

学生姓名

学号

指导教师姓名

职称

序号

评价项目

指标

满分

评分

1

工作量、工作态度和出勤率

按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。

20

2

课程设计质量

课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。

45

3

创新

工作中有创新意识,对前人工作有一些改进或有一定应用价值。

5

4

答辩

能正确回答指导教师所提出的问题。

30

总分

评语:

 

指导教师:

2011年3月11日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2