交通灯控制器的设计与实现

合集下载

交通灯控制器的设计与实现

交通灯控制器的设计与实现

<交通灯控制器的设计和实现>学生姓名:旭班级学号:133指导老师:实验3一.实验名称:交通灯控制器的设计和实现二.实验学时:6学时三.实验目的1)了解交通灯管理的基本工作原理。

2)熟悉计数器/定时器的工作方式及使用编程。

3)掌握多位LED显示的方法。

四.实验内容设计一个用于十字路口的交通灯控制器。

基本要求:A和B方向各有一组红、黄、绿灯用于指挥交通,红、黄、绿的持续时间分别为25s,5s,20s。

当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。

一组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。

五.实验仪器1.PC机2.数字系统设计实验开发板六.实验步骤1.实验时序分析:本实验所设计的交通信号控制器,适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。

交通灯的闪亮时序关系如图1所示,当B方向的红灯亮时,A方向对应绿灯亮,而后由绿灯转换为黄灯,即B方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。

同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。

各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。

当出现特殊情况时,各方向上均亮红灯,倒计时停止。

特殊运行状态结束后,控制器恢复原来的状态,继续运行。

图1. 交通灯的时序分析2.系统设计思路:整个系统设计如图2所示,该系统主要由分频模块、计数模块、数码管显示控制模块、交通灯控制模块以及显示电路设备组成。

其中分频模块主要将系统输入的基准时钟信号转换为1 Hz以及适应于数码管显示的的激励信号,驱动计数模块和两个控制模块工作。

两个控制模块根据计数器的计数情况对交通灯的亮灭及数码管的显示时间进行控制。

对于紧急情况,只需在计数模块中添加一个控制功能HOLD,当HOLD=1时,计数功能暂停。

图2. 交通灯系统模块图3.具体步骤3.1.根据实验要求作预习报告。

智能交通灯控制系统的设计与实现

智能交通灯控制系统的设计与实现

智能交通灯控制系统的设计与实现随着城市化进程的加速,城市道路交通越来越拥堵,交通管理成为城市发展的一个重要组成部分。

传统的交通信号灯只具备固定时序控制交通流量的功能,但随着技术的进步和智能化应用的出现,要求交通信号灯具备实时性、自适应性和智能化,因此,智能交通信号灯控制系统应运而生。

本文将从软硬件系统方面,详细介绍智能交通灯控制系统的设计与实现。

一、硬件设计智能交通灯控制系统的硬件部分由四个部分组成:单片机系统、交通灯控制器、传感器及联网模块。

1. 单片机系统单片机是智能交通灯控制系统的核心,该系统选用了8位单片机,主要实现红绿灯状态的自适应和切换。

在设计时,需要根据具体情况选择型号和板子,选择时需要考虑其开发环境、风险和稳定性等因素。

2. 交通灯控制器交通灯控制器是智能交通灯控制系统中的另一个重要部分,主要实现交通信号的灯光控制。

在控制器的设计时,需要考虑网络连接、通信、数据传输等多方面因素,确保系统的稳定性和可靠性。

3. 传感器传感器主要负责采集道路交通信息,包括车辆数量、速度、方向和道路状态等,从而让智能交通灯控制系统更好地运作。

传感器有多种类型,包括磁感应传感器、摄像头、光电传感器等,需要根据实际需求选择。

4. 联网模块联网模块主要负责智能交通灯控制系统的联网和数据传输,包括存储和处理车流数据、上传和下载数据等。

在设计时,需要考虑网络连接的稳定性、数据安全等因素,确保智能交通灯控制系统的连续性和可靠性。

二、软件设计智能交通灯控制系统的软件部分主要由两部分组成:嵌入式系统和上位机系统。

1. 嵌入式系统嵌入式系统是智能交通灯控制系统的主体,主要设计车流量检测、信号灯状态切换等程序。

为了保证系统的自适应性和实时性,需要采用实时操作系统,如FreeRTOS等。

在软件设计阶段,需要注意设计合理的算法和模型,确保系统的准确性和稳定性。

2. 上位机系统上位机系统主要实现智能交通灯控制系统的监控和管理,包括车流量监控、灯光状态监控、信号灯切换和日志记录等。

交通灯控制系统设计与实现

交通灯控制系统设计与实现

交通灯控制系统设计与实现一、引言交通灯控制系统作为城市交通管理的重要组成部分,具有极为重要的意义。

在繁忙的城市交通系统中,交通灯控制系统具有极为广泛的应用和推广前景。

本文将从交通灯控制系统的设计和实现两方面,介绍交通灯控制系统的相关知识。

二、交通灯的工作原理交通灯是红、黄、绿三种颜色灯组成,交通信号灯之间呈现循环变化的状态。

交通灯控制系统是通过循环控制交通信号灯的轮流变化,使交通流动实现交通安全、高效、和人性化控制的一种技术策略。

通常情况下,交通灯控制系统需要考虑到下列各方面的问题:(1) 交通的流量与密度;(2) 不同时间段的交通情况;(3) 特定时间段的出行方式;(4) 环境污染的程度和治理效果;(5) 指挥的响应速度;(6) 各种自然因素和人为因素的影响;(7) 交通信号灯牵引作用;(8) 交通流量的正常工作。

三、设计交通灯控制系统设计交通灯控制系统时,可以基于一些先进的技术和具体方法来制定需要的计划。

具体的步骤如下所示:(1) 采用先进的通信技术。

用传统的通信方式难以满足现代交通灯控制系统对实时性、可控性等方面的需求,采用先进通讯技术如RS485协议和INTERNET等,实现集中管理、遥控、实时监测、故障排除、性能监测等功能。

(2) 设计灵活优雅的应急切换方案。

针对交通信号灯故障、人群聚集等行为,灵活应对便是好的系统设计情况。

(3) 运用智能优化算法。

在交通信号灯控制问题中,大量算法的应用势在必行,利用先进的算法方法来对不同的情况进行分析和决策,以达到可能的最优化方案。

(4) 设计集中的管理平台为方便管理,交通灯控制系统要实现集中控制和管理。

通过建立中心管理平台,实现统一的控制、统一的管理、统一的监测和统一的调度,从而达到整个系统有组织、有序的管理。

四、实现交通灯控制系统在实现交通灯控制系统时,采用智能化管理几时一大重要法宝。

1、采用智能化交通信号灯技术。

为了保证交通信号灯的正常工作,需要采用先进的交通信号灯技术保证其正常工作。

交通灯控制器设计

交通灯控制器设计

交通灯控制器随着各种交通工具的发展和交通指挥的需要,交通灯的诞生大大改善了城市交通状况。

本题将设计一个交通控制器,控制十字路口主、支两条道路的红、绿、黄三色灯,指挥车辆和行人安全通行。

一、 系统设计要求设计一个十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。

用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的红、黄、绿灯。

变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮,南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮……,这样依次循环。

南北方向是主干道车道,东西方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒,支干道每次通行时间为20秒,时间可设置修改。

在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。

要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生在时钟脉冲的上升沿处。

主路主路支路支路二、 系统设计方案根据交通灯系统设计要求,可以用一个有限状态机来实现这个交通灯控制器。

首先根据功能要求,明确两组交通灯的状态,这两组交通灯总共有四种状态,我们用st0,st1,st2,st3来表示:st0表示主路绿灯亮、支路红灯亮;st1表示主路黄灯亮、支路红灯亮;st2表示主路红灯亮、支路绿灯亮;st3表示主路红灯亮、支路黄灯亮;根据上述四种状态描述列出的状态转换表如下:三、VHDL编程交通灯控制器系统的VHDL有限状态机实现如下:Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY traffic_ctrl ISGENERIC ( green1_cnt: INTEGER:=25; --定义主通道绿灯亮的时间yellow1_cnt: INTEGER:= 5; --定义主通道黄灯亮的时间green2_cnt: INTEGER:=15; --定义支路绿灯亮的时间yellow2_cnt: INTEGER:= 5); --定义支路黄灯亮的时间); PORT ( clk : IN STD_LOGIC;reset : IN STD_LOGIC;lgt1_red: OUT STD_LOGIC; --主通道红、黄、绿灯控制信号lgt1_yellow: OUT STD_LOGIC;lgt1_green: OUT STD_LOGIC;lgt2_red: OUT STD_LOGIC; --支路红、黄、绿灯控制信号lgt2_yellow: OUT STD_LOGIC;lgt2_green: OUT STD_LOGIC);END ENTITY traffic_ctrl;ARCHITECTURE rtl OF traffic_ctrl ISTYPE STATES IS --定义枚举类型,描述状态机各状态(st0, st1, st2, st3);SIGNAL state: STATES:=st0; --初始化状态SIGNAL cnt: integer range 0 to 30 :=1; --定义计数器SIGNAL cnt_enb: std_logic :='0'; --初始化计数器使能信号BEGINPROCESS (RESET, CLK) --当敏感信号RESET和CLK发生变化时,启动进程BEGINIF RESET='1' THEN --如果清零信号为有效state<=st0;cnt<=1;ELSIF (rising_edge(clk)) thenIF (cnt_enb='1') THEN --计数器计数cnt<=cnt+1;ELSEcnt<=1;end if;CASE state ISWHEN st0=> --主通道绿灯亮了一段时间时转换状态st1 IF (cnt=green1_cnt) THENstate<=st1;cnt<=1;ELSE state<=st0;END IF;WHEN st1=> --主通道黄灯亮了一段时间时转换状态st2 IF (cnt=yellow1_cnt) THENstate<=st2;cnt<=1;ELSE state<=st1;END IF;WHEN st2=> --支路绿灯亮了一段时间时转换状态st3 IF (cnt=green2_cnt) THENstate<=st3;cnt<=1;ELSE state<=st2;END IF;WHEN st3=> --支路黄灯亮了一段时间时转换状态st0 IF (cnt=yellow2_cnt) THENstate<=st0;cnt<=1;ELSE state<=st3;END IF;END CASE;END IF;END PROCESS;PROCESS (state)BEGINCASE state ISWHEN st0=> --st0表示主路绿灯亮、支路红灯亮lgt1_red<='0';lgt1_yellow<='0';lgt1_green<='1';lgt2_red<='1';lgt2_yellow<='0';lgt2_green<='0';cnt_enb<='1';IF(cnt=green1_cnt) then cnt_enb<='0';END if;WHEN st1=> --st1表示主路黄灯亮、支路红灯亮lgt1_red<='0';lgt1_yellow<='1';lgt1_green<='0';lgt2_red<='1';lgt2_yellow<='0';lgt2_green<='0';cnt_enb<='1';IF(cnt=yellow1_cnt) then cnt_enb<='0';END if;WHEN st2=> --st2示主路红灯亮、支路绿灯?lgt1_red<=’1’;lgt1_yellow<='0';lgt1_green<='0';lgt2_red<='0';lgt2_yellow<='0';lgt2_green<='1';cnt_enb<='1';IF(cnt=green2_cnt) then cnt_enb<='0';END if;WHEN st3=> --st3表示主路红灯亮、支路黄灯亮lgt1_red<='1';lgt1_yellow<='0';lgt1_green<='0';lgt2_red<='0';lgt2_yellow<='1';lgt2_green<='0';cnt_enb<='1';IF(cnt=yellow2_cnt) then cnt_enb<='0';END if;END CASE;END PROCESS;END rtl;。

交通信号灯控制系统的设计与实现

交通信号灯控制系统的设计与实现

交通信号灯控制系统的设计与实现摘要交通信号灯控制系统是指以交通信号灯控制交通信号的方式来管理交通流量的自动控制系统。

它可以智能控制交通信号,减少车辆等待时间和拥堵,提高交通效率。

本文介绍如何设计和实现交通信号灯控制系统,包括硬件系统、软件系统以及调试和应用方法。

硬件系统主要包括控制器、信号灯、配件等;软件系统主要涉及软件设计、编程、系统测试等;调试和应用方法主要包括调度参数调整、信号灯动态调整等。

最后,本文提出一个示例,介绍了交通信号灯控制系统的设计与实现过程。

IntroductionHardware SystemThe hardware system of traffic signal control system consists of controller, signal lights, accessories, etc. The controller is the brain of the system, and is responsible for processing, controlling and managing the signals. Signal lights are the indicators of the system. They indicate the color and length of the signal, so that drivers can understand the signal instructions. Accessories are required to protect the system and ensure its normal and safe operation.Software SystemDebug and Application MethodsDebug and application methods mainly include adjusting the dispatch parameters, dynamic adjustment of the signal lights, etc. Before the official opening of the system, the dispatcher needs to adjust the dispatch parameters according to thepractical circumstances. Then, the signal lights need to be dynamically adjusted in the process of use, so as to optimizethe traffic signal control and improve the traffic efficiency.ExampleA typical example of the design and implementation processof traffic signal control system is presented in this paper. In this example, the signal lights can be divided into three phases: red light, green light and yellow light. The control system can adjust the length of each phase according to the traffic flow in the control area, thereby optimizing the traffic signal control.ConclusionTraffic signal control system is an automatic control system for traffic flow management. This paper introduces how to design and implement traffic signal control system, including hardware system, software system, debug and application methods. Finally, a typical example is presented to illustrate the design and implementation process of traffic signal control system.。

智能交通灯控制系统的设计与实现

智能交通灯控制系统的设计与实现

智能交通灯控制系统的设计与实现一、引言随着城市交通的不断拥堵,智能交通灯控制系统的设计与实现成为改善交通流量、减少交通事故的关键。

本文将对智能交通灯控制系统的设计原理和实际应用进行深入探讨。

二、智能交通灯控制系统的设计原理智能交通灯控制系统的设计原理主要包括实时数据收集、交通流量分析和信号灯控制决策三个方面。

2.1 实时数据收集智能交通灯控制系统通过传感器、摄像头等设备实时采集车辆和行人的信息,包括车辆数量、车速、行人密度等。

这些数据可以通过无线通信技术传输到中央服务器进行处理。

2.2 交通流量分析在中央服务器上,通过对实时数据进行分析处理,可以得到不同道路的交通流量情况。

交通流量分析可以包括车辆流量、行人流量、车速和拥堵程度等指标,为后续的信号灯控制提供依据。

2.3 信号灯控制决策基于交通流量分析结果,智能交通灯控制系统可以根据交通状况智能地决定信号灯的开启和关闭时间。

优化的信号灯控制策略可以使车辆和行人的通行效率达到最大化。

三、智能交通灯控制系统的实现智能交通灯控制系统的实现需要使用计算机技术、通信技术和物联网技术等多种技术手段。

3.1 计算机技术的应用智能交通灯控制系统中的中央服务器需要配置高性能的计算机系统,以支持实时数据的处理和交通流量分析。

同时,通过计算机系统可以实现信号灯控制策略的优化算法。

3.2 通信技术的应用智能交通灯控制系统需要使用通信技术实现各个交通灯和中央服务器之间的数据传输。

传统的有线通信和无线通信技术都可以应用于智能交通灯控制系统中,以实现数据的实时传输。

3.3 物联网技术的应用智能交通灯控制系统可以通过物联网技术实现与交通工具和行人之间的连接。

车辆和行人可以通过智能终端设备向交通灯发送信号,交通灯可以实时地根据这些信号做出相应的决策。

四、智能交通灯控制系统的实际应用智能交通灯控制系统已经在一些城市得到了广泛的应用。

4.1 交通拥堵减少智能交通灯控制系统根据实时的交通流量情况,可以合理地分配交通信号灯的开启和关闭时间,从而避免了交通拥堵现象的发生,提高了道路的通行效率。

交通灯控制系统的设计

交通灯控制系统的设计

交通灯控制系统的设计概述交通灯控制系统是城市交通管理中至关重要的一项技术,它通过控制交通信号灯的亮灭来指示交通参与者何时停车和何时通行,以提高交通流量的效率,确保交通的安全和顺畅。

本文将以设计一个交通灯控制系统为例,讨论其设计思路和实现方式。

设计需求交通灯控制系统的设计需求取决于实际交通情况和需求。

以下是常见的设计需求:1.交通流量感知:交通灯控制系统需要能够感知不同交通道路上的车辆数量和流量,以便合理控制交通灯的切换时间和灯光模式。

2.交通优先级:根据不同道路上的交通流量和优先级,交通灯控制系统需要能够分配不同的红绿灯时间,以确保主干道交通更为畅通。

3.切换时间调整:交通灯控制系统应具备动态调整红绿灯切换时间的能力,以适应交通流量的变化。

4.故障处理:当交通灯控制系统发生故障时,应能够及时进行故障检测和处理,以避免交通堵塞和事故的发生。

设计思路基于上述设计需求,交通灯控制系统的设计思路可以分为以下几个步骤:步骤一:交通流量感知首先,交通灯控制系统需要通过各种传感器,如车辆检测器、图像识别等技术来感知交通道路上的车辆数量和流量。

这些传感器将收集的数据传输给控制器,供后续的决策和控制使用。

步骤二:交通信号优化根据感知到的交通流量数据和交通道路的优先级,交通灯控制系统需要通过算法来计算每个交通灯的红绿灯时长。

这里可以采用优化算法,如遗传算法、模拟退火算法等,以求得最优的交通信号时长。

步骤三:交通灯控制基于计算得到的红绿灯时长,交通灯控制系统通过控制相应交通灯的电路来实现交通信号的切换。

通常情况下,交通灯的控制可以使用微控制器或嵌入式系统来实现。

步骤四:切换时间自适应为了适应交通流量的变化,交通灯控制系统应具备动态调整红绿灯切换时间的功能。

可以通过定期或实时地对交通流量进行检测,并根据检测结果来自动调整红绿灯时长。

步骤五:故障处理当交通灯控制系统发生故障时,系统应该有能力进行故障检测和处理。

可以通过设置故障检测机制,如监控交通灯状态和通信链路的稳定性,以及设置故障恢复机制,如系统重启或切换到备份控制器等方式来应对和解决故障。

交通灯的设计与实现

交通灯的设计与实现

一、设计任务设计一个十字路口的红、绿、黄三色信号交通灯控制电路,具体要求如下:1)用红、绿、黄三色发光二极管作信号灯。

主干道为东西向,有红、绿、黄三个灯;另一支干道为南北向,也有红、绿、黄三个灯。

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

2)东西和南北每次绿灯放行26s,红灯禁止30s。

在每次由亮绿灯变成亮红灯的转换过程中间,需要亮5s的黄灯作为过渡,以使行驶中的车辆有时间停靠到禁行线以外。

3)能实现正常的、即时显示功能,用实验箱上的4个七段数码管作为到计时显示器,分别显示东西、南北方向的红灯、绿灯、黄灯时间。

二、设计原理首先要对时钟进行分频。

由于系统时钟频率比较大,因此首先分频产生时钟,用于下面的电路的控制;然后是各种颜色之间的转换,在此在添加一个使能端en,当使能端en为1的时候,就开始进行状态循环以及倒计时,然后en就立即变为0;在状态机中一共有四个状态,如下图所示:然后,我们这里用了BCD码表示倒计时时间。

灯亮或闪烁时间(绿、黄、红分别为26s、130s、5s)用BCD码表示(分别为26h、30h、5h),倒计时的时候个位和十位分别是BCD码的高四位和低四位,首先是低四位倒数,当倒数到0时,给它重新赋值为9,且高四位减1,如此循环,直到这个数减到0,此时表示某一个灯亮的时间到,接着进行下一个状态,为了能使进入下一个状态,必须在时间减到0的时候,给使能端en 赋值1;由于用的BCD码,高四位和低四位就分别是我们要在译码模块的要用数码管显示的十位和个位。

用数据选择器来控制东西、南北的灯亮。

三、程序流程图1.1分频器的设计流程图1.2 5进制的设计流程图1.3 30进制的设计流程图1.4 26进制的设计流程图1.5 状态机的程序流程图四、程序设计1、5进制的设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jinzhi5 isport(clk,en,rst:in std_logic;ge,shi: out std_logic_vector(3 downto 0);cout:out std_logic);end jinzhi5;architecture behav of jinzhi5 isbeginprocess(clk,en)variable a,b: std_logic_vector(3 downto 0);beginif(rst='0') then a:="0101";b:="0000"elsif clk'event and clk='1' thenif(en='1') thenif(a=0) then a:="0101";b:="0000",cout<='1';else a:=a-1;b:="0000",cout<='0';end if;end if;end if;ge<=a;shi<=b;end process;end behav;仿真结果2、26进制的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jinzhi26 isport(clk,en:in std_logic;ge: out std_logic_vector(3 downto 0);shi: out std_logic_vector(3 downto 0);cout:out std_logic);end jinzhi26;architecture behav of jinzhi26 isbeginprocess(clk,en)variable a: std_logic_vector(3 downto 0);variable b: std_logic_vector(3 downto 0);beginif(en='0') then a:="0010";b:="0101";elsif clk'event and clk='1' thenif(a=0 and b=0) then a:="0010";b:="0101";cout<='1';else if(b=0) then b:="1001";a:=a-1;else b:=b-1;cout<='0';end if;end if;end if;ge<=b;shi<=a;end process;end behav;仿真结果3、30进制的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jinzhi30 isport(clk,en,rst:in std_logic;ge: out std_logic_vector(3 downto 0);shi: out std_logic_vector(3 downto 0);cout:out std_logic);end jinzhi30;architecture behav of jinzhi30 isbeginprocess(clk,en)variable a: std_logic_vector(3 downto 0);variable b: std_logic_vector(3 downto 0);beginif(rst='0') then a:="0000";b:="0000";elsif clk'event and clk='1' thenif en='1' thenif(a=0 and b=0) then a:="0011";b:="0000";cout<='1';else if(b=0) then b:="1001";a:=a-1;else b:=b-1;cout<='0';end if;end if;end if;end if;ge<=b;shi<=a;end process;end behav;仿真结果4、10M分频器的设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin20 isport(clk:in std_logic;c:out std_logic);end fenpin10;architecture art of fenpin10 issignal m: std_logic_vector(31 downto 0);signal c1:std_logic;beginprocess(clk)beginif rising_edge(clk) thenif m<4999999 thenm<=m+1;else m<=(others=>'0');c1<=not c1;end if;end if;c<=c1;end process;end art;仿真结果5、译码器的程序设计电路中需要4个译码器来显示东西、南北的亮灯时间。

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

<交通灯控制器的设计与实现>
学生姓名:旭
班级学号:133
指导老师:
实验3
一.实验名称:交通灯控制器的设计与实现
二.实验学时:6学时
三.实验目的
1)了解交通灯管理的基本工作原理。

2)熟悉计数器/定时器的工作方式及应用编程。

3)掌握多位LED显示的方法。

四.实验内容
设计一个用于十字路口的交通灯控制器。

基本要求:
A和B方向各有一组红、黄、绿灯用于指挥交通,红、黄、绿的持续时间分别为25s,5s,20s。

当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。

一组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。

五.实验仪器
1.PC机
2.数字系统设计实验开发板
六.实验步骤
1.实验时序分析:
本实验所设计的交通信号控制器,适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。

交通灯的闪亮时序关系如图1所示,当B方向的红灯亮时,A方向对应绿灯亮,而
后由绿灯转换为黄灯,即B方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。

同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。

各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。

当出现特殊情况时,各方向上均亮红灯,倒计时停止。

特殊运行状态结束后,控制器恢复原来的状态,继续运行。

图1. 交通灯的时序分析
2.系统设计思路:
整个系统设计如图2所示,该系统主要由分频模块、计数模块、数码管显示控制模块、交通灯控制模块以及显示电路设备组成。

其中分频模块主要将系统输入的基准时钟信号转换为1 Hz以及适应于数码管显示的的激励信号,驱动计数模块和两个控制模块工作。

两个控制模块根据计数器的计数情况对交通灯的亮灭及数码管的显示时间进行控制。

对于紧急情况,只需在计数模块中添加一个控制功能HOLD,当HOLD=1时,计数功能暂停。

图2. 交通灯系统模块图
3.具体步骤
3.1.根据实验要求作预习报告。

3.2.建立工程,设计程序:
1)新建工程;
2)新建verilog HDL文件(注:文件名和模块名称要和工程名保持一致)。

3)调试程序:见实验附录
3.3. 配置管脚:
参照实验指导中的管脚图,配置管脚。

3.4.下载到开发板,观察实验结果,尝试创造自己的实验方案:
3.5.完成实验报告。

七.实验结果
八.实验附录
代码:
module shiyan3(clk,led_dig,led_seg,ji);//led_seg 0是a,7位是g 1亮//led_dig 从左到右0亮//20*10 '6 HZ
input ji,clk;
output led_dig,led_seg;
reg[0:7]led_dig;
reg[0:7]led_seg;
integer shu;
reg oneHz;
reg [0:7]a;
reg [0:3]ge;
reg [0:3]shi;
reg [0:3]ge1;
reg [0:3]shi1;
reg xianshi;
reg [0:9] jixianshi;
reg [0:2]n;
reg [3:0]l;
reg [0:2]R;
reg [0:2]L;
always @(posedge clk)
begin
if(ji)
begin oneHz<=oneHz;end
else
begin
if(shu<9999999)
begin
shu<=shu+1;
end
else
begin
shu<=0;
oneHz<=~oneHz;
end
end
end
always @(posedge clk)
begin
if(jixianshi<999)
begin
jixianshi<=jixianshi+1;
end
else
begin
jixianshi<=0;
xianshi<=~xianshi;
end
end
always @(posedge oneHz)//当红绿黄灯循环交替一次所用时间为50s,设置变量a控制循环;begin
if(a==0)
begin
a<=50;
end
else
begin
a<=a-1;
end
end
always @(posedge clk)
begin //用四个数码管显示A,B方向时间倒计时
if (a<4)
begin
shi<=0; //根据a的循环A方向的十位数码管倒计时显示0
ge<=(a+1)%10; //根据a的循环A方向的个位数码管倒计时显示5-0;
shi1<=0; //根据a的循环B方向的十位数码管倒计时显示0
ge1<=(a+1)%10;//根据a的循环B方向的个位数码管倒计时显示5-0;
end
else if (a>3&&a<25)
begin
l<=a-4;
shi<=l/10;
ge<=l%10;
shi1<=(a+1)/10;
ge1<=(a+1)%10;
end
else if (a>24&&a<30)
begin
shi<=0;
ge<=(a-25)%10;
shi1<=0;
ge1<=(a-25)%10;
end
else if (a>29&&a<51)
begin
shi<=(a-25)/10;
ge<=(a-25)%10;
l<=a-30;
shi1<=l/10;
ge1<=l%10;
end
end
always @(posedge xianshi) begin
case(n)
0:begin
led_dig<=8'b01111111; case(shi)
0:led_seg<=8'b11111100;
1:led_seg<=8'b01100000;
2:led_seg<=8'b11011010; endcase
end
1:begin
led_dig<=8'b10111111; case(ge)
0:led_seg<=8'b11111100;
1:led_seg<=8'b01100000;
2:led_seg<=8'b11011010;
3:led_seg<=8'b11110010;
4:led_seg<=8'b01100110;
5:led_seg<=8'b10110110;
6:led_seg<=8'b10111110;
7:led_seg<=8'b11100000;
8:led_seg<=8'b11111110;
9:led_seg<=8'b11110110; endcase
end
2:begin
led_dig<=8'b11110111; case(shi1)
0:led_seg<=8'b11111100;
1:led_seg<=8'b01100000;
2:led_seg<=8'b11011010; endcase
end
3:begin
led_dig<=8'b11111011; case(ge1)
0:led_seg<=8'b11111100;
1:led_seg<=8'b01100000;
2:led_seg<=8'b11011010;
3:led_seg<=8'b11110010;
4:led_seg<=8'b01100110;
5:led_seg<=8'b10110110;
6:led_seg<=8'b10111110;
7:led_seg<=8'b11100000;
8:led_seg<=8'b11111110;
9:led_seg<=8'b11110110; endcase
end
endcase
n<=n+1;
end
endmodule。

相关文档
最新文档