交通灯控制电路设计及仿真

合集下载

交通灯控制电路的设计(实验报告)

交通灯控制电路的设计(实验报告)

交通信号灯控制电路的设计一、设计任务与要求1、任务用红、黄、绿三色发光二极管作为信号灯,设计一个甲乙两条交叉道路上的车辆交替运行,且通行时间都为25s的十字路口交通信号灯,并且由绿灯变为红灯时,黄灯先亮5s,黄灯亮时每秒钟闪亮一次。

2、要求画出电路的组成框图,用中、小规模集成电路进行设计与实现用EAD软件对设计的部分逻辑电路进行仿真,并打印出仿真波形图。

对设计的电路进行组装与调试,最后给出完整的电路图,并写出设计性实验报告。

二、设计原理和系统框图(一)设计原理1、分析系统的逻辑功能,画出其框图交通信号灯控制系统的原理框图如图2所示。

它主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成。

秒脉冲信号发生器是该系统中定时器和该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。

图1 交通灯控制电路设计框图图中:Tl:表示甲车道或乙车道绿灯亮的时间间隔为25s,即车辆正常通行的时间间隔。

定时时间到,Tl=1,否则,Tl=0.Ty:表示黄灯亮的时间间隔为5s。

定时时间到,Ty=1,否则,Ty=0。

St:表示定时器到了规定的时间后,由控制器发出状态转换信号。

它一方面控制定时器开始下一个工作状态的定时,另一方面控制着交通信号灯状态转换。

2、画出交通信号灯控制器ASM图(1)甲车道绿灯亮,乙车道红灯亮。

表示甲车道上的车辆允许通行,乙车道禁止通行。

绿灯亮足规定的时间隔TL时控制器发出状态信号ST转到下一工作状态。

(2)乙车道黄灯亮乙车道红灯亮。

表示甲车道上未过停车线的车辆停止通行已过停车线的车辆继续通行乙车道禁止通行。

黄灯亮足规定时间间隔TY时控制器发出状态转换信号ST转到下一工作状态。

(3)甲车道红灯亮乙车道绿灯亮。

表示甲车道禁止通行乙车道上的车辆允许通行绿灯亮足规定的时间间隔TL时 控制器发出状态转换信号ST转到下一工作状态。

基于EDA的交通信号灯电路的设计与仿真

基于EDA的交通信号灯电路的设计与仿真

基于EDA的交通信号灯电路的设计与仿真传统的交通信号灯控制电路的设计是基于中、小规模集成电路,电路元件多、焊接复杂、故障率高、可靠性低,而且控制系统的功能扩展及调试都需要硬件电路的支持,为日常维护和管理增加了难度。

目前很多城市的交通信号灯还是应用传统的电路设计,一旦交通信号灯出现故障,不能及时维修和处理,势必会造成道路的交通混乱。

通过技术的改进,采用基于EDA技术的交通信号灯控制电路弥补了传统设计中的缺点,通过VHDL语言编写系统控制程序,利用软件控制整个系统的硬件电路,还可以利用EDA集成开发环境对交通信号灯的设计进行仿真,验证设计结果是否实现。

改进后的交通信号灯电路组成元器件少,可靠性高,操作简单,实现可扩展功能。

1 交通信号灯控制电路1.1 交通信号灯工作原理基于FPGA的交通信号灯控制电路主要用于甲乙两条车道汇合点形成的十字交叉路口,甲乙两车道各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。

两组红绿灯分别对两个方向上的交通运行状态进行管理,红灯亮表示该道路禁止通行,黄灯表示停车,绿灯表示可以通行;倒计时显示器是用来显示允许通行或禁止通行的时间,以倒计时方式显示交通灯闪亮持续时间。

为每个灯的闪亮状态设置一个初始值,指示灯状态改变后,开始按照初始值倒计时,倒计时归零后,灯的状态将会改变至下一个状态。

交通灯两车道的指示灯闪亮状态是相关的,每个方向的灯闪亮状态影响着另一个方向的指示灯闪亮状态,这样才能够协调两个方向的车流。

甲乙两车道交通灯工作状态如表1所示,其中“1”代表点亮,“0”代表熄灭。

当甲车道绿灯亮时,乙车道对应红灯亮,由绿灯转换红灯的过渡阶段黄灯亮。

同理,乙车道绿灯亮时,甲车道的交通灯也遵循此规则。

当出现特殊情况时,各方向均亮红灯,倒计时停止,特殊运行状态结束后,控制器恢复原来状态,继续运行。

1.2 交通信号灯电路结构根据交叉路口交通灯工作原理,图1为交通信号灯控制电路的原理图。

交通灯控制电路综合设计实验

交通灯控制电路综合设计实验

放风筝小学生二年级作文7篇放风筝是清明时节人们所喜爱的一项活动,此时的气候风向也非常适宜放风筝。

下面是小编为大家整理的放风筝小学生二年级作文7篇,仅供参考,欢迎大家阅读借鉴。

放风筝小学生二年级作文1星期天下午,阳光明媚,微风吹拂,天气格外温暖,我的心情也很好,因为叔叔要带我去放风筝。

我和叔叔一路走一路说笑着,不知不觉就来到了广场。

广场上的人可真多呀!很多人都在放风筝。

天上的风筝一个比一个飞得高,像鸟儿一样在空中自由地盘旋。

看着一个个高高飞起的风筝,我的心痒痒的,已经有些迫不及待了。

我是第一次放风筝,所以需要身为高手的叔叔示范一次。

只见叔叔拉着风筝线边跑边慢慢放线,不一会儿,风筝便高高地飞了起来。

看着叔叔的示范,我觉得我会放风筝了。

于是,我学着叔叔的样子慢慢放线。

因为我总站在原地,风一停,风筝就会掉下来。

这时,叔叔对我喊:“跑,跑起来!”听了这话,我立马在广场上跑起来,风筝果然如叔叔说的那样飞了起来。

但是广场上放风筝的人太多了,我一放开跑,风筝线就和别人的风筝线缠在一起。

叔叔赶紧过来帮我解开风筝线,并教了几种方法避开别的风筝。

我又重新开始放,这次很顺利,风筝飞得很高。

我仰望我的风筝,它像鸟儿一样在湛蓝的天空中飞翔,和其他风筝一起,让这场空中舞会变得热闹非凡。

望着天空飞舞的风筝,我不禁想到,有时我们就像那风筝,总想飞得更高更远,可总被拿着风筝线的父母紧紧拽着,可换个角度想,没有了父母的帮助,我们怎会高高飞起?放风筝小学生二年级作文2星期天下午,秋高气爽,微风习习,我兴高采烈地和妈妈去太子山公园放风筝我的风筝是金鱼形状的,它有一双圆溜溜的眼睛、淡蓝色的鱼鳞、金色的脑袋和金黄色的尾巴,非常惹人喜爱!我们来到太子山公园,看道人们三个一群五个一伙的在放风筝。

天上无颜六色、形态各异的风筝让人眼花缭乱,有展翅高飞的老鹰,有精美别致的脸谱,有喜气洋洋的猪八戒,还有拖着长长尾巴的蜻蜓……我一边欣赏,一边和妈妈找了一个空旷的地方放风筝。

交通信号灯控制电路的设计与仿真

交通信号灯控制电路的设计与仿真

交通信号灯控制电路的设计与仿真交通信号灯是城市道路上的重要交通设施。

它不仅能够引导车辆行驶方向、保障行人安全出行,还能有效地控制交通流量,缓解车辆拥堵问题。

然而,要使交通信号灯发挥作用,就需要一个可靠的信号控制电路。

本文将介绍交通信号灯控制电路的设计与仿真。

1. 控制电路设计交通信号灯控制电路是一种可编程逻辑电路(FPGA)。

它可以根据不同的交通需要配置不同的控制方案。

基本的控制方案有三种:顺序控制、时间计划控制和循环控制。

1.1 顺序控制顺序控制是最简单的交通信号灯控制方案,它依次控制交通灯的颜色。

设计电路需要先设置一个时钟,并定义各信号灯的状态,例如,当橙色灯亮的时候,等待5秒钟后,绿色灯亮;当绿色灯亮时,等待10秒钟后,红色灯亮。

这样的交通信号灯控制方案简单、稳定,但是不适用于复杂的交通环境。

1.2 时间计划控制时间计划控制是根据交通流量和道路容量的不同,对交通信号灯的时间进行调整的控制方案。

具体做法是,通过交通流量传感器测量每个方向的车辆流量并累积,运用时序控制器进行计算,并对红绿灯时间进行动态调整。

这样可以保证交通信号灯实时地适应不同的流量情况,但是需要大量的传感器和计算器。

1.3 循环控制循环控制是一种随机的交通信号灯控制方案,通过交通数据和计算机模型确定路口交通灯每轮的时间长度,并以不同的顺序轮换信号灯,这样按照循环周期可能使交通流量更加均衡,并且可以排除一些失误。

但是需要进行大量的计算,并且不适用于复杂的交通环境。

2. 仿真设计完成后,需要对交通信号灯控制电路进行仿真,以检验控制电路的稳定性和有效性。

仿真软件通常有多种,本文介绍两种常用的仿真软件。

2.1 QucsQucs是一个免费的仿真软件,具有模拟、线性和非线性仿真电路的能力,可以模拟电路和系统的频段、噪声和传输等特性。

在Qucs中,可以很容易地设计复杂的控制电路,通过仿真分析不同方案的控制效果。

2.2 SPICESPICE是一种常用的模拟软件,主要用于电路和系统仿真。

基于Multisim的交通灯控制电路系统仿真设计

基于Multisim的交通灯控制电路系统仿真设计

0.引言Multisim 具有丰富的仿真分析能力并且以Windows 为基础的EDA 仿真工具,适用于板级的模拟/数字电路板的设计工作。

通过Multisim 可以交互式地搭建电路原理图,并对电路行为进行仿真。

它是EDA 仿真设计系统的一个重要组成部分。

EDA 代表了当今电子设计技术的最新发展方向,其基本特征是设计人员以计算机为工具,按照自顶向下的设计方法。

随着EDA 技术的发展,可以利用“虚拟仪器”、“虚拟器件”在计算机上进行电子电路设计和实验。

目前,在这类仿真软件中,“虚拟电子实验台”—————Multisim 较为优秀,其应用逐步得到推广。

这种新型的虚拟电子实验技术软件,在创建实验电路时,元器件、测试仪器均可直接从屏幕图形中选取,且仪器的设置、使用和数据读取方法以及外观都与现实中的仪表非常相似。

实际工作中可以利用此软件实现计算机仿真设计与虚拟实验,并且设计与实验可以同步进行,可以边设计边实验,修改调试方便;设计和实验用的元器件及测试仪表齐全,可以完成各种类型的电路设计与实验;仿真时可方便地对电路参数进行测试和分析,可直接打印输出实验数据、测试参数、曲线和电路原理图,并且在实验中不消耗实际上的元器件,实验所需元器件的种类和数量不受限制,从而降低了实验成本低,加快了实验速度,提高了实验效率高。

基于上述优点,我们利用虚拟实验室中的虚拟仪器来组织完成交通灯控制电路的仿真设计。

1.交通灯控制器原理假设有个十字路口,分别有A 、B 两条交叉的道路,交通灯的控制方式为:A 街道先出现在绿灯(3S )、黄灯(1S )时,B 街道为红灯(4S );而A 街道为红灯(4S )时,B 街道出现绿灯(3S )、黄灯(1S );如此循环。

交通灯控制的一个循环为8S ,而采用一片同步十进制计数74LS160来完成时间控制,相当于模8的计数器。

2.电路设计2.1真值表假设A 、B 街道的绿、黄、红灯分别用GA 、YA 、RA 和GB 、YB 、RB 表示,交通灯控制电路的真值表如表1所示:表1交通灯控制电路逻辑真值表2.2设计模8计数器2.2.174LS160简介74LS160是同步10进制计数器,其管脚排列如图1所示:其中A 、B 、C 、D 为预置数输入端,LOAD 为预置数控制端,CLR 为异步清零端,ENP 和ENT 为计数器允许端,CLK 为上长沿触发时钟端,RCO 为输出的进位信号,QA 、QB 、QC 、QD 为十进制输出端。

交通灯proteus仿真设计

交通灯proteus仿真设计

交通灯proteus仿真设计交通灯是城市交通管理中非常重要的一部分,它们用于控制车辆和行人的流动,确保交通的安全和顺畅。

在这篇文章中,我们将使用Proteus软件来设计一个交通灯的仿真模型。

在Proteus中,我们可以使用ISIS和Ares两个模块进行电子电路的设计和仿真。

首先,我们需要在ISIS中创建一个新的电路图。

我们可以将交通灯的每个部分视为一个独立的电路,包括信号发生器、计时器、红绿灯和行人信号等。

首先,我们需要一个信号发生器来模拟交通灯的计时控制。

我们可以使用Proteus中提供的脉冲发生器来生成一个方波信号作为计时器的输入。

我们可以设置方波的频率和占空比来模拟不同的交通灯状态,比如红灯、绿灯和黄灯。

接下来,我们需要一个计时器来控制交通灯的转换。

我们可以使用Proteus中提供的计时器元件,比如555定时器。

我们可以设置定时器的参数,比如时钟频率和周期,来控制交通灯的转换时间。

然后,我们需要设计红绿灯的电路。

对于红灯,我们可以使用一个LED来表示,可以选择红色的LED。

对于绿灯,我们也可以使用一个LED来表示,可以选择绿色的LED。

我们可以使用Proteus中提供的LED元件,并将其连接到计时器的输出引脚上。

最后,我们还可以添加一个行人信号来模拟行人通过的情况。

我们可以使用一个LED来表示行人信号,可以选择白色的LED。

我们可以将行人信号的LED连接到计时器的输出引脚上,并设置适当的延迟来控制行人信号的亮灭。

完成电路设计后,我们可以在ISIS中进行仿真。

在仿真过程中,我们可以观察交通灯的状态和行人信号的变化。

通过调整计时器的参数,我们可以模拟不同的交通灯时间间隔和行人信号的延迟时间。

除了电路设计和仿真,Proteus还可以进行PCB布局和打印板设计。

我们可以使用Ares模块来创建一个真实的交通灯电路板,并将其制作成实际的交通灯。

总而言之,通过Proteus软件的使用,我们可以方便地设计和仿真交通灯的电路,并进行交通灯的时间间隔和行人信号的延迟的调整。

交通灯控制电路设计与制作

交通灯控制电路设计与制作

交通灯控制电路设计与制作交通灯控制电路设计与制作随着人口的不断增长和城市化的进程,各种交通工具的数量不断增加,交通技术的创新和发展也越来越受到关注。

交通灯是现代城市交通中非常重要的一种交通设施,它能够有效地控制车辆流量和行人行动,从而提高道路的安全性和交通效率。

交通灯控制电路是交通灯工作的核心系统。

它通过电子元器件将交通灯控制的信号转换成数字控制信号,进而实现交通灯的开关控制和颜色切换。

本文将介绍交通灯控制电路设计和制作的基本原理和步骤。

一、交通灯控制电路设计原理交通灯控制电路主要由以下几部分组成:时钟电路、数字控制电路、继电器控制电路、LED灯管控制电路等。

时钟电路:时钟电路是交通灯控制电路的基础部分,它通过高精度的电子元器件实现系统的节拍同步和计时。

在交通灯控制电路中,时钟电路的作用是控制信号频率和时间周期,为后面的数字控制和继电器控制提供时间基准。

数字控制电路:数字控制电路是交通灯控制电路的核心部分,它是把传统的机械式控制方式转化成数字化控制,实现自动控制的关键部分。

数字控制电路主要采用的是单片机技术,通过熟练掌握单片机编程语言和电路设计原理,可以实现复杂的交通信号控制方案。

继电器控制电路:继电器控制电路是一种实现数字控制信号与物理控制信号相互转换的电路。

它通过将数字控制信号转换成真实的高电平或低电平信号,从而控制车辆和行人信号灯的开关状态,改变交通灯的亮灭状态。

LED灯管控制电路:LED灯管控制电路是一种专门用于LED 灯传输控制信号的电路。

它通过对LED灯管的电流和电压进行调节,实现交通灯颜色的切换和灯管亮度的调节。

以上几个部分组成了一个完整的交通灯控制电路系统。

在实际设计和制作过程中,需要对各部分电路进行精心的设计和调试,以确保系统的可靠性和稳定性。

二、交通灯控制电路制作步骤1.准备材料和测试工具在制作交通灯控制电路时,需要准备一些基本的材料和测试工具。

其中包括电子元器件、电路设计软件、A/D转换器、逻辑单元、控制线缆、继电器、LED灯管、电路板和焊接工具等。

实验二:Multisim交通灯仿真

实验二:Multisim交通灯仿真
在仿真面板中查看波形、数据等仿真结果。
03
交通灯工作原理
交通灯的种类
01
02
03
红绿灯
红、绿、黄三种颜色,用 于指示车辆和行人停止、 通行和等待。
交通信号灯
包括左转、直行和右转信 号,用于管理不同方向的 交通流。
紧急停车带交通灯
用于指示紧急车辆在紧急 情况下使用紧急停车带。
交通灯的控制逻辑
时序逻辑
实验二Multisim交通 灯仿真
目录
• 实验目的 • Multisim软件介绍 • 交通灯工作原理 • 交通灯控制系统设计 • Multisim仿真过程 • 实验总结与展望
01
实验目的
掌握Multisim软件的使用
掌握Multisim软件的界面布局和基本 操作,如元件库管理、电路图绘制、 仿真运行等。
控制电路
由定时器、微控制器等组成,用于实 现交通灯的时序逻辑和控制逻辑。
04
交通灯控制系统设计
控制系统设计思路
确定控制目标
根据交通需求,确定交通灯控制 系统的目标,如车辆和行人的通
行时间、优先级等。
选择控制策略
根据控制目标,选择合适的控制策 略,如定时控制、感应控制等。
设计控制电路
根据控制策略,设计控制电路,包 括红、绿、黄三个方向的信号灯和 必要的传感器。
03
检查电路的电气特性,如电压、电流等是否符合预 期。
仿真运行与结果分析
01
启动仿真,观察电路的工作过程。
02 使用虚拟仪器记录仿真过程中的电压、电 流等数据。
03
分析仿真结果,并与实际电路的工作情况 进行比较。
04
根据仿真结果,对电路设计进行优化和改 进。

简易交通灯控制电路的设计

简易交通灯控制电路的设计

简易交通灯控制电路的设计交通灯控制电路是现代城市交通管理的重要组成部分,其设计方案的合理性和可靠性对保障人民出行的安全和畅通至关重要。

在本文中,我将介绍一个简单的交通灯控制电路的设计方案,涉及到所需材料、电路设计、电路连接和电路测试等方面,旨在提供一种可行的设计思路及实现方法。

一、所需材料1. PCB板2. AT89C2051单片机3. LCD12864液晶显示屏4. DS1302时钟模块5. 7段LED数码管6. 红绿黄LED发光二极管7. 继电器8. 12V电源适配器9. 74HC595芯片10. 电容、电阻、连接线等二、电路设计本次交通灯控制电路采用单片机AT89C2051作为控制核心,通过LCD12864液晶显示屏展示交通灯状态,并且控制红绿黄三色LED灯。

还采用DS1302时钟模块来实现交通灯的定时控制,以确保交通灯的安全和准确性。

具体的电路设计如下:1.电源模块本电路采用12V电源适配器作为供电来源,将电源接入100uf电解电容并接入AT89C2051芯片VCC引脚,以确保芯片工作电压稳定。

2.时钟模块DS1302时钟模块通过连接到P1.0、P1.1和P1.2引脚来实现对交通灯的定时控制。

还需将时钟模块的CLK、DIO和RST引脚分别连接到AT89C2051芯片的P1.4、P1.5和P1.6引脚来实现数据传输和控制信号输出。

3.LCD显示模块将LCD显示屏的RS、RW和E引脚连接到AT89C2051芯片的P3.0、P3.2和P3.1引脚,将LCD数据引脚DB0-DB7连接到AT89C2051芯片的P2.0-P2.7引脚,以在交通灯控制过程中显示交通灯状态。

4.7段LED数码管模块将74HC595芯片、CD4511译码器和7段LED数码管连接在一起,将74HC595芯片的SER、SRCLK和RCLK引脚连接到AT89C2051芯片的P1.7、P1.5和P1.6,将CD4511译码器的A、B、C、D和O引脚分别连接到74HC595芯片的Q0-Q3和74HC595芯片的Q4引脚,将7段LED数码管的公阴极连接到CD4511译码器的O引脚,在交通灯控制过程中实现倒计时显示。

基于QuartusⅡ的十字路口交通灯控制电路设计与仿真实现

基于QuartusⅡ的十字路口交通灯控制电路设计与仿真实现

基于QuartusⅡ的十字路口交通灯控制电路设计与仿真实现西安交通大学 黄览小十字路口车辆通行能否保持较高的效率,将决定城市交通管理水平。

本文结合十字路口交通灯控制要求,采用QuartusⅡ实现了交通灯控制电路设计,并对设计效果进行了仿真分析。

从仿真结果来看,交通灯控制电路可以在车流量过大时将道路通行时间由60s增加至90s,并在车流量过小时将通行时间由60s减少至30s,因此能够实现十字路口车辆通行量的动态控制。

:引言:伴随着私家车数量的不断增加,城市交通压力日渐增大。

而加强十字路口交通灯控制,则能起到缓解城市交通堵塞的重要作用。

目前在交通灯控制设计方面,采用传统的设计形式已经无法满足交通灯的动态控制需求。

为此,还要引入先进的设计软件,采用QuartusⅡ实现十字路口交通灯控制电路设计与仿真分析,提高十字路口的车辆通行效率。

1.QuartusⅡ概述在现代电子产品设计方面,主要采用Electronic Design Automation 技术,即EDA技术。

采用该技术,能够实现对可编程逻辑器件的大规模运用,并通过硬件描述实现系统逻辑表达,然后进行软件开发和实验,最终利用软件完成硬件设计。

伴随着科学技术的发展,新的软件工具得到了进一步开发。

现阶段,可以采用能够实现现场编程的Quar-tusⅡ工具。

QuartusⅡ由Altera公司开发,属于综合性CPLD/FPGA开发软件,能够实现原理图、VerilogHDL等各种设计形式的输入,同时能够利用内部综合器以及仿真器完成设计输入和硬件配置。

2.基于QuartusⅡ的十字路口交通灯控制电路设计2.1 设计要求设计十字路口交通灯控制电路,目的在于实现交通灯信号的控制。

而十字路口由东南方向主干道和西北方向支干道交叉形成,采用的交通灯有黄、绿、红三种,绿灯表示通行,红灯则禁止通行,黄灯为变道提示。

在交通灯控制方面,要求使主干道保持长时间绿灯,同时支干道保持长时间红灯。

基于Proteus的智能交通灯设计与仿真实现

基于Proteus的智能交通灯设计与仿真实现

基于Proteus的智能交通灯设计与仿真实现智能交通灯是一种通过传感器和智能控制系统实现交通信号灯的智能化管理,能够根据交通流量和道路状况进行智能调控,以提高交通效率和减少交通堵塞。

本文将基于Proteus软件进行智能交通灯的设计和仿真实现。

首先,我们需要明确智能交通灯的基本功能和设计要求。

智能交通灯主要需要实现以下功能:1.根据交通流量进行智能控制。

通过传感器检测道路上的交通流量,智能交通灯可以根据实时的交通情况智能地调整信号灯的时间,以提高交通效率。

2.考虑不同道路的优先级。

在交叉路口附近,智能交通灯需要根据不同道路的优先级来调整信号灯的时间,以确保交通的顺畅和安全。

3.考虑行人的过马路需求。

智能交通灯需要合理地安排行人的过马路时间,以保证行人的安全和顺畅。

接下来,我们将使用Proteus软件进行智能交通灯的设计和仿真实现。

Proteus是一款电子电路设计和仿真软件,可以用来模拟和验证电子电路的性能和功能。

首先,我们需要设计智能交通灯的硬件电路。

在Proteus中,我们可以使用元器件库中的LED灯和开关等元件来构建交通灯的电路。

同时,我们还需要添加传感器来检测交通流量和行人的需求。

在设计电路的过程中,我们需要考虑不同道路的优先级和行人的过马路需求。

根据道路的优先级,我们可以设置不同道路对应的信号灯的亮灭时间。

同时,我们还可以设置传感器来检测行人的需求,以在需要的时候提供行人过马路的时间。

完成电路设计后,我们可以使用Proteus中的仿真功能来验证电路的性能和功能。

在仿真过程中,可以模拟不同道路的交通流量和行人的过马路需求,以观察交通灯是否能够根据实时情况进行智能调控。

在仿真过程中,我们可以观察交通灯的状态变化和信号灯的亮灭时间,以评估交通灯的性能和效果。

如果发现问题,我们可以对电路进行调整和优化,以提升交通灯的智能化管理能力。

总结起来,基于Proteus的智能交通灯设计和仿真实现是一种高效且可靠的方法。

EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现

EDA实验报告:基于VHDL语言的交通灯控制系统设计与实现
(k1=0)
图为k1=0时的输出状态s1,输出恒为011110。即亮灯为R1,y2。保持时间1S。
(k2=0)
上图为k2=0时的输出状态s2,输出恒为101011。即亮灯为G1,R2。保持时间2S。
(k3=0)
上图为k3=0时的输出状态s3,输出恒为110011。即亮灯为R1,G2。保持时间1S。
四、小结及心得体会
else
if counter<5 then
next_state<=s3;
else
next_state<=s0;
end if;
end if;
end if;
end if;
end if;
end case;
end process;
ouput:process(current_state)
begin ——显示程序
begin
u1: jiaotongdeng port map(
clk=>clki,
k0=>k0,
k1=>k1,
k2=>k2,
k3=>k3,
r1=>r1,r2=>r2,g1=>g1,g2=>g2,y1=>y1,y2=>y2
);
u2: div port map(clk=>clk1,clk_out=>clki);
end if;
end if;
end if;
when s3=>
if k0='0' then
next_state<=s0;
else
if k1='0' then
next_state<=s1;

交通灯控制电路设计+设计流程图+设计电路图+实物图

交通灯控制电路设计+设计流程图+设计电路图+实物图

交通灯控制电路设计由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全、迅速地通行,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。

红灯亮禁止通行;绿灯亮允许通行;黄灯亮则给行驶中的车辆有时间停靠在禁行线内。

实现红、绿灯的自动指挥对城市交通管理现代化有着重要的意义。

1、设计目的1.掌握交通灯控制电路的设计、组装与调试方法。

2.熟悉数字集成电路的设计和使用方法。

2、设计任务与要求1.用红、绿、黄三色发光二极管作信号灯。

2.当主干道允许通行亮绿灯时,支干道亮红灯,而支干道允许亮绿灯时,主干道亮红灯。

3.主支干道交替允许通行,主干道每次放行30s、支干道20s。

设计30s和20s计时显示电路。

4.在每次由亮绿灯变成亮红灯的转换过程中间,要亮5s的黄灯作为过渡,设置5s计时显示电路。

3、原理电路设计(1)设计逻辑流程(2)方案比较及整体电路方案一:根据题目,主支干道红绿灯分时亮可以分成四种状态。

若采用两个JK触发器即可满足。

考虑到主支干道计数的不同,需要从计数器那里产生一个信号,来使JK触发器改变状态。

当然可以通过逻辑推导,然后用各种基本的数字器件,如与非门,来产生一个满足要求的信号。

但是用到的器件比较多,而且布线较复杂。

所以不采用这个方案。

方案二:鉴于方案一,考虑采用中规模集成电路,因此选择使用了数据选择器。

将计数器某个计数到的信号,如5s,接到数据选择器的数据输入端,然后将由JK触发器产生的表明四种状态的信号Q2和Q1接到数据选择器的地址代码端。

这个方案解决了方案一的问题,所以采用了这种设计方法。

方案三:按照JK触发器习惯的接法,由数据输出端来的信号接到J或K,但是若计数器采用置零的方式,信号有效的时间很短,这就要求触发器有较高的扫描频率,但是计数器的频率已经固定是1s,造成同一个频率电路,却需要不同的频率。

因此采用直接接进触发器的使能端。

至此,确定了最后的方案。

(3)单元电路设计及电路的工作原理为了便于分析,把一些单元电路从整体电路中分离出来,同时为了电路的简洁明了,分析电路的逻辑时,还把次要的元件暂时移除.单元电路各部分以及功能如下:控制电路主控电路是本课题的核心,主要产生30s、20s、5s三个定时信号,它的输出一方面经译码后分别控制主干道和支干道的三个信号灯,另一方面控制定时电路启动。

交通灯控制器数字电路的设计及仿真

交通灯控制器数字电路的设计及仿真

交通灯控制器数字电路的设计及仿真随着城市化进程的加快,交通量越来越大,如何科学有效地管理交通成为一个重要的问题。

其中,交通灯控制器是一个涉及电子电路技术的重要设备。

基于数字电路的设计和仿真,进一步提高交通灯控制器的精度和稳定性,对于保障交通安全、提高城市交通效率至关重要。

一、设计方案1.计算时序交通灯控制器的每个阶段均有确定的时间,因此需要计算时序以确定各个信号时序是否正确,以及控制灯的开关时间是否正确。

2.设计状态机根据计算好的时序,可以通过 ISE 设计工具绘制状态图,然后再利用 Verilog HDL 语言编写出状态机。

交通灯控制器的每个阶段都有一个对应的状态,状态机会根据输入信号的状态来判断当前处于何种状态,并根据状态判断应该输出什么信号。

3.确定数字电路结构利用 ISE 设计工具,可以采用 Combinational Logic Circuit 来设计灯的开关逻辑电路,时序电路中以时钟触发器为主。

可以通过该工具绘制仿真波形来检测电路的正确性,检查信号间是否存在错误。

二、仿真过程1.绘制输入信号波形首先,需要绘制出输入信号的波形,并且在仿真时要按照相应的频率和占空比输出。

2.对仿真波形进行仿真分析仿真过程中,可以通过 Xilinx 仿真工具,对仿真波形进行分析,检测电路的正确性和稳定性。

同时,可以通过仿真过程中的输出信号波形,判断各阶段信号的状态。

3.检验仿真结果与设计方案借助仿真工具,可以非常直观地验证数字电路的设计方案是否合理、可靠。

此外,还可以通过不同的应用场景,不断优化和调整设计方案,以实现更高的效率与精度。

三、总结数字电路的设计和仿真,可以有效地提高交通灯控制器的精度和稳定性,在城市交通管理中起到关键的作用。

当前数字电路技术的不断推进,为实现更加高效安全的交通管理提供了强有力的支持。

实验八交通灯控制电路的设计

实验八交通灯控制电路的设计

特殊灯光信号
在某些情况下,交通灯还具 有特殊的灯光信号,如左转 箭头、行人过街等,以满足 不同交通需求。
控制电路设计思路
微控制器核心
采用微控制器作为控制核心,通过编程 实现交通灯灯光信号的时序控制。
输出驱动电路
设计合适的输出驱动电路,以驱动交 通灯的LED或灯泡,确保灯光信号的
稳定性和亮度。
输入信号处理
经验教训分享
电路设计需严谨
在电路设计时,应充分考虑元器件的选型、布局 和连接方式,确保电路的稳定性和可靠性。
调试过程需耐心
在电路调试过程中,遇到问题时需保持冷静,耐 心分析并逐一排查故障,确保电路的正常运行。
团队协作很重要
在实验过程中,团队成员之间应充分沟通、协作 配合,共同解决问题,提高工作效率。
问题诊断及优化措施
问题诊断
针对仿真结果中不符合设计要求的部分,进行问题诊断,找出 可能的原因,如元器件参数不合适、电路连接错误等。
优化措施
根据问题诊断的结果,采取相应的优化措施,如调整元器件参数、修 改电路连接方式等,以提高交通灯控制电路的性能和稳定性。
再次仿真测试
对优化后的交通灯控制电路进行再次仿真测试,验证优化 措施的有效性,并记录优化后的仿真结果。
06
实验总结与展望
实验成果总结
交通灯控制电路的成功设计
通过合理的电路设计和元器件选择,成功实现了交通灯的红黄绿 灯光控制,且运行稳定可靠。
实Hale Waihona Puke 了定时控制功能通过内置的定时器模块,实现了交通灯的定时控制,使得灯光能够 按照设定的时间间隔进行切换。
完成了实验报告与演示
详细记录了实验过程、数据分析、电路图及实验结果,并进行了实 验演示,验证了交通灯控制电路设计的可行性。

实训报告-交通灯控制电路设计

实训报告-交通灯控制电路设计

实训报告-交通灯控制电路设计本次实训的主要任务是设计一个基于计数器和电路传输的交通灯控制电路,能够实现红黄绿三种灯的循环切换,并且速度可调。

1. 实验设备1颗10段计数器、1颗555定时器、3颗双极性三极管、3颗17V/0.5W二极管、3颗红色LED、3颗黄色LED、3颗绿色LED、数个电阻和连接器。

2. 实验原理本次实验主要基于计数器和555定时器实现。

计数器累加一次后会触发一次输出信号,通过此信号来控制各个灯的亮灭。

同时,555定时器用于控制红绿灯切换的时间。

当555定时器的输出信号改变时,通过转换电路,控制红绿灯的状态改变。

3. 实验过程首先,将计数器的时钟接入555定时器的输出端。

然后,将所有的LED和二极管连接到一个共同的正极上,并通过三个开关来控制每个LED的反向极。

此时,可以根据需要进行连接。

一般情况下,红色LED与红色线(反向极)相连,黄色LED与黄色线相连,绿色LED与绿色线相连。

接下来,将三个双极性三极管连接到每个LED的反向极上,并通过电阻进行限流。

此时,可以将计数器的输出端连接到三个双极性三极管的基极。

通过转换电路控制三个双极性三极管的导通和截止,从而控制LED的亮灭。

最后,通过调节555定时器的参数,控制红绿灯的切换时间。

可以通过调节电位器改变输出频率,从而达到速度可调的效果。

4. 实验结果在实验环境中,我们可以看到红黄绿三种灯一次次地循环闪烁,速度可调,非常符合实际的交通灯控制需求。

同时,每个灯的亮灭状态也非常清晰,基本没有出现闪烁和误触发等问题。

5. 总结通过本次实验,我们进一步了解了交通灯控制电路的设计原理和实现过程,并通过实际操作掌握了如何基于计数器和555定时器来实现交通灯的循环切换。

此外,我们还学习了如何通过转换电路控制三个双极性三极管的导通和截止,从而实现LED的亮灭控制。

这对于我们今后的电子技术学习和实践都非常有帮助。

交通灯控制器数字电路的设计及仿真

交通灯控制器数字电路的设计及仿真
示。 因 为7 L 10 4 S 6 兼有 异 步置 零 和 同 步 预置 数功 能 , 以置 零 法 和 所
置 数 法 均 可 采 用 。 2 示 电路 是 采 用 异 步 置 零 法 接 成 的 八 进 制 计 图 所 数 器 。 于要 产 生 8的 控 制 信 号 , 以 由 s 所 C K端 输 入 1 的 脉 冲 信 号 , 8 一 L Hz 而 s A QA 循 环 相 当 于 摸 8 数 器 , 0 0 0 , 计  ̄00 - 1 1 1 B Q B 当计 数 器 计 成 QD QB QC QA=10 状 00 C QC D . QD 态 时 , f7L 0 D 非 ] 4 S 4 将QD 的信 号 转 =1 E P N RCO 化 为 低 电平 信 号 给 C R端 , 计 数 器 L 将 E T N 置 零 , DQC B Q Q QA回 ̄ o o 状 态 。 oo L OAD . 22显 示 电 路 . CLR . 译 码 器 的 逻 辑 功 能 是 将 每 个 输 , eL K 入 的二进制代码译 成对应 的输出高 、 低 电 平 信 号 或 另 外 一 个 代 码 。 数 字 在 7L 6 D . 4 81 0 测量仪表和各种数字 系统 中得到广泛 一 图1 4 S 6 7 L 1 0管 脚 图 的 采 用 , 方 面 供 人 们 直 接 读 取 测量
_ 十 1
雅 瓣
i l
数 控 技 术
交通灯控制器数字电路的设计及仿真
刘 建 华 ,2 龚 校 伟 ’ 崔 雅 君 ’ ,
(. 海 工程技 术 大 学 高职 学 院 上 海 2 03 ;2 海 市 高级技 工 学校 上 海 20 3) 1 上 04 7 . 上 047
摘要 : 文针 对 十 字路 口的交通 灯控 制 器及 其数 字 显示 功 能进行 设 计 。 制 部分 以 同步 十进 制 计数 器 为控 制 芯 片构 成模 拟8 制计数 器及 本 控 进 B D码 显 示器 构成 的显 示 电路 组 成 ; c 受控 部分 即A 道 、 街道 共计 六 盏灯 。 完成 电路 设计 的基 础 上采 用Mut i 真软 件 实现 对 电路功 能 的 街 B 在 1s im仿

交通灯控制电路设计及仿真

交通灯控制电路设计及仿真

交通灯控制电路设计与仿真一、实验目的1、了解交通灯的燃灭规律。

2、了解交通灯控制器的工作原理。

3、熟悉VHDL 语言编程,了解实际设计中的优化方案。

二、实验原理交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。

要完成本实验,首先必须了解交通路灯的燃灭规律。

本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。

依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。

其交通的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

在实验中使用8 个七段码管中的任意两个数码管显示时间。

东西路和南北路的通车时间均设定为20s。

数码管的时间总是显示为19、18、17……2、1、0、19、18……。

在显示时间小于3 秒的时候,通车方向的黄灯闪烁。

三、实验内容本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。

系统时钟选择时钟模块的1KHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s 中递减一次,在显示时间小于3 秒的时候,通车方向的黄灯以2Hz 的频率闪烁。

系统中用S1 按键进行复位。

实验箱中用到的数字时钟模块、按键开关、数码管与FPGA 的接口电路,以及数字时钟源、按键开关、数码管与FPGA 的管脚连接在以前的实验中都做了详细说明,这里不在赘述。

交通灯模块原理与LED 灯模块的电路原理一致,当有高电平输入时LED 灯就会被点亮,反之不亮。

交通灯控制逻辑电路设计实验报告

交通灯控制逻辑电路设计实验报告

数字设计课程实验报告实验名称:交通灯控制逻辑电路的设计与仿真实现学员:学号:培养类型:年级:专业:所属学院:指导教员:职称:实验室:实验日期:交通灯控制逻辑电路的设计与仿真实现一、实验目的:1. 熟悉Multisim仿真软件的主要功能和使用;2. 熟悉各种常用的MSI时序逻辑电路的功能和使用;3. 运用逻辑设计知识,学会设计简单实用的数字系统;二、实验任务及要求:1.设计一个甲干道和乙干道交叉十字路口的交通灯控制逻辑电路;每个干道各一组指示灯红、绿、黄;要求:当甲干道绿灯亮16秒时,乙干道的红灯亮;接着甲干道的黄灯亮5秒,乙干道红灯依然亮;紧接着乙干道的绿灯亮16秒,这时甲干道红灯亮;然后乙干道黄灯亮5秒,甲干道红灯依然亮;最后又是甲干道绿灯亮,乙干道变红灯,依照以上顺序循环,甲乙干道的绿红黄交通指示灯分别亮着;2.要求:1分析交通灯状态变换,画出基于格雷码顺序的交通灯控制状态图;2设计时序逻辑电路部分,写出完整的设计过程,画出逻辑电路图;在Multisim 仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确;3设计组合逻辑电路部分,写出完整的设计过程,画出逻辑电路图;在Multisim 仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确;4用74LS161计数器构造16秒定时和5秒定时的定时电路,画出连线图;在Multisim仿真平台上,选用74LS161芯片连线,测试验证,将电路调试正确;5在Multisim仿真平台上形成整个系统完整的电路,统调测试结果;三、设计思路与基本原理:依据功能要求,交通灯控制系统应主要有定时电路、时序逻辑电路及信号灯转换器组合逻辑电路组成,系统的结构框图如图1所示;其中定时电路控制时序逻辑电路状态的该表时间,时序逻辑电路根据定时电路的驱动信号而改变状态,进而通过组合逻辑电路控制交通灯系统正常运行;在各单元电路的设计顺序上,最先设计基础格雷码顺序的交通灯控制状态图,由此确定时序逻辑电路的设计,并完成该部分电路的调试;接着在设计好时序路逻辑电路的基础上,根据状态输出设计组合逻辑电路,并完成该部分的调试;最后完成定时电路的设计与调试;整合电路,形成整个系统完整的电路,统调测试结果;图错误!未定义书签。

交通灯控制电路设计与制作

交通灯控制电路设计与制作

交通灯控制电路设计与制作交通灯控制电路设计与制作随着城市化进程的加快,交通阻塞问题愈发严重。

为了解决这一难题,设计交通灯控制电路成为了一项重要的工作。

本文将介绍交通灯控制电路的设计思路及其制作过程。

一、电路设计思路交通灯控制电路需要实现的主要功能为按照一定的时间间隔控制交通灯的转换。

首先,需明确借助计时器,获取准确的时间间隔,以及使用开关元件实现交通灯的切换。

其次,对于一些特殊情况,比如紧急停车,电路需要能够做出实时响应。

在实际设计中,要根据实际具体情况确定放置的交通灯种类、交通流量以及灯的切换时间等参数。

设计的目的是为了提高道路的通行能力以及防止出现堵塞情况。

二、电路制作过程制作交通灯控制电路需要准备的材料有:计时器芯片、开关元件、LED灯、电阻器等。

下面是详细的制作过程:1. 首先,在面包板上搭建电路,按照上述设计思路连接各个部分。

需要注意的是,电路板上所连接的元件数量要与需控制的交通灯数量相匹配。

2. 经过初步搭建后,需要进行计时器及开关元件的程序设置。

内部计时器可以使用IC计时器,而开关元件可以采用仿真开关等电子器件,有些情况下还需要在程序设置时进行参数调整。

3. 完成程序和电路的设置后,我们还需要测试电路的真实效果。

此时可以根据实际的交通流量模拟场景,通过手动或自动方式观察道路交通灯切换。

4. 一般情况下,需要将搭建好的电路固定在交通信号灯箱上。

需要注意的是,电路板要稳定且不易被干扰。

5. 最后,需要根据不同情况对电路进行维护和调整,确保能够稳定运行。

三、安全提示在进行交通灯控制电路制作过程中,需要注意一些安全事项。

具体的有:1. 在连接电路时,要确保电路板中的元器件符合电流大小,以避免出现火灾等事故。

2. 在进行参数调整时,必须进行试运行,同时不要频繁调整参数,以避免影响系统的正常工作。

3. 安装时须将电路固定好,保证可靠性和稳定性,避免电路板意外摇晃或受到人为干扰。

总结交通灯控制电路是现代城市化的重要设备之一。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通灯控制电路设计与仿真一、实验目的1、了解交通灯的燃灭规律。

2、了解交通灯控制器的工作原理。

3、熟悉VHDL 语言编程,了解实际设计中的优化方案。

二、实验原理交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。

要完成本实验,首先必须了解交通路灯的燃灭规律。

本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。

依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。

其交通的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

在实验中使用8 个七段码管中的任意两个数码管显示时间。

东西路和南北路的通车时间均设定为20s。

数码管的时间总是显示为19、18、17……2、1、0、19、18……。

在显示时间小于3 秒的时候,通车方向的黄灯闪烁。

三、实验内容本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。

系统时钟选择时钟模块的1KHz时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s 中递减一次,在显示时间小于3 秒的时候,通车方向的黄灯以2Hz 的频率闪烁。

系统中用S1 按键进行复位。

实验箱中用到的数字时钟模块、按键开关、数码管与FPGA 的接口电路,以及数字时钟源、按键开关、数码管与FPGA 的管脚连接在以前的实验中都做了详细说明,这里不在赘述。

交通灯模块原理与LED 灯模块的电路原理一致,当有高电平输入时LED 灯就会被点亮,反之不亮。

只是LED 发出的光有颜色之分。

其与FPGA 的管脚连接如下表19-1 所示:四、实验步骤1、打开QUARTUSII 软件,新建一个工程。

2、建完工程之后,再新建一个VHDL File,打开VHDL 编辑器对话框。

3、按照实验原理和自己的想法,在VHDL 编辑窗口编写VHDL 程序,用户可参照光盘中提供的示例程序。

4、编写完VHDL 程序后,保存起来。

(1)-jtdkz.vhdlibrary ieee;use ieee.std_logic_1164.all;entity jtdkz isport(clk,sm,sb:in std_logic;mr,my0,mg0,br,by0,bg0:out std_logic);end entity jtdkz;architecture art of jtdkz istype state_type is(A,B,C,D);signal state:state_type;begint:process(clk) isvariable s:integer range 0 to 45;variable clr,en:bit;beginif(clk'event and clk='1')thenif clr='0'then s:=0;elsif en='0' then s:=s;else s:=s+1;end if;case state iswhen A=>mr<='0';my0<='0';mg0<='1';br<='1';by0<='0';bg0<='0';if(sb and sm)='1' thenif s=45 then state<= B;clr:='0';en:='0';else state<=A;clr:='1';en:='1';end if;elsif(sb and(not sm))='1'then state<=B;clr:='0';en:='0';else state<=A;clr:='1';en:='1';end if;when B=>mr<='0';my0<='1';mg0<='0';br<='1';by0<='0';bg0<='0';if s=5 then state<=C;clr:='0';en:='0';else state<=B;clr:='1';en:='1';end if;when C=>mr<='1';my0<='0';mg0<='0';br<='0';by0<='0';bg0<='1';if(sb and sm)='1' thenif s=25 then state<= D;clr:='0';en:='0';else state<=C;clr:='1';en:='1';end if;elsif sb='0' then state<=D;clr:='0';en:='0';else state<=C;clr:='1';en:='1';end if;when D=>mr<='1';my0<='0';mg0<='0';br<='0';by0<='1';bg0<='0';if s=5 then state<=A;clr:='0';en:='0';else state<=D;clr:='1';en:='1';end if;end case;end if;end process t;end architecture art;(2)cskz.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cskz isport(ina:in std_logic;outa:out std_logic);end entity cskz;architecture art of cskz isbeginprocess(ina) isbeginif ina='1' then outa<='1';else outa<='0';end if;end process;end architecture art;(3)—t45s.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t45s isport(sb,clk,en45:in std_logic;dout45m,dout45b:out std_logic_vector(7 downto 0)); end entity t45s;architecture art of t45s issignal t6b:std_logic_vector(5 downto 0);beginprocess(sb,clk,en45)isbeginif sb='0'then t6b<=t6b-t6b-1;elsif(clk'event and clk='1')thenif en45='1'then t6b<=t6b+1;elsif en45='0' then t6b<=t6b-t6b-1;end if;end if;end process;process(t6b)isbegincase t6b iswhen "000001"=>dout45m<="01000100";dout45b<="01001001"; when "000010"=>dout45m<="01000011";dout45b<="01001000"; when "000011"=>dout45m<="01000010";dout45b<="01000111"; when "000100"=>dout45m<="01000001";dout45b<="01000110"; when "000101"=>dout45m<="01000000";dout45b<="01000101"; when "000110"=>dout45m<="00111001";dout45b<="01000100"; when "000111"=>dout45m<="00111000";dout45b<="01000011"; when "001000"=>dout45m<="00110111";dout45b<="01000010"; when "001001"=>dout45m<="00110110";dout45b<="01000001"; when "001010"=>dout45m<="00110101";dout45b<="01000000"; when "001011"=>dout45m<="00110100";dout45b<="01101001"; when "001100"=>dout45m<="00110011";dout45b<="00111000"; when "001101"=>dout45m<="00110010";dout45b<="00110111"; when "001110"=>dout45m<="00110001";dout45b<="00110110"; when "001111"=>dout45m<="00110000";dout45b<="00110101"; when "010000"=>dout45m<="00101001";dout45b<="00110100"; when "010001"=>dout45m<="00101000";dout45b<="00110011"; when "010010"=>dout45m<="00100111";dout45b<="00110010"; when "010011"=>dout45m<="00100110";dout45b<="00110001"; when "010100"=>dout45m<="00100101";dout45b<="00110000"; when "010101"=>dout45m<="00100100";dout45b<="00101001"; when "010110"=>dout45m<="00100011";dout45b<="00101000"; when "010111"=>dout45m<="00100010";dout45b<="00100111"; when "011000"=>dout45m<="00100001";dout45b<="00100110"; when "011001"=>dout45m<="00100000";dout45b<="00100101"; when "011010"=>dout45m<="00011001";dout45b<="00100100"; when "011011"=>dout45m<="00011000";dout45b<="00100011"; when "011100"=>dout45m<="00010111";dout45b<="00100010"; when "011101"=>dout45m<="00010110";dout45b<="00100001"; when "011110"=>dout45m<="00010101";dout45b<="00100000"; when "011111"=>dout45m<="00010100";dout45b<="00011001"; when "100000"=>dout45m<="00010011";dout45b<="00011000"; when "100001"=>dout45m<="00010010";dout45b<="00010111"; when "100010"=>dout45m<="00010001";dout45b<="00010110"; when "100011"=>dout45m<="00010000";dout45b<="00010101"; when "100100"=>dout45m<="00001001";dout45b<="00010100"; when "100101"=>dout45m<="00001000";dout45b<="00010011"; when "100110"=>dout45m<="00000111";dout45b<="00010010"; when "100111"=>dout45m<="00000110";dout45b<="00010001"; when "101000"=>dout45m<="00000101";dout45b<="00010000"; when "101001"=>dout45m<="00000100";dout45b<="00001001"; when "101010"=>dout45m<="00000011";dout45b<="00001000"; when "101011"=>dout45m<="00000010";dout45b<="00000111";when others=>dout45m<="00000000";dout45b<="00000000"; end case;end process;end architecture art;(4)t05s.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t05s isport(clk,en05m,en05b:in std_logic;dout5:out std_logic_vector(7 downto 0));end entity t05s;architecture art of t05s issignal t3b:std_logic_vector(2 downto 0);beginprocess(clk,en05m,en05b)isbeginif(clk'event and clk='1')thenif en05m='1'then t3b<=t3b+1;elsif en05b='1'then t3b<=t3b+1;elsif en05b='0'then t3b<=t3b-t3b-1;end if;end if;end process;process(t3b)isbegincase t3b iswhen "000"=>dout5<="00000101";when "001"=>dout5<="00000100";when "010"=>dout5<="00000011";when "011"=>dout5<="00000010";when "100"=>dout5<="00000001";when others=>dout5<="00000000";end case;end process;end architecture art;(5)—t25s.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t25s isport(sb,sm,clk,en25:in std_logic;dout25m,dout25b:out std_logic_vector(7 downto 0)); end entity t25s;architecture art of t25s issignal t5b:std_logic_vector(4 downto 0);beginprocess(sb,sm,clk,en25)isbeginif sb='0'then t5b<=t5b-t5b-1;elsif sm='0' then t5b<=t5b-t5b-1;elsif(clk'event and clk='1') thenif en25='1' then t5b<=t5b+1;elsif en25='0' then t5b<=t5b-t5b-1;end if;end if;end process;process(t5b)isbegincase t5b iswhen "00000"=>dout25b<="00100101";dout25m<="00110000";when "00001"=>dout25b<="00100100";dout25m<="00101001";when "00010"=>dout25b<="00100011";dout25m<="00101000";when "00011"=>dout25b<="00100010";dout25m<="00100111";when "00100"=>dout25b<="00100001";dout25m<="00100110";when "00101"=>dout25b<="00100000";dout25m<="00100101";when "00110"=>dout25b<="00011001";dout25m<="00100100";when "00111"=>dout25b<="00011000";dout25m<="00100011";when "01000"=>dout25b<="00010111";dout25m<="00100010";when "01001"=>dout25b<="00010110";dout25m<="00100001";when "01010"=>dout25b<="00010101";dout25m<="00100000";when "01011"=>dout25b<="00010100";dout25m<="00011001";when "01100"=>dout25b<="00010011";dout25m<="00011000";when "01101"=>dout25b<="00010010";dout25m<="00010111";when "01110"=>dout25b<="00010001";dout25m<="00010110";when "01111"=>dout25b<="00010000";dout25m<="00010101";when "10000"=>dout25b<="00001001";dout25m<="00010100";when "10001"=>dout25b<="00001000";dout25m<="00010011";when "10010"=>dout25b<="00000111";dout25m<="00010010";when "10011"=>dout25b<="00000110";dout25m<="00010001";when "10100"=>dout25b<="00000101";dout25m<="00010000";when "10101"=>dout25b<="00000100";dout25m<="00010001";when "10110"=>dout25b<="00000011";dout25m<="00001000";when "10111"=>dout25b<="00000010";dout25m<="00000111";when "11000"=>dout25b<="00000001";dout25m<="00000110";when others=>dout25b<="00000000";dout25m<="00000000";end case;end process;end architecture art;(6)—xskz.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xskz isport(en45,en25,en05m,en05b:in std_logic;ain45m,ain45b,ain25m,ain25b,ain05:in std_logic_vector(7 downto 0); doutm,doutb:out std_logic_vector(7 downto 0));end entity xskz;architecture art of xskz isbeginprocess(en45,en25,en05m,en05b,ain45m,ain45b,ain25m,ain25b,ain05)is beginif en45='1'then doutm<=ain45m(7 downto 0);doutb<=ain45b(7 downto 0); elsif en05m='1'then doutm<=ain05(7 downto 0);doutb<=ain05(7 downto 0); elsif en25='1'then doutm<=ain25m(7 downto 0);doutb<=ain25b(7 downto 0); elsif en05b='1'then doutm<=ain05(7 downto 0);doutb<=ain05(7 downto 0); end if;end process;end architecture art;(7)—ymq.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ymq isport(clk:in std_logic;ain41,ain42,ain43,ain44:in std_logic_vector(3 downto 0);del:out std_logic_vector(2 downto 0);dout7:out std_logic_vector(6 downto 0));end entity ymq;architecture art of ymq issignal ain4: std_logic_vector(3 downto 0);signal t: std_logic_vector(2 downto 0);beginprocess(clk)beginif clk'event and clk='1' thenif t="011" thent<="000";elset<=t+1;end if;end if;end process;process(t,ain41,ain42,ain43,ain44)begincase t iswhen "000" => ain4<=ain41; del<="111";when "001" => ain4<=ain42; del<="110";when "010" => ain4<=ain43; del<="101";when "011" => ain4<=ain44; del<="100";when "100" => ain4<=ain41; del<="000";when "101" => ain4<=ain41; del<="000";when "110" => ain4<=ain41; del<="000";when "111" => ain4<=ain41; del<="000";end case;end process;process(ain4)isbegincase ain4 iswhen "0000"=>dout7<="0111111";when "0001"=>dout7<="0000110";when "0010"=>dout7<="1011011";when "0011"=>dout7<="1001111";when "0100"=>dout7<="1100110";when "0101"=>dout7<="1101101";when "0110"=>dout7<="1111101";when "0111"=>dout7<="0000111";when "1000"=>dout7<="1111111";when "1001"=>dout7<="1101111";when others=>dout7<="0000000";end case;end process;end architecture art;(8)—jtkzq.vhdlibrary ieee;use ieee.std_logic_1164.all;entity jtkzq isport(clk,sm,sb:in std_logic;mr,mg,my,by,br,bg:out std_logic;del1:out std_logic_vector(2 downto 0);dout:out std_logic_vector(6 downto 0));end entity jtkzq;architecture art of jtkzq isponent div_clk isport(clk : in std_logic;clk1:out std_logic);end ponent div_clk;ponent jtdkz isport(clk,sm,sb:in std_logic;mr,my0,mg0,br,by0,bg0:out std_logic); end ponent jtdkz;ponent cskz isport(ina:in std_logic;outa:out std_logic);end ponent cskz;ponent t45s isport(sb,clk,en45:in std_logic;dout45m,dout45b:out std_logic_vector(7 downto 0));end ponent t45s;ponent t05s isport(clk,en05m,en05b:in std_logic;dout5:out std_logic_vector(7 downto 0));end ponent t05s;ponent t25s isport(sb,sm,clk,en25:in std_logic;dout25m,dout25b:out std_logic_vector(7 downto 0));end ponent t25s;ponent xskz isport(en45,en25,en05m,en05b:in std_logic;ain45m,ain45b,ain25m,ain25b,ain05:in std_logic_vector(7 downto 0);doutm,doutb:out std_logic_vector(7 downto 0));end ponent xskz;ponent ymq isport(clk:in std_logic;ain41,ain42,ain43,ain44:in std_logic_vector(3 downto 0);del:out std_logic_vector(2 downto 0);dout7:out std_logic_vector(6 downto 0));end ponent ymq;signal clk11:std_logic;signal en1,en2,en3,en4:std_logic;signal s45m,s45b,s05,s25m,s25b:std_logic_vector(7 downto 0);signal ym1,ym2,ym3,ym4:std_logic_vector(3 downto 0);beginu1:div_clk port map(clk=>clk,clk1=>clk11);u2:jtdkz portmap(clk=>clk11,sm=>sm,sb=>sb,mr=>mr,my0=>en2,mg0=>en1,br=>br,by0=>en4,bg0=>en3); u3:cskz port map(ina=>en1,outa=>mg);u4:cskz port map(ina=>en2,outa=>my);u5:cskz port map(ina=>en3,outa=>bg);u6:cskz port map(ina=>en4,outa=>by);u7:t45s port map(clk=>clk11,sb=>sb,en45=>en1,dout45m=>s45m,dout45b=>s45b);u8:t05s port map(clk=>clk11,en05m=>en2,dout5=>s05,en05b=>en4);u9:t25s port map(clk=>clk11,sm=>sm,sb=>sb,en25=>en3,dout25m=>s25m,dout25b=>s25b);u10:xskz portmap(en45=>en1,en05m=>en2,en25=>en3,en05b=>en4,ain45m=>s45m,ain45b=>s45b,ain25m=>s25 m,ain25b=>s25b,ain05=>s05,doutm(3 downto 0)=>ym1,doutm(7 downto 4)=>ym2,doutb(3 downto 0)=>ym3,doutb(7 downto 4)=>ym4);u11:ymq portmap(clk=>clk,ain41=>ym1,ain42=>ym2,ain43=>ym3,ain44=>ym4,del=>del1,dout7=>dout);end architecture art;(9)—div_clk.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div_clk isport(clk : in std_logic;clk1:out std_logic);end div_clk;architecture behav of div_clk issignal t:integer range 1000 downto 0;beginprocess(clk)beginif clk'event and clk='1' thenif t=999 thent<=0;elset<=t+1;end if;if t<500 thenclk1<='0';elseclk1<='1';end if;end if;end process;end behav;5 引脚分配6 实验现象当主、支道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5s的黄灯作为过度,并进行减计时显示。

相关文档
最新文档