交通灯信号控制器的设计

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EDA实验课程大作业报告:设计制作一个用于十字路口的交通灯控制器

EDA实验课程大作业报告:设计制作一个用于十字路口的交通灯控制器

交通灯控制器设计一.系统功能设计要求设计制作一个用于十字路口的交通灯控制器,要求如下:(1)南北和东西方向各有一组红、绿、黄灯来指挥交通,持续时间分别为25S,20S,和5S。

(2)当有特殊情况(如消防车、救护车等)时,两个方向均为红灯亮,计时停止。

(3)当特殊情况结束后,控制器恢复原来状态,继续正常运行。

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

二.设计原理1.交通灯控制器的状态转换根据题目要求将将红绿灯的状态转换列成如下表:2.设计方案1)由于交通灯需要使用2位7段LED数码管指示通行剩余时间,故采用LED动态扫描方式显示当前时间。

频率设定CLK1k对应的频率为50MHZ。

2)控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。

3)每个方向有一组2位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。

4)显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向3个发光二极管。

三.变量符号说明其中,CLK1K为系统时钟信号输入端,SN为禁止通行信号输入通行信号输入端,light0为东西红灯信号输出端,light1为东西黄灯信号输出端,light2为东西绿灯信号输出端,light3为南北红灯信号输出端,light4为南北黄灯信号输出端,light5为南北绿灯信号输出端,led1、led2、led3、led4为数码管地址选择信号输出端。

四.代码说明library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Hongld ISport (clk1k,SN:in std_logic; --SN紧急情况led1, led2, led3, led4 :out std_logic_vector (6 downto 0);--显示管显示时间用light:out std_logic_vector (5 downto 0)); --红绿黄灯end Hongld;architecture traffic1 of Hongld ISsignal S:std_logic_vector (1 downto 0); --状态signal DXT:std_logic_vector(7 downto 0):=X"01"; --东西方向时间signal NBX:std_logic_vector(7 downto 0):=X"01"; --南北方向时间signal ART,AGT,AYT,BRT,BGT,BYT: std_logic_vector(7 downto 0); --红绿黄灯信号signal temp: integer range 0 to 49999999; --产生1s计数器时计数signal clk: std_logic;beginART<="00100101";AGT<="00100000";AYT<="00000100";BRT<="00100101";BGT<="00100000";BYT<="00000100";process(clk1k) -- 选频率为50MHZ beginif (clk1k'event and clk1k='1') thenif temp=49999999 thentemp<=0;clk<='1';elsetemp<=temp+1;clk<='0';end if;end if;end process;process(clk,DXT,NBX) --状态转换进程beginif clk'event and clk ='1' thenif(DXT ="00000001")OR (NBX = "00000001") then S<=S+1;else S<=S;end if; --状态转换结束end if;end process;process (clk,SN,S) --倒计时模块beginif SN = '1' then DXT<=DXT; NBX<=NBX;elseif clk'event and clk='1' thenif (DXT="0000000") OR (NBX="00000000") thencase S ISwhen "00"=>DXT<=ART; NBX<=BGT; --南北红灯、东西绿灯when "01"=>NBX<=BYT; --南北红灯、东西黄灯when "10"=>DXT<=AGT; NBX<=BRT; --南北绿灯、东西红灯when "11"=>DXT<=AYT; --南北黄灯、东西红灯when others=>NULL;end case;end if;if DXT/="00000000" thenif DXT(3 downto 0)= "0000" thenDXT(3 downto 0)<="1001";DXT(7 downto 4)<=DXT(7 downto 4)-1;else DXT(3 downto 0)<=DXT(3 downto 0)-1;DXT(7 downto 4)<=DXT(7 downto 4);end if;end if;if NBX/="00000000" thenif NBX(3 downto 0)="0000" thenNBX(3 downto 0)<="1001";NBX(7 downto 4)<=NBX(7 downto 4)-1;else NBX(3 downto 0)<=NBX(3 downto 0)-1;NBX(7 downto 4)<=NBX(7 downto 4);end if;end if;end if;end if;end process; --倒计时模块结束process(DXT,NBX,S,SN) --显示模块begincase NBX(3 downto 0) iswhen "0000"=>led1<="1000000";when "0010"=>led1<="0100100"; when "0011"=>led1<="0110000"; when "0100"=>led1<="0011001"; when "0101"=>led1<="0010010"; when "0110"=>led1<="0000010"; when "0111"=>led1<="1111000"; when "1000"=>led1<="0000000"; when "1001"=>led1<="0010000"; when others=>led1<="1111111"; end case;case NBX(7 downto 4) iswhen "0000"=>led2<="1000000"; when "0001"=>led2<="1111001"; when "0010"=>led2<="0100100"; when "0011"=>led2<="0110000"; when "0100"=>led2<="0011001"; when "0101"=>led2<="0010010"; when "0110"=>led2<="0000010"; when "0111"=>led2<="1111000"; when "1000"=>led2<="0000000"; when "1001"=>led2<="0010000"; when others=>led2<="1111111"; end case;case DXT(3 downto 0) iswhen "0000"=>led3<="1000000"; when "0001"=>led3<="1111001"; when "0010"=>led3<="0100100"; when "0011"=>led3<="0110000"; when "0100"=>led3<="0011001"; when "0101"=>led3<="0010010"; when "0110"=>led3<="0000010"; when "0111"=>led3<="1111000"; when "1000"=>led3<="0000000"; when "1001"=>led3<="0010000"; when others=>led3<="1111111"; end case;case DXT(7 downto 4) iswhen "0000"=>led4<="1000000"; when "0001"=>led4<="1111001"; when "0010"=>led4<="0100100";when "0100"=>led4<="0011001";when "0101"=>led4<="0010010";when "0110"=>led4<="0000010";when "0111"=>led4<="1111000";when "1000"=>led4<="0000000";when "1001"=>led4<="0010000";when others=>led4<="1111111";end case;if SN ='1' then light<="001001";elsecase S ISwhen "00"=>light<="010001";when "01"=> light <="100001";when "10"=> light <="001010";when "11"=> light <="001100";when others=>NULL;end case;end if;end process;end traffic1;五.仿真波形图仿真时序波形图。

具有四种信号灯的交通灯控制器设计

具有四种信号灯的交通灯控制器设计

目 录1 引言 (1)1.1设计背景 (1)1.2VHDL简介 (1)1.3Q UARTUSⅡ简介 (3)2 交通信号灯控制器的设计 (3)2.1设计目的 (3)2.2系统计要求 (4)2.3设计思路 (4)2.4交通信号灯控制器系统工作流程 (5)3 交通灯控制器的实现 (5)3.1交通灯控制器的设计原型图 (5)3.2系统各功能模块的实现 (6)3.2.1 模块shuomaguan (6)3.2.2 模块traffic (6)3.3原理图 (7)4 交通信号灯控制器系统仿真及分析 (7)4.1SHUMAGUAN模块仿真波形图 (7)4.2顶层实体的仿真波形 (8)4.3TAFFIC模块的仿真波形图 (8)4.4管脚锁定 (8)5 完成调试后所显示结果的八种情况 (10)6 结论 (13)7 总结与体会 (13)附录 (15)S HUMAGUAN的VHDL程序 (15)T RAFFIC的VHDL程序 (16)参考文献 (21)1 引言1.1 设计背景随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。

然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。

而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。

因此,开发一套能够社会服务的交通灯控制器将是非常必要的,也是十分及时的。

1.2 VHDL简介语言硬件描述已经有几十年的发展历史,并且在系统的仿真、验证和设计、综合等方面得到成功的应用。

目前常用的硬件描述语言有VHDL、 Verilog HDL 、ABEL等。

VHDL则起源于20世纪70年代末和80年代初,美国国防部提出的VHSIC 计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法。

交通信号灯控制器实验报告

交通信号灯控制器实验报告

交通信号灯控制器实验报告交通信号灯控制器⼀、设计任务及要求 (2)⼆、总体⽅案设计以及系统原理框图 (2)2.1、设计思路 (2)2.2、各模块相应的功能 (2)2.3、系统原理图 (3)三、单元电路设计 (3)3.1、车辆检测电路 (3)3.2、主控电路 (4)3.3、灯控电路 (5)3.4、计时控制电路 (6)3.5、计时显⽰电路 (6)3.6、反馈控制电路 (7)3.7、置数电路 (7)3.8、时基电路 (7)四、⼯作原理 (8)五、电路的软件仿真及结果分析 (8)5.1、时基电路(555接成的多谐振荡器)的电路图以及波形的显⽰ (8)5.2、结果分析 (10)六、电路的组装调试 (10)6.1、使⽤的主要仪器和仪表 (10)6.2、调试电路的⽅法和技巧 (10)6.3、调试中出现的问题、原因和排除⽅法 (11)七、收获、存在的问题和进⼀步的改进意见 (11)7.1、存在的问题和进⼀步的改进意见 (11)7.2、收获以及⼼得体会 (12)附录⼀:电路所⽤元器件 (14)附录⼆:电路全图 (15)附录三:实际电路图 (16)⼀、设计任务及要求在⼀个主⼲道和⽀⼲道汇交叉的⼗字路⼝,为了确保车辆⾏车安全,迅速通⾏,设计⼀个交通信号灯控制电路,要求如下:1、⽤两组红、绿、黄发光⼆极管作信号灯,分别指⽰主道和⽀道的通⾏状态。

2、通⾏状态⾃动交替转换,主道每次通⾏30秒,⽀道每次通⾏20秒,通⾏交替间隔时为5秒。

3、通⾏状态转换依照“主道优先”的原则,即:当主道通⾏30秒后,若⽀道⽆车则继续通⾏;当⽀道通⾏20秒后,只有当⽀道有车且主道⽆车时才允许继续通⾏。

(⽤按键模拟路⼝是否有车)4、设计计时显⽰电路,计时⽅式尽量采⽤倒计时。

⼆、总体⽅案设计以及系统原理框图2.1、设计思路本次设计采⽤模块划分的⽅法,每个模块完成⼀项功能,最后将各个模块连接起来,设计完成后,⽤Multisim进⾏仿真,仿真成功后,再去实验室焊接调试。

交通信号灯控制系统设计实验报告

交通信号灯控制系统设计实验报告

交通信号灯控制系统设计实验报告设计目的:本设计旨在创建一个交通信号灯控制系统,该系统可以掌控红、绿、黄三种交通信号灯的工作,使其形成一种规律的交替、循环、节奏,使车辆和行人得以安全通行。

设计原理:在实际的交通灯系统中,通过交通灯控制器控制交通灯的工作。

一般采用计时器或微电脑控制器来完成,其中微电脑控制器可以方便地集成多种控制模式,并且灵活易于升级。

在本设计中,我们采用了基于Atmega16微控制器的交通信号灯控制系统。

该系统通过定时器中断、串口通信等技术来实现。

由于控制的是三个信号灯的交替,流程如下:绿灯亮:红灯和黄灯熄灭绿灯由亮到灭的时间为10秒黄灯亮:红灯和绿灯熄灭黄灯由亮到灭的时间为3秒红灯亮:绿灯和黄灯熄灭红灯由亮到灭的时间为7秒重复以上过程硬件设计:整个系统硬件设计包含ATmega16控制器、射频芯片、电源模块和4个灯组件。

ATmega16控制器采用DIP封装,作为主要的控制模块。

由于需要串口通信和遥控器控制,因此添加了RF24L01射频芯片。

该射频芯片可以很方便地实现无线通信和小型无线网络。

4个灯组件采用红、绿、黄三色LED灯与对应300Ω电阻并连。

电源模块采用5V稳压电源芯片和电容滤波,确保整个系统稳定可靠。

软件设计:通过ATmega16控制器来实现交通信号灯控制系统的功能。

控制器开始执行时进行初始化,然后进入主循环。

在主循环中,首先进行红灯亮的操作,接着在计时时间到达后执行黄灯亮的过程,然后执行绿灯亮的过程,再到计时时间到的时候执行红灯亮的过程。

每个灯持续时间的计时采用了定时器的方式实现,在亮灯过程中,每秒钟进行一次计数,到达相应的计数值后,切换到下一步灯的操作。

在RF24L01射频芯片的支持下,可以使用无线遥控器来对交通信号灯的控制进行远程控制。

在系统初始化完成后,通过串口通信对RF24L01进行初始化,然后进入控制循环。

在这个控制循环中,接收到遥控器的指令后,进行相应的控制操作,如开、关灯等。

数电课程设计---交通信号灯控制器

数电课程设计---交通信号灯控制器

数电课程设计---交通信号灯控制器机械与电⼦⼯程学院课程设计报告课程名称数字电⼦技术基础设计题⽬交通信号灯控制器所学专业名称⾃动化班级学号学⽣姓名指导教师2012年 5 ⽉25 ⽇任务书设计名称:交通信号灯控制器⼀、课程设计⽬的这次的课程设计主要是要综合了解与运⽤所学的知识,通过这次的课程设计来检测这⼀学期所学的知识。

通过制作来了解交通灯控制系统,了解译码器、计数器、寄存器芯⽚的作⽤。

交通灯控制系统主要是实现城市交叉路⼝红绿灯的控制。

在现代化的⼤城市中,⼗字交叉路⼝越来越多,在每个交叉路⼝都需要有⼀个准确的间间隔和转换顺序,这就需要有⼀个安全、⾃动的系统对红、黄、绿灯的转换进⾏管理。

本次的设计就是基于此⽬的⽽设计的。

⼆、课程设计任务和基本要求设计任务:1.东西⽅向绿灯亮,南北⽅向红灯亮,时间15s。

2.东西⽅向与南北⽅向黄灯亮,时间5s。

3.南北⽅向绿灯亮,东西⽅向红灯亮,时间l0s。

4.如果发⽣紧急事件,可以⼿动控制四个⽅向红灯全亮,禁⽌该道路的车辆通⾏,特殊情况过后能恢复正常。

基本要求:1. 能够实现设计任务的基本功能;3.运⽤数字电⼦技术的理论设计、制定实验⽅案,并撰写课程设计论⽂要求符合模板的相关要求,字数要求3000字以上。

⼀、摘要随着社会经济的发展,城市交通问题越来越引起⼈们的关注。

⼈、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之⼀。

城市交通控制系统是⽤于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

如何采⽤合适的控制⽅法,最⼤限度利⽤好耗费巨资修建的城市⾼速道路,缓解主⼲道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

为此,通过我应⽤所学的知识设计了⼀套交通灯控制电路的⽅案。

交通灯的控制系统主要由计时电路、主控电路、信号灯转换器、脉冲信号发⽣器组成。

关键词:计时电路、主控电路、信号灯转换器、脉冲信号发⽣器⼆、⽅案选择及论证根据设计任务与要求,我们可以知道这个交通灯的设计是分主次⼲道的,两个⽅⾯的时间是不同的,东西⽅向通⾏15s,南北⽅向10s,这就要求我们要有两个计数器,根据我⾃⼰的经验,东西⽅向通⾏15s完,倒计时数字显⽰器会显⽰到0,然后切换到南北⽅向通⾏10s完之后, 倒计时数字显⽰器也会显⽰到0之后然后切换到南北⽅向,这样如此循环,这样的话我们就要设计⼀个16进制和⼀个11进制的计数器,根据我们所学和知识,可以⽤两⽚74192芯⽚来构成对应进制的计数器,由于是15和10之间循环切换,我们可以⽤利⽤JK触发器的翻转功能来实现两种进制计数器之间的切换;当然还有每个⽅向倒计时只有5s时,黄灯闪,⼀直到0为⽌,由于黄灯是当两个计数器倒计时到5时开始闪,我们就可以在这时发出⼀个脉冲然后⼀直保持到0,或者是接收0~5这段时间的脉冲都可以控黄灯只在到了这段时间才亮;还有就是⼀个紧急开关,我们可以控制在出现紧急情况时使⽤清零端使之清零,并且红灯直接接到电源,使之⼀直处于亮的状态。

交通灯控制器设计原理

交通灯控制器设计原理

交通灯控制器设计原理
交通灯控制器设计的核心原理主要包含定时器和译码器的工作方式。

定时器由不系统秒脉冲(由时钟脉冲产生器提供)同步的计数器构成。

计数器在状态信号ST作用下首先清零,然后在时钟脉冲上升沿作用下,计数器从零开
始进行增1计数,向控制器提供模5的定时信号TY和模25的定时信号TL。

译码器则输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作。

控制器是系统的主要部分,由它控制定时器和译码器的工作。

此外,还需要考虑到实际应用中的一些细节,例如信号灯的闪烁频率、颜色和持续时间等,以确保交通灯控制器能够有效地控制交通流量,提高交通效率并保障交通安全。

以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询交通工程专家。

交通灯信号控制器的设计

交通灯信号控制器的设计

1 设计任务描述1.1设计题目:交通灯信号控制器的设计1.2 设计要求1.2.1 设计目的熟练使用Keil开发环境,具备编写单片机程序(汇编语言或C语言)的初步能力,通过完成本课题的软硬件设计,使同学们了解单片机实例的整个开发流程。

1.2.2 基本要求用单片机设计出一个交通信号灯控制器。

此交通信号灯控制器完成控制红黄绿三种颜色灯的点亮和熄灭。

设计一个交通信号灯控制器,该交通信号灯控制器基本功能:设A道为东西道,B道为南北道,A道放行时间10s,B道放行时间为15s,绿灯放行,红灯停止,放行的最后三秒绿灯闪烁,绿灯转红灯时黄灯亮3s。

同时该交通信号灯控制器附加功能:当一道一直有车另一道无车时,交通控制系统能立即让有车的车道放行,当有紧急车辆(如110,120,119等急救车)要求通过时,此系统应能禁止普通车辆通行,路口的信号灯全部变红,以便让紧急车辆通过,紧急车辆通过后,交通灯恢复先前状态。

1.2.3 发挥部分当有紧急车辆(如110,120,119等急救车)要求通过时,此系统应能禁止普通车辆通行,路口的信号灯全部变红,同时报警声音响起,紧急车辆通过后,交通灯恢复先前状态。

2 设计思路本系统拟采用AT89C51单片机作为交通灯系统的控制核心。

在十字路口东西方向通行时,南北方向红灯显示13秒,同时东西向绿灯显示10秒,当南北方向红灯倒计时显示为3秒时,东西方向黄灯显示3秒并闪烁;南北方向绿灯显示15秒,东西方向红灯显示18秒,当南北方向红灯倒计时显示为3秒时,东西方向黄灯显示3秒并闪烁,如此循环。

当发生紧急情况时,两路红灯亮,紧急结束时继续显示上一个状态。

从设计所要完成的任务和要求来看,单一路口显示倒计时时间的数码管必须用两位,对于七段数码管,倒计时显示装置中的数码管在本系统中采用的是动态显示;设置了4个按键来处理交通灯在实际应用中可能出现的特殊情况,P3.1接K1键,P3.2接K2键,P3.3接K3键,P3.4接K4键;十字路口共需4组红绿灯,本设计中为简化,只设置2组红绿灯。

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

交通灯信号控制器的设计一,设计任务与要求交通灯控制信号用于主干道公路的交叉口,要求是优先保证主干道的畅通,因此,平时处于“主干道绿灯,支干道红灯”的状态。

1.当处于“主干道绿灯,支干道红灯”状态时:(1)、主干道有车要求通行,支干道也有车要求通行时,若主干道通行时间大于等于30S则切换到“主黄,支红”,4S后自动换到“主红,支绿”。

(2)、主干道无车要求通行,支干道有车要求通行时,立即切换到“主黄,支红”,4S后自动自动切换到“主红,支绿”。

其他情况保持“主绿,支红”。

2.当处于“主红,支绿”状态时:(1)、支道有车要求通行时,保持“主红,支绿”状态,但最多保持30S 然后自动切换到“主红,支黄”状态,4S后自动切换到“主绿,支红”状态。

(2)、支道无车要求通过时,立即切换到“主红,支黄”状态,4S后自动切换到“主绿,支红”状态。

3.利用八位七段管码显示模块其中的2位实现时间显示。

二,总体框图初步设计图三,选择器件1,(1)3-8译码器74138芯片.(2)3-8译码器74138的逻辑功能表:(3)3-8译码器74138的内部原理图:(4)3-8译码器74138的作用:74138有三个附加的控制端。

当G1为高电平,G2AN和G2BN为低电平时,输出为高电平(S=1),译码器处于工作状态。

否则,译码器被禁止,所有的输出端被封锁在高电平。

这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。

本设计所用实验箱的8个数码管采用扫描显示方式,数码管位选电路在扫描信号的控制下轮流输出8路数据,此8路数据时分复用一个BCD7段显示译码器。

数码管位选电路同时输出位选信号,经74LS138译码器译码后分别选中8个数码管。

在位选选中一个数码管的的情况下送出段码,在该段码管中显示段码字符,然后接着选中其它数码管,送其他字符。

四,功能模块1..原理概述:(1)由于主干道,支干道的交通灯均在绿,黄,红三种状态之间有顺序的转换,组合共有四种。

所以,利用状态机按照设定的条件实现"主绿,支红" 、"主黄,支红" 、"主红,支绿"、"主红,支黄"4种状态之间的切换。

(2)因为红黄绿灯之间转换有时间限制,所以要有计数器,可用七段数码管显示模块,由于时间是两位数,所以只需要八位七段管码显示模块其中的2位实现时间显示。

(3)由于实验室提供的基准频率为50MHZ,所以得用分频器得到所需要的频率。

2.各模块设计程序及模块图1.1计数器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY counter ISPORT (clk:IN STD_LOGIC;reset:in std_logic;countNum:BuFFeR INTEGER RANGE 0 TO 64);END;ARCHITECTURE behavior OF counter ISBEGINprocess(reset,Clk)BEGINIF Reset='1' THENcountNum<=0;ELSIF rising_edge(Clk) THENIF countNum=64 THENcountNum<=0;ELSEcountNum<=countNum+1;END IF;END IF;END PROCESS;END;生成模块图:1.2七段显示器程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY bcd_data ISPORT(bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout: out STD_LOGIC_VECTOR(6 downto 0)); END;ARCHITECTURE behavior OF bcd_data IS BEGINprocess(bcd_data)BEGINcase bcd_data iswhen "0000"=>segout<="0111111";when "0001"=>segout<="0000110";when "0010"=>segout<="1011011";when "0011" =>segout<="1001111";when "0100" =>segout<="1100110" ;when "0101"=>segout<="1101101" ;when "0110"=>segout<="1111101" ;when "0111"=>segout<="0000111" ;when "1000" =>segout<="1111111" ;when "1001" =>segout<="1101111";when others =>null;END CASE;END PROCESS;END;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY dtsm ISPORT(clk:in STD_LOGIC;NumA,NumB: in STD_LOGIC_VECTOR(3 downto 0); segout1:out STD_LOGIC_VECTOR(6 downto 0);led_sel:out STD_LOGIC_VECTOR(2 downto 0)); END dtsm;architecture bhv of dtsm iscomponent bcd_data isport (bcd_data:in STD_LOGIC_VECTOR(3 downto 0);segout:out STD_LOGIC_VECTOR(6 downto 0)); end component;signal x:STD_LOGIC_VECTOR(3 downto 0);signal Q:STD_LOGIC;beginp1:process(clk)beginif clk'event and clk ='1' thenif Q='1' THEN Q<='0';ELSE Q<='1';END IF;end if;end process;p2:process(Q)begincase Q iswhen'0'=>led_sel<="010";x<=NumB;when'1'=>led_sel<="001";x<=NumA;when others=>null;end case;end process;u1:bcd_data PORT map(bcd_data=>x,segout=>segout1);end;生成模块图:1.3分频器:分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器、计数器和扫描显示电路。

1.3.1 分频到512Hz程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin123 isport (clk: in std_logic;clkfen: out std_logic);end fenpin123;architecture fenpin of fenpin123 issignal clk_mid: std_logic;beginprocess(clk)variable data:integer range 0 to 48828;---将基准信号分频到512Hz beginif clk'event and clk='1' thenif data=48828 thendata:=0;clk_mid<=not clk_mid;elsedata:=data+1;end if;end if;clkfen<=clk_mid;end process;end fenpin;生成模块图:1.3.2分频到1Hz程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport( clk:in std_logic;finout:out std_logic);end fenpin;architecture bhv of fenpin issignal tmp:INTEGER RANGE 0 TO 49999999; beginprocess(clk)beginif clk'event and clk='1' thenif tmp=49999999 then tmp<=00000000;else tmp<=tmp+1;end if;if tmp<25000000 then finout<='0';else finout<='1';end if;end if;end process;end bhv;生成模块图:1.4分位程序因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH;ENTITY FENWEI ISPORT(Numin:IN integer RANGE 0 TO 31;NumA,NumB:OUT Integer RANGE 0 to 9);END;ARCHITECTURE behavior OF FENWEI ISBEGINprocess(Numin)BEGINIF Numin>=30 THENNumA<=3;NumB<=Numin-30;ELSIF Numin>=20 THENNumA<=2;NumB<=Numin-20;ELSIF Numin>=10 THENNumA<=1;NumB<=Numin-10;ELSENumA<=0;NumB<=Numin;END IF;END PROCESS;END;生成模块图:1.5交通灯控制程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH;ENTITY traffic ISPORT(CLK , SM , SB : IN BIT;MR,MY,MG,BR,BY,BG : OUT BIT;reset:OUT std_logic;CountNum:in INTEGER RANGE 0 TO 64;Num:out INTEGER RANGE 0 TO 31);END traffic;ARCHITECTURE BEHA V OF traffic ISTYPE STATE_TYPE IS (A,B,C,D);SIGNAL STATE : STATE_TYPE ;BEGINCNT:PROCESS(CLK,SM,SB,CountNum)BEGINIF CLK'EVENT AND CLK='1' THENCASE STATE ISWHEN A => MR<='0';MY<='0';MG<='1';--主绿支红BR<='1';BY<='0';BG<='0';RESET<='0';IF CountNum<=29 THENNum<=30-CountNum;ELSESTATE<=B;RESET<='1';END IF;END IF;IF (SB AND(NOT SM))='1' THENSTATE<=B;RESET<='1';END IF;WHEN B => MR<='0';MY<='1';MG<='0';--主黄支红BR<='1';BY<='0';BG<='0';RESET<='0';IF CountNum<=3 THENNum<=4-CountNum;ELSESTATE<=C;RESET<='1';END IF;WHEN C => MR<='1';MY<='0';MG<='0';--主红支绿BR<='0';BY<='0';BG<='1';RESET<='0';IF (SB AND SM)='1' THENNum<=30-CountNum;ELSESTATE<=D;RESET<='1';END IF;END IF;IF SB='0' THENSTATE<=D;RESET<='1';END IF;WHEN D => MR<='1';MY<='0';MG<='0';--主红支黄BR<='0';BY<='1';BG<='0';RESET<='0';IF CountNum<=3 THENNum<=4-CountNum;ELSESTATE<=A;RESET<='1';END IF;WHEN OTHERS=>STATE<=A;END CASE;END IF;END PROCESS CNT;END BEHA V;生成模块图:五,总体设计电路图1,总体原理图示管显示出时间。

相关文档
最新文档