小丹的交通灯设计.doc_第1页
小丹的交通灯设计.doc_第2页
小丹的交通灯设计.doc_第3页
小丹的交通灯设计.doc_第4页
小丹的交通灯设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、总体设计思想1.基本原理设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。2.设计框图根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下图所示的交通信号灯控制器的系统框图。CLK时钟分频模块扫描显示译码模块交通灯控制及计时模块LED显示数码管位码数码管段码CAR1kHz1kHz1kHz支干道车辆检测数码管及LED信号 图1 系统框图系统的状态图如下所示S0:支干道没有车辆行驶,主干道绿灯,支干道红灯;S1:支干道有车辆行驶,主干道绿灯,支干道红灯;S2:支干道有车辆行驶,主干道黄灯,支干道红灯;S3:支干道有车辆行驶,主干道红灯,支干道绿灯;S4:支干道有车辆行驶,主干道红灯,支干道黄灯CAR=0S0S1S2S3S4CAR=1c=1001111CAR=0c=1001111 CAR=1c=0101100c=0110001c=1001010 图2 系统状态图二、设计步骤和调试过程1、总体设计电路library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity jiaotongLED is generic(-定义灯亮的时间 zhu_green_cnt:integer:=45;-主干道绿灯 zhu_yellow_cnt:integer:=5;-主干道黄灯 zhi_green_cnt:integer:=25;-支干道绿灯 zhi_yellow_cnt:integer:=5);-支干道黄灯port(clk:in std_logic; rst:in std_logic;-复位信号 zhu_green_led:out std_logic; zhu_yellow_led:out std_logic; zhu_red_led:out std_logic; zhi_green_led:out std_logic; zhi_yellow_led:out std_logic; zhi_red_led:out std_logic);end jiaotongLED;-architecture ex of jiaotongLED istype states is(s0,s1,s2,s3,s4);signal state1:states:=s0;signal state:states:=s0;signal cnt:integer range 0 to 150;signal save_cnt:integer;signal enable_cnt:std_logic:=0;begin-u1:process(rst,clk)-信号灯的时间状态的转换begin if rst=1 then-判断是否按下复位 state=s0; cnt=1; elsif clkevent and clk=1 then if enable_cnt=1 then cnt=cnt+1; else cnt if(cnt=zhu_green_cnt)then state=s1; else state if(cnt=zhu_yellow_cnt)then state=s2; else state if(cnt=zhi_green_cnt)then state=s3; else state if(cnt=zhi_yellow_cnt)then state=s0; else state if(cnt=exi_cnt)then cnt=save_cnt; state zhu_green_led=1; zhu_yellow_led=0; zhu_red_led=0; zhi_green_led=0; zhi_yellow_led=0; zhi_red_led=1; enable_cnt=1; if(cnt=zhu_green_cnt)then enable_cnt zhu_green_led=0; zhu_yellow_led=1; zhu_red_led=0; zhi_green_led=0; zhi_yellow_led=0; zhi_red_led=1; enable_cnt=1; if(cnt=zhu_yellow_cnt)then enable_cnt zhu_green_led=0; zhu_yellow_led=0; zhu_red_led=1; zhi_green_led=1; zhi_yellow_led=0; zhi_red_led=0; enable_cnt=1; if(cnt=zhi_green_cnt)then enable_cnt zhu_green_led=0; zhu_yellow_led=0; zhu_red_led=1; zhi_green_led=0; zhi_yellow_led=1; zhi_red_led=0; enable_cnt=1; if(cnt=zhi_yellow_cnt)then enable_cnt zhu_green_led=0; zhu_yellow_led=0; zhu_red_led=1; zhi_green_led=0; zhi_yellow_led=0; zhi_red_led=1; enable_cnt=1; if(cnt=exi_cnt)then enable_cnt=0; end if; end case;end process u2;end ex;2、模块设计和相应模块程序(1)时钟分频模块 系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信号进行分频,产生1S的方波,作为系统时钟计时信号。其实体模块如下:(2)交通灯控制及计时模块 控制模块根据外部输入信号和计时模块产生的输出信号,产生系统的状态机,控制其他部分协调工作。计时模块用来设定主干道和支干道计时器的初值,并为扫描显示译码模块提供倒计时时间。控制及计时模块采用状态机进行设计,可以定义出5种状态,分别为S0:主干道绿灯,支干道红灯且没有车辆行驶;S1:主干道绿灯,支干道红灯或支干道有车辆驶入;S2:主干道黄灯,支干道红灯;S3:主干道红灯,支干道绿灯;S4:主干道红灯,支干道黄灯。利用CASE语句定义状态的转换方式及时间的变换方式,达到主干道绿灯亮45秒,支干道绿灯亮25秒,黄灯亮5秒的设计要求。其实体模块如下:CAR为支干道车辆检测开关在支干道有车的情况下,模块可以进行减计时,CLK1S为1S的时钟脉冲TIME1H、TIME1L、TIME2H、TIME2L分别为主干道时钟高位、主干道时钟低位、支干道时钟高位、支干道时钟低位LED为LED灯发光情况,分别为主干道绿灯、主干道黄灯、主干道红灯、支干道绿灯、主干道黄灯、主干道红灯Count的总的系统时间,用来改变系统的状态(3)扫描显示译码模块扫描显示译码模块可以根据控制信号,驱动交通信号灯以及倒计时数码管的显示,其中数码管的显示采用动态扫描显示。其实体模块如下: CLK为1KHZ的系统时钟脉冲 CLK1S为1S时钟脉冲CAR为支干道车辆检测开关 SEL为数码管位码扫描SEG为数码管段码 TIME1H、TIME1L、TIME2H、TIME2L为数码管计时的时间,由控制及计时模块为其赋值(4)顶层文件的编写顶层文件原理图将以上各个单元模块仿真成功后,再进行顶层文件的编写。将各个单元模块的变量赋值给顶层文件,从而将各个单元模块连接起来,统一调配。得到顶层文件的实体模块:3、仿真及仿真结果分析(1)时钟分频模块仿真波形如下: END TIME取5s ,可以看到能够得到1s的时钟脉冲(2)交通灯控制及计时模块仿真波形如下:通过仿真可以看到:(1)当主干道绿灯,支干道红灯时,主干道倒计时高位置数0100,低位置数0101;支干道高位置数0101,低位置数0000;(2)当主干道黄灯,支干道红灯时,主干道黄灯倒计时置数0101;支干道继续刚才的减计数;(3)当主干道红灯,支干道绿灯时,主干道倒计时高位置数0011,低位置数0000;支干道高位置数0010,低位置数0101;(4)当主干道红灯,支干道黄灯时,支干道黄灯倒计时置数0101;主干道继续刚才的减计数。(5)在S4状态结束后,自动跳回到S0状态,继续判断支干道是否有车行驶,若有车行驶,则跳转到S1状态,给高、低位置数,继续进行减计时。(6)系统根据COUNT的变化自动在各状态下跳变,当count为45时,跳变到S2状态;当count为50时,跳变到S3状态;当count为75时,跳变到S4状态;当count为80时,若支干道没有车跳变到S0状态,有车则跳变到S1状态。(3)扫描显示译码模块仿真波形如下:通过仿真可以看到:给CLK一个时钟脉冲,数码管的位码随CLK时钟的变化而进行扫描,由于CLK的频率较高,人的眼睛会有短暂的视觉停留,所以会看到4个数码管都在显示时间。(4)顶层文件仿真波形如下:仿真后可以得到最终的结果:(1)开始时,支干道没有车辆行驶。主干道处于常通行状态,支干道处于禁止状态;当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行50秒倒计时;(2)主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继续亮红灯,进行倒计时;(3)主干道5秒倒计时结束后跳变到红灯,经行30秒倒计时,支干道跳变到绿灯,进行25秒倒计时;(4)支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时;(5)支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态4、实验调试结果将程序下载到实验板后,CAR置于低电平后,可以看到LED灯的显示情况为主干道亮绿灯,支干道亮红灯,主干道数码管显示45秒,支干道数码管显示50秒。但支干道有车时,把CAR置于高电平,可以看到主、支干道的数码管开始倒计时;主干道倒计时结束后再进行5秒倒计时,并且交通灯变为黄灯;当主干道倒计时结束后,主干道数码管显示30,支干道数码管显示25,主干道变为红灯,支干道变为绿灯,继续进行倒计时;支干道倒计时结束后再经行5秒倒计时,交通灯变为黄灯;支干道倒计时结束后再回到初始状态。三、结论及心得体会这次的课程设计中,我们更进一步体会到自主学习和团队合作的乐趣与必要性,我们所使用的VHDL语言,是一种硬件语言,使用起来并不灵活。在网络上找到了许多相关资料,大大扩充自己的知识面,使许多以前想解决却无法解决的困难迎刃而解, 这才知道老师的良苦用心。相信以后的我不管是做网络还是从事软、硬件开发,都会有一个扎实的基础和良好的开发习惯的。它开拓了我们的思维,让我们从不同的角度考虑问题,巩固了我们的书本知识,让我们了解我们所学知识在实际生活中的应用,更重要的是我们还学到了很多书本上没有的知识。毫无疑义,这样的课程设计使我们摆脱了课本学习的单调过程,在实践与动脑中收到了令人满意的效果. 参考资料 1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.易铭PLC控制的交通信号灯控制系统的设计J工业控制计算机,2003,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论