一、概述。
交通信号灯控制电路是显示主干道和支干道交替放行时间并用试验箱左上角的彩灯来代替信号灯的一种实际电路。
本课程的基本原理是在合适的时钟信号的控制下,使主干道与支道的红黄绿灯循环显示,用vhdl语言编辑文本程序,按设计要求连接好线以后,进行波形**,**结果正确后**程序并对试验箱进行调试,使其最终的显示结果符合设计要求。
二、方案设计与论证。
在硬件时钟电路的基础上,采用分频器,输出一个1s的时钟信号,在时钟信号的控制下,实现主干道和支干道红绿灯交替显示。
1、 开关控制部分的asm图。
i、j、k、分别代表开关状态;1表示开关闭合,为高电平;0表示开关断开为低电平。当开关处于不同的状态时,分别给变量g不同的值,用来实现控制通行时间。
2、 信号灯转换控制部分的asm图。
rm、ym、gm分别表示主干道红、黄、绿;rf、yf、gf分别表示支道红、黄、绿;
s表示灯亮的时间;nclr是计时器的清零端,低电平有清零;en是计时器的使能端,高电平使能。
3、程序。1、 分频器的设计
library ieee;
use use
use entity fenpingqi is
port (clr,clk:in std_logic ;
q:buffer std_logic);
end fenpingqi;
architecture one of fenpingqi is
signal counter:integer range 0 to 4999999;
beginprocess (clr,clk)
beginif(clk='1' and clk'event) then
if clr='1' then
counter<=0;
elsif counter =4999999 then
counter<=0;
q<=not q;
else counter<=counter+1;
end if;
end if;
end process;
end one;
2、 交通灯控制器的设计。
library ieee;
use use
use entity keshe is
port (clk,i,j,k:in std_logic;
rm,ym,gm,rf,yf,gf:out std_logic);
end keshe ;
architecture arc of keshe is
type state_type is (a,b,c,d);
signal state:state_type;
signal x:std_logic_vector(2 downto 0);
beginx<=i&j&k;
cnt:process (clk)
variable s:integer range 0 to 49;
variable g:integer range 0 to 49;
variable nclr,en:bit;
beginif x<="001"then g:=29;
elsif x<="010"then g:=39;
elsif x<="100"then g:=49;
else g:=0;
end if;
if (clk'event and clk='1') then
if nclr='0' then s:=0
elsif en='0' then s:=s;
else s:=s+1
end if;
case state is
when a=>rm<='0';ym<='0';gm<='1';
rf<='1';yf<='0';gf<='0';
if s=g then
state <=b;nclr:='0';en:='0';
elsestate<=a;nclr:='1';en:='1';
end if;
when b=>rm<='0';ym<='1';gm<='0';
rf<='1';yf<='0';gf<='0';
if s=3 then
state <=c;nclr:='0';en:='0';
elsestate<=b;nclr:='1';en:='1';
end if;
when c=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='0';gf<='1';
if s=g then
state <=d;nclr:='0';en:='0';
elsestate<=c;nclr:='1';en:='1';
end if;
when d=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='1';gf<='0';
if s=3 then
state <=a;nclr:='0';en:='0';
elsestate<=d;nclr:='1';en:='1';
end if;
end case;
end if;
end process cnt;
end arc;
4、总原理图。
1、电路连接图。
2、波形**。
**图一。**图二。
五、实验目的。
1. 熟练掌握vhdl 语言和max+ plusii 软件的使用;
2. 理解状态机的工作原理和设计方法;
3. 掌握利用eda 工具进行自顶向下的电子系统设计方法。
六、实验步骤。
1.将实验系统上rs232接口与计算机串行口相连。
2.用vhdl将两个方案的源程序输入max+ plusii 软件中。
3.编译程序并进行引脚分配,最后将程序**到器件中去。
七、结果分析。
本次课程设计基本上满足了任务的设计要求,可以通过开关手动设置主干道和支道每次通行的时间分别为为30s、40s、50s,从而控制通行时间长短的转换;各个状态之间的转化及各个状态的通行时间也可以满足“主干道和支干道自动循环。主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,持续时间都为4s”的设计要求。
但是设计也存在一定的缺陷,设计只能完成当开关i,j,k只有一个为高电平时使交通灯正常工作,,其他状态时定义g=0,这时交通灯不能正常工作。例如当x=i&j&k=’101’,时,其波形**各个状态时间通行时间长短会出现差错,如下图。
然而,这种状况在实际生活中是不允许出现的。其解决方法是:在各个when语句后增加一条if判断语句,判断如果g等于0,则保持原状态,如果g不等于0,则执行原来方案中的状态转换语句。
八、硬件要求。
主芯片epf10k10lc84-4;6个led灯(红、黄、绿各两个);四个开关。
九、心得体会。
课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。
通过本学期的这次的课程设计与几次实验,我学会了vhd语言的一些基本用法,应用了原来不会或者不熟练的句型,如case句,也学会了一些基本功能的实现方法,如分频,状态控制等。虽然这次实验遇到的问题不少,但是在老师以及同学的帮助下,我都顺利地解决了,并为将来的实践积累了宝贵的经验和教训。通过经常和老师、同学交流,以便及时发现自己在实验中的纰漏和不足,促进进步。
eda设计中程序调试最为重要,我在编完各模块程序之后,编译查错最初有很多错误,有输入错误,语法错误,通过反复的修改最终通过了编译。必须注意工程名和实体名的一致,在**无误的情况下把程序**到是芯片中,进行硬件的调试。逻辑正确和**真确并不代表着实际实验的正确,通常情况下,要适当地调整逻辑以适应硬件。
要特别注意**时出现的毛刺和偏差,到底是由于**设置不合理还是**结果确实有问题。
这次课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
实验的顺利完成,与老师的热心指导是分不开的,最后十分感谢胡辉老师的认真负责的工作,让我受益匪浅!
十、参考文献。
eda技术与实验机械工业出版社李国洪、胡辉、沈明山。
eda技术实验与课程设计》 清华大学出版社曹新燕、周凤臣、聂春燕。
eda技术综合应用实例与分析》 西安电子科技大学出版社谭会生、翟遂春。
EDA课程设计 交通灯
交通信号灯控制电路设计。1 概述。城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部分无控制交叉口都存在高峰小时车流混乱 车速缓慢 延误情况严重 事故多发 通行能力和服务水平低下等问题。特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。因此,做好基于eda...
EDA交通灯课程设计
学院 电气与信息工程学院。1.东西各设有一个绿 黄 红指示灯 一个2位7段数码管。1 南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s 2 当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。3 用两组数码管,以倒计时方式显示两...
交通灯EDA课程设计
eda交通灯设计。学院 信息工程学院。班级 学号 姓名 目录。第一章设计原理 1 第二章设计流程 2 第三章程序设计说明 3 3.1 程序设计流程图 3 3.2 分频模块 3 3.3 特殊功能及清零模块 4 3.4 交通灯运行模块 4 3.5 扫描显示模块 6 第四章 及调试 8 4.1调试步骤 8...