数电课设交通灯课设.docx

上传人:b****6 文档编号:3608820 上传时间:2022-11-24 格式:DOCX 页数:20 大小:712.08KB
下载 相关 举报
数电课设交通灯课设.docx_第1页
第1页 / 共20页
数电课设交通灯课设.docx_第2页
第2页 / 共20页
数电课设交通灯课设.docx_第3页
第3页 / 共20页
数电课设交通灯课设.docx_第4页
第4页 / 共20页
数电课设交通灯课设.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

数电课设交通灯课设.docx

《数电课设交通灯课设.docx》由会员分享,可在线阅读,更多相关《数电课设交通灯课设.docx(20页珍藏版)》请在冰豆网上搜索。

数电课设交通灯课设.docx

数电课设交通灯课设

课程设计

 

交通灯控制电路的设计

 

班级/学号

学生姓名

指导教师

一.概述

设计一交通灯控制电路,该电路由电源、时钟信号、计数电路、逻辑判断电路和控制执行电路组成,其原理框图如图1所示。

技术指标:

1.电源输出电压为:

+5V。

2.可以控制东南西北四个方向,每个方向控制时间为60S。

3.用红、黄、绿三种颜色分别表示停、注意和通行其中红——黄——绿时间间隔为2S。

4.该控制电路具有自动和手动控制两种方式,满足特殊情况下交通管理。

二.方案论证

设计一个交通灯控制电路,能控制东西和南北两条干道的交通灯。

功能包括:

1.控制电路2.计数电路3.分位电路4.倒计时输出电路。

交通灯亮灭时间关系如图2所示。

 

交通灯控制器原理如图3所示

时间值

Hold=0

Hold

Reset

时间倒计时

Hold=1

Clock

 

图3交通灯控制器原理图

三、电路设计

1.计数器

针对此问题,计数器的计数范围为0-59。

分为0-28,29-30,31-59三部分,每来一个秒脉冲,使计数器加1,直到计数器计到59后,当遇到下一个时钟上升沿时回复到0,开始下一轮计数。

此外,当检测到特殊情况时,需要进行手动控制使Hold=‘1’,此时计数器暂停计数。

当系统出现故障或者想重新开始计数时按下系统复位信号RESET可使计数器异步清零。

计数器逻辑电路图如图4所示

 

图4计数器逻辑电路图

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYjishuIS

PORT(clock:

INSTD_LOGIC;

reset:

instd_logic;

Hold:

instd_logic;

countNum:

BuFFeRINTEGERRANGE0TO59);

END;

ARCHITECTUREbehaviorOFjishuIS

BEGIN

process(reset,Clock)

BEGIN

IFReset='1'THEN

countNum<=0;

ELSIFrising_edge(Clock)THEN

IFHold='1'then

countNum<=countNum;

ELSE

IFcountNum=59THEN

countNum<=0;

ELSE

countNum<=countNum+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

END;

2.控制器

正常情况下,控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,达到对东西和南北两条干道的交通控制。

同时,将时间数值给传给分位译码电路。

当遇到紧急情况时,需要手动将Hold置成‘1’,此时控制东西和南北的两条干道均点亮红灯二极管。

控制器逻辑电路图如图5所示

 

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYkongzhiIS

PORT(Clock:

INSTD_LOGIC;

Hold:

instd_logic;

CountNum:

inINTEGERRANGE0TO59;

Num:

outINTEGERRANGE0TO29;

RedA,GreenA,YellowA:

outstd_logic;

RedB,GreenB,YellowB:

outstd_logic);

END;

ARCHITECTUREbehaviorOFkongzhiIS

BEGIN

process(Clock)

BEGIN

IFRISING_edge(Clock)THEN

IFHold='1'THEN

RedA<='1';

RedB<='1';

GreenA<='0';

GreenB<='0';

YellowA<='0';

YellowB<='0';

ELSIFCountNum<=28THEN

Num<=28-CountNum;

RedA<='0';

GreenA<='1';

YellowA<='0';

RedB<='1';

GreenB<='0';

YellowB<='0';

ELSIFCountNum<=30THEN

Num<=30-CountNum;

RedA<='0';

GreenA<='0';

YellowA<='1';

RedB<='0';

GreenB<='0';

YellowB<='1';

ELSE

Num<=59-CountNum;

RedB<='0';

GreenB<='1';

YellowB<='0';

RedA<='1';

GreenA<='0';

YellowA<='0';

ENDIF;

ENDIF;

ENDPROCESS;

END;

3.分位译码器

控制器输出的倒计时数值可能是1位或者2位十进制数,而一个七段数码管只能显示一位十进制的数,因此为了能够显示出每一种颜色灯的剩余时间,需要在七段数码管的译码电路前加上分位电路。

分位译码器如图6所示

 

图6分为译码器逻辑电路图

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYFenwIS

PORT

(Numin:

INintegerRANGE0TO29;

NumA,NumB:

OUTIntegerRANGE0to9

);

END;

ARCHITECTUREbehaviorOFFenwIS

BEGIN

process(Numin)

BEGIN

IFNumin>=20THEN

NumA<=2;

NumB<=Numin-20;

ELSIFNumin>=10THEN

NumA<=1;

NumB<=Numin-10;

ELSE

NumA<=0;

NumB<=Numin;

ENDIF;

ENDPROCESS;

END;

4.数码管

针对此问题,需要两个七段数码管。

将两个数码管对应的引脚分别接在分位器的两个输出引脚上,分别显示灯亮剩余时间的十位数和个位数。

当遇到紧急情况时,控制器和计数器的Hold=‘1’,此时无论剩余时间有多少,两个七段数码管显示的数值都为‘0’。

数码管逻辑电路图如图7所示

 

图7数码管逻辑电路图如图

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;

 

四.程序流程图

1.计数器

计数器程序流程图如图8所示

2.控制器

控制器程序流程图如图9所示

3.分位器

分位器程序流程图如图10所示

 

4.数码管

数码管程序流程图如图11所示

 

 

五、结论

通过设计,当东西干道依次为红灯(29秒),黄灯(2秒),绿灯(29秒)时,南北干道依次为绿灯(29秒),黄灯(2秒),红灯(29秒)。

当出现紧急情况时,将Hold置成‘1’。

此时东西和南北两干道都亮红灯。

当Reset置成‘1’时,交通灯将重新计时。

可以达到控制东西南北干道的功能。

六、课设体会及合理化建议

通过这次交通灯控制器课程设计,我不仅加深了对交通灯理论的理解,将理论很好地应用到解决实际问题中去。

在这次设计中培养了我自学的能力,因为对数电和模电只接触了半年,所以对一些原理和知识还不太了解,只能自己通过上图书馆,网络寻找答案,这对我今后的学习与发展有很大的帮助。

平时,在做数电实验时接触过maxplusII的软件,但只是一个个简单的程序,而在做这个课程设计时,需要将这些程序加以改动并拼凑在一起,这就需要我对平时的知识活学活用,而不是照搬,这对我创新能力的提高也有很大的帮助。

课程设计程序调试很重要,在编完各模块程序之后,首先要检查程序语句是否有错误。

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

若与题目要求的有出入,再查看程序,在运算逻辑上进行改进。

通过这次课程设计,我发现了自己的不足之处,对以前学的知识掌握的不够牢固,理解的不够深刻,需要经常翻书。

最终,在老师和同学的帮助下,不断的修改程序,终于达到了课程设计的要求。

虽然,我顺利的完成了这次课设,但我认为我设计的交通灯控制器的功能仍有待完善和改进,例如当遇到紧急情况时,可以任意控制东西和南北两条干道交通灯的颜色而不是只能是红灯,当黄灯亮时,可以闪烁以提醒司机注意等等。

以后,我会对这个程序加以改进。

 

参考文献

1.童诗白、华成英主编者.模拟电子技术基础.[M]北京:

高等教育出版社,2008年

2.谭博学主编.集成电路原理与应用.[M]北京:

电子工业出版社,2006年

3.谢自美主编.电子线路设计、实验、测试.[M]武昌:

华中科技大学出版社,1992年

4.戴伏生主编.基础电子电路设计与实践,[M]北京:

国防工业出版社,2007年

5.张庆双主编.全新实用电路集粹上、下册,[M]北京:

机械工业出版社,2008年

 

附录I总逻辑电路图

总逻辑电路图如图12所示

图12总逻辑电路图

附录II波形仿真图

1.Hold=‘0’Reset=‘0’时的波形如图13(a)(b)(c)(d)(e)(f)所示

图13(a)

图13(b)

图13(c)

图13(d)

图13(e)

图13(f)

 

2.Hold=‘1’Reset=‘0’时的波形如图14(a)(b)(c)(d)所示

图14(a)

图14(b)

图14(c)

图14(d)

3.Hold=‘0’Reset=‘1’时的波形如图15(a)(b)(c)(d)所示

图15(a)

图15(b)

图15(c)

图15(d)

图15(e)

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

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1