步行街道自助式交通灯控制器的设计.docx
《步行街道自助式交通灯控制器的设计.docx》由会员分享,可在线阅读,更多相关《步行街道自助式交通灯控制器的设计.docx(15页珍藏版)》请在冰豆网上搜索。
步行街道自助式交通灯控制器的设计
物理与电子信息学院
课程设计报告书
**:
班级:
电子科学与技术
**:
时间:
2021年12月14日
.一:
论文题目
步行街道自助式交通灯控制器的设计
.二:
课程论文要求
1.正常情况下保证主干道的畅通。
2.当步行街道上的行人要穿过主干道时,通过设置的按钮来发出请求。
3.当有人按下此按钮时,主干道变为黄灯,设置计数器时间为*秒。
4.*秒过后,主干道变为红灯,计数器继续计时〔计时时间为Y秒〕,在Y秒内假设有人再次按按钮,计数器不重新计时。
5.步行街绿灯闪烁时间为Y1秒,〔Y-Y1〕秒后主干道变为绿灯,车辆通行。
且咬保证车辆通行一定时间〔Z秒〕。
在此时间内,行人按按钮无效。
Z秒过后,假设有人再按下按钮,又出现〔3〕中的状态。
6.计数器的计时时间长短*~Y~Z可以任意设定。
.三:
设计方案
1.系统设计方案
根据系统设计要求有两种实现方法,一种是采用EDA的实验软件来实现系统要求;另一种采用根本门电路和各种触发器电路元件来实现。
方案一:
EDA设计方法〔软件:
ma*_plus10.0〕
根据系统设计要求,系统设计采用自顶而下的设计方法,顶层设计采用原理图设计方法,系统的整体设计原理图如图〔1〕所示,它右去抖模块~设置计数模块和交通灯控制三局部组成。
(1)去抖模块
去抖模块的作用在于消除按键的抖动,因为当输入信号在上下电平之间转换时,在转换的瞬间会产生毛刺,使信号波形不稳定,从而使系统不能正常工作,因此要参加去抖模块。
(2)设置计数模块
设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。
主干道方向需要设置的时间包括主干道黄灯信号时间,红灯信号时间和主干道车辆允许通行的最短时间,步行街道方向需要设置的时间为步行街道的闪烁时间。
(3)交通灯控制模块
(4)交通灯模块通过采用状态机来实现,用于存储交通灯的五种状态。
五种状态的集体说明如下表。
状态
主干道信号灯
步行街信号灯
主干道
步行街道
R红
G绿
Y黄
R红
G绿
S0
0
1
0
1
0
通行
禁行
S1
0
0
1
1
0
车停靠
禁行
S2
1
0
0
0
1
禁行
通行
S3
1
0
0
0
禁行
通行〔绿灯闪烁
S4
0
1
0
1
0
通行
禁行
方案二:
用硬件来实现本系统要求的功能
其根本组成局部和方案一一样,但不同的是用硬件来实现三个模块的逻辑功能。
对于去抖模块,可采用下列图所示的防抖动输出电路来解决。
课本P2164.4题
对于计数模块,设置计数模块的是设置并存储主干道方向和步行街道方向的时间长短。
所以需要两个可以计数并存储的计数器来实现,
综上所述,两个方案各有各的优点,但根据时代的开展要求,选择方案一是首选!
因为方案二要焊接的电路板太多,对于有实际用处的逻辑电路一般是进展设计·仿真后有功能实现就大批量生产,如果采用电路板焊接来实现,会增加工作时间,并且不一定能买到适宜的元件来满足设计要求,而方案一采用EDA技术来实现实验功能,在出现问题后容易进展解决并进展修正。
所以本实验采用方案二进展设计。
.四:
设计过程
1:
根据系统设计方案二编写各模块的元程序如下:
(1)去抖模块的VHDL源程序〔dither.vhd〕
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYDITHERIS
PORT(UPIN:
INSTD_LOGIC;--按键弹起
DOWNIN:
INSTD_LOGIC;--按键压下
KEYOUT:
OUTSTD_LOGIC);--按键输出信号
ENDDITHER;
ARCHITECTUREBEHAVEOFDITHERIS
SIGNALOUT1:
STD_LOGIC;
SIGNALOUT2:
STD_LOGIC;
BEGIN
OUT1<=NOT(OUT2ANDUPIN);
OUT2<=NOT(OUT1ANDDOWNIN);
KEYOUT<=OUT1;
ENDBEHAVE;
产生图形如下
〔2〕:
设置计数模块的VHDL源程序如下〔count.vhd〕
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYCOUNTIS
PORT(CLK:
INSTD_LOGIC;
CLEAR:
INSTD_LOGIC;
CLKADD:
INSTD_LOGIC;
CLKSUB:
INSTD_LOGIC;
PRE_SET:
INSTD_LOGIC;
HUMAN_SET:
INSTD_LOGIC;
RST:
INSTD_LOGIC;
GHUMAN_TIME:
OUTINTEGERRANGE31DOWNTO0;
GHUMAN_CLKT:
OUTINTEGERRANGE31DOWNTO0;
GVEHICLE_TIME:
OUTINTEGERRANGE31DOWNTO0);
ENDCOUNT;
ARCHITECTUREBEHAVEOFCOUNTIS
SIGNALHUMAN_TIME:
INTEGERRANGE31DOWNTO0;
SIGNALVEHICLE_TIME:
INTEGERRANGE31DOWNTO0;
SIGNALSSTATE:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALSCLK:
STD_LOGIC;
SIGNALDSCLK:
STD_LOGIC;
BEGIN
SSTATE<="000"WHENPRE_SET='0'ELSE
HUMAN_SET&CLEAR&CLKADD&CLKSUB;
SCLK<=CLKADDORCLKSUBORCLEAR;
PROCESS(CLK)
BEGIN
IF(CLK'EVENTANDCLK='1')THEN
DSCLK<=SCLK;
ENDIF;
ENDPROCESS;
PROCESS(RST,CLEAR,DSCLK)
BEGIN
IF(RST='1')THEN
VEHICLE_TIME<=8;
ELSIF(DSCLK'EVENTANDDSCLK='1')THEN
CASESSTATEIS
WHEN"0100"=>VEHICLE_TIME<=0;
WHEN"0101"=>VEHICLE_TIME<=0;
WHEN"0110"=>VEHICLE_TIME<=0;
WHEN"0111"=>VEHICLE_TIME<=0;
WHEN"0001"=>VEHICLE_TIME<=VEHICLE_TIME-1;
WHEN"0010"=>VEHICLE_TIME<=VEHICLE_TIME+1;
WHENOTHERS=>VEHICLE_TIME<=VEHICLE_TIME;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(CLEAR,DSCLK)
BEGIN
IF(RST='1')THEN
HUMAN_TIME<=4;
ELSIF(DSCLK'EVENTANDDSCLK='1')THEN
CASESSTATEIS
WHEN"1100"=>HUMAN_TIME<=0;
WHEN"1101"=>HUMAN_TIME<=0;
WHEN"1110"=>HUMAN_TIME<=0;
WHEN"1111"=>HUMAN_TIME<=0;
WHEN"1001"=>HUMAN_TIME<=HUMAN_TIME-1;
WHEN"1010"=>HUMAN_TIME<=HUMAN_TIME+1;
WHENOTHERS=>HUMAN_TIME<=HUMAN_TIME;
ENDCASE;
ENDIF;
ENDPROCESS;
PROCESS(PRE_SET,RST)
BEGIN
IF(RST='1')THEN
GHUMAN_TIME<=5;
GHUMAN_CLKT<=7;
GVEHICLE_TIME<=15;
ELSIF(PRE_SET'EVENTANDPRE_SET='0')THEN
GHUMAN_TIME<=HUMAN_TIME+1;
GHUMAN_CLKT<=HUMAN_TIME+3;
GVEHICLE_TIME<=HUMAN_TIME+VEHICLE_TIME+3;
ENDIF;
ENDPROCESS;
ENDBEHAVE;
产生图形如下:
〔3〕交通灯控制模块的VHDL源程序〔SR.VHD〕
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYLIGHTIS
PORT(SRED:
OUTSTD_LOGIC;
ERED:
OUTSTD_LOGIC;
SGREEN:
OUTSTD_LOGIC;
EYELLOW:
OUTSTD_LOGIC;
EGREEN:
OUTSTD_LOGIC;
GT_SET:
INSTD_LOGIC;
GHUMAN_TIME:
ININTEGERRANGE31DOWNTO0;
GHUMAN_CLKT:
ININTEGERRANGE31DOWNTO0;
GVEHICLE_TIME:
ININTEGERRANGE31DOWNTO0;
REQUEST:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
RST:
INSTD_LOGIC);
ENDLIGHT;
ARCHITECTUREBEHAVEOFLIGHTIS
TYPEIN_STATESIS(ST0,ST1,ST2,ST3,ST4);
SIGNALCURRENT_STATE:
IN_STATES;
SIGNALNE*T_STATE:
IN_STATES;
SIGNALSTART:
STD_LOGIC;
SIGNALSIG:
INTEGERRANGE31DOWNTO0;
BEGIN
PROCESS(CURRENT_STATE,RST)
BEGIN
IF(RST='1'ORCURRENT_STATE=ST0)THEN
START<='0';
ELSE
START<='1';
ENDIF;
ENDPROCESS;
A:
PROCESS(START,CLK)
BEGIN
IF(RST='1')THEN
SIG<=0;
ELSIF(CLK'EVENTANDCLK='1')THEN
IF(START='1')THEN
IF(SIG=GVEHICLE_TIME)THEN
SIG<=0;
ELSE
SIG<=SIG+1;
ENDIF;
ELSE
SIG<=0;
ENDIF;
ENDIF;
ENDPROCESSA;
PROCESS(RST,CLK)
BEGIN
IF(RST='1')THEN
CURRENT_STATE<=ST0;
ELSIF(CLK'EVENTANDCLK='1')THEN
CURRENT_STATE<=NE*T_STATE;
ENDIF;
ENDPROCESS;
PROCESS(CLK,CURRENT_STATE)
BEGIN
CASECURRENT_STATEIS
WHENST0=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';
IF(REQUEST='1'ANDGT_SET='0')THEN
NE*T_STATE<=ST1;
ELSE
NE*T_STATE<=ST0;
ENDIF;
WHENST1=>ERED<='0';EGREEN<='0';EYELLOW<='1';SRED<='1';SGREEN<='0';
IF(SIG=1)THEN
NE*T_STATE<=ST2;
ELSE
NE*T_STATE<=ST1;
ENDIF;
WHENST2=>ERED<='1';EGREEN<='0';EYELLOW<='0';SRED<='0';SGREEN<='1';
IF(SIG=GHUMAN_TIME)THEN
NE*T_STATE<=ST3;
ELSE
NE*T_STATE<=ST2;
ENDIF;
WHENST3=>ERED<='1';EGREEN<='0';EYELLOW<='0';SRED<='0';SGREEN<=NOTCLK;
IF(SIG=GHUMAN_CLKT)THEN
NE*T_STATE<=ST4;
ELSE
NE*T_STATE<=ST3;
ENDIF;
WHENST4=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';
IF(SIG=GHUMAN_CLKT)THEN
NE*T_STATE<=ST0;
ELSE
NE*T_STATE<=ST4;
ENDIF;
WHENOTHERS=>ERED<='0';EGREEN<='1';EYELLOW<='0';SRED<='1';SGREEN<='0';NE*T_STATE<=ST3;
ENDCASE;
ENDPROCESS;
ENDBEHAVE;
产生图形如下:
2:
实验仿真
(1)zongtu.scf
.五:
实验现象
〔1〕:
在实验室中进展仿真和连线后,可得到5个LED发光二极管来表示的简单交通灯模型,5个灯中由三个〔红,黄,绿〕来代表主干道上的车辆通行指示灯,而另外的两个红灯和绿灯用来指示人行道上的行人。
.六:
实验心得与体会
通过这次课程设计,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教教师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
而且,这对于我们的将来也有很大的帮助。
以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰辛奋斗一样,我们都可以在实验完毕之后变的更加成熟,会面对需要面对的事情。
与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。
而团队合作也是当今社会最提倡的。
曾经听过,MBA之所以最近不受欢送就是因为欠缺团队合作的精神和技巧。
留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!
相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
我们的激情永远不会完毕,相反,我们会更加努力,努力的去弥补自己的缺点,开展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!
.
七:
参考文献
"科教,娱乐应用电路"全新实用电路集萃丛书编辑委员会编著机械工业
"常用电子电路应用365例"何希才编著电子工业
"EDA技术实验与课程设计"周凤臣,聂春燕编著清华大学
"数字电子技术根底"第四版阎石主编高等教育
"电子技术根底实验与课程设计"章忠全主编中国电力
"电子技术根底"华中理工大学电子教研室编康华光主编高等教育
"电子技术根底实验"**交通大学电子学教研室编第二版高等教育
.赣南师范学院2021—2021学年第_一_学期课程论文
课程论文题目:
步行街道自助式交通灯控制器的设计
设计要求:
1.正常情况下保证主干道的畅通。
2.当步行街道上的行人要穿过主干道时,通过设置的按钮来发出请求。
3.当有人按下此按钮时,主干道变为黄灯,设置计数器时间为*秒。
4.*秒过后,主干道变为红灯,计数器继续计时〔计时时间为Y秒〕,在Y秒内假设有人再次按按钮,计数器不重新计时。
5.步行街绿灯闪烁时间为Y1秒,〔Y-Y1〕秒后主干道变为绿灯,车辆通行。
且咬保证车辆通行一定时间〔Z秒〕。
在此时间内,行人按按钮无效。
Z秒过后,假设有人再按下按钮,又出现〔3〕中的状态。
计数器的计时时间长短*~Y~Z可以任意设定。
教师评语:
教师签字:
年月日