精华内容
下载资源
问答
  • 交通灯控制器设计原理
    2021-01-14 05:07:07

    很高

    实验五

    十字路口交通灯控制器设计

    一、实验目的

    1

    、进一步加强经典状态机的设计

    2

    、学会设计模可变倒计时计数器

    二、实验要求

    一条主干道,一条乡间公路。组成十字路口,要求优先保证主干道通行。有

    MR

    (主红)

    MY

    (主黄)

    MG

    (主绿)

    CR(

    乡红

    )

    CY

    (乡黄)

    CG

    (乡绿)六盏交

    通灯需要控制;

    交通灯由绿→红有

    4

    秒黄灯亮的间隔时间,

    由红→绿没有间隔时

    间;系统有

    MRCY

    MRCG

    MYCR

    MGCR

    四个状态;

    乡间公路右侧各埋有一个传感器,

    当有车辆通过乡间公路时,

    发出请求信号

    S=1

    ,其余时间

    S=0

    平时系统停留在

    MGCR

    (主干道通行)状态,一旦

    S

    信号有效,经

    MYCR

    (黄

    灯状态)转入

    MRCG

    (乡间公路通行)状态,但要保证

    MGCR

    的状态不得短于一分

    钟;一旦

    S

    信号无效,系统脱离

    MRCG

    状态。随即经

    MRCY

    (黄灯状态)进入

    MGCR

    状态,即使

    S

    信号一直有效,

    MRCG

    状态也不得长于

    20

    秒钟。

    三、实验思路

    1

    、设计一个状态寄存器,控制六盏灯的亮与灭

    2

    、设计一个计时器,控制各状态的持续时间,计时器应满足以下要求:

    1

    )当

    S=1

    ,且计数器已完成

    60

    计数时,计数器进入模

    4

    计数,随后进入模

    20

    计数,再进入模

    4

    计数,再回到模

    60

    计数

    2

    )当计数器进行摸

    20

    计数时,一旦

    S

    变为

    0

    ,计数器立马进入模

    4

    计数,

    再进入模

    60

    计数

    3

    )完成模

    20

    计数后,不论

    S

    0

    1

    ,计数器进入模

    4

    计数,再进入模

    60

    计数

    4

    )若计数器未完成模

    60

    计数,不论

    S

    如何变话,计数器将继续进行模

    60

    计数

    3

    、使用文本设计底层文件,并生成相应元器件,再使用原理图设计顶层文件

    更多相关内容
  • 本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示...
  • 交通灯控制器原理

    2020-10-22 17:51:41
    本实例通过Verilog HDL语言设计一个简易的交通等控制器,实现一个具有两个方向、共8个灯并具有时间倒计时功能的交通灯功能。
  • 在Windows环境下,Multisim 10软件有一个完整的集成化设计环境,它将原理图的创建、电路的测试分析、结果的图表显示等全部集成到同一个电路窗口中。在搭建实际电路之前,采用Multisim 10仿真软件进行虚拟测
  • 数电课程设计、仿真文件、multisim、原理
  • 十字路口交通灯信号控制器设计要求: 1)东西通道和南北通道交替通行,东西通道每次放行时间大于南北通道每次放行时间。 2)绿灯亮表示可以通行,红灯亮表示禁止通行。 3)每次绿灯变红灯时,绿灯先闪转变黄灯(此时...
  • 本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。 本设计系统由单片机I/O口扩展系统、交通灯状态...
  • 在主、支道路的十字路口分别设置三色灯控制器,红灯亮禁止通行,绿灯亮允许通行,黄灯亮要求压线车辆快速穿越。根据车流状况不同,可调整三色灯点亮或关闭时间。 (1)基本部分: ①可用LED模拟交通灯; ②主道路绿...
  • 利用8086芯片控制8259可编程中断控制器,实现对外部中断的响应和处理。并利用8253可编程定时/计数器产生方波,同时利用8055可编程并行口芯片实现对交通灯的控制,其中A口进交通信号灯的控制,B口输出交通信号灯的...
  • 因此,作为交通监管系统的重要组成部分,交通信号在协调人、车、路的关系时发挥着巨大的作用。EDA(Electronic Design Automaon,电子设计自动化)是依靠功能强大的计算机,对以硬件描述语言HDL(Hardware Descripon ...
  • 这是一份基于Verilog的交通灯设计工程文件,已经在QUARTUS II 8.0 (32-BIT)上测试通过,而关于十字路口交通灯控制系统的工作原理的资料建议自行到网上找一找。
  • 交通灯控制器

    2014-07-31 09:51:50
    交通灯控制器的课程设计,比较有想法的设计,值得共享
  • 1、设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间都设为45秒。 2、 在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道; 3、 黄灯亮时,要求每秒...
  • (1)设计一个用于十字路口的交通灯灯控制台,能显示十字路口东西、南北两个方向设计一个用于十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿的指示状态; (2)具有倒计时的功能,用两组数码管...
  • 微机原理课程设计_十字路口交通灯控制器.pdf
  • 由本人制作的含有EDA交通灯控制器课程设计,课题内容为: (1)正常情况下保证主干道的畅通; (2)当步行街道上的行人要穿过主干道时,通过按钮来发出请求; (3)当有人按下控制按钮时,主干道变为黄灯,设置...
  • PAGE PAGE 2 单片机原理与应用技术 课程设计报告论文 基于单片机控制的交通灯控制器 专业班级 电气126班 _ 姓 名 贾梦凡 时 间2014.11.2412.08 指导教师 陈艳峰 2014年 12 基于单片机控制的交通灯控制器课程设计任务...
  • 基于FPGA的交通灯控制器Verilog资料合集,包含源码工程、仿真工程、视频教程、原理图PCB图,是FPGA经典案例系列博客的其中资源之一,系列博客地址:https://blog.csdn.net/qq_33486907/article/details/118653742 ...
  • 《嵌入式系统原理与应用》综合设计课程设计-交通信号灯控制器设计
  • -单片机原理及接口技术课程设计十字路口交通信号灯控制器设计
  •  摘要:分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。  关键词:交通控制 交通灯 时间发生...
  • 基于FPGA的交通灯设计

    2020-12-21 12:23:56
    采用正点原子FPGA开发板,用Verilog-HDL语言编写程序实现排球比赛计分功能: (1) 用按键S1模拟A队比分+键、S2模拟A队比分—键;用按键S3模拟B队比分+键、S4模拟B队比分—键。 (2) 用右边2位数码管显示A队得分,...
  • 微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计 摘 要 根据十字路口交通灯的控制要求采用PLC 设计实现正常交通的时序控制通过传感器完成对交通异常状况的智能判别及处理在系统的设计中主要使用了PLC ...
  • 微机原理课程设计 实现夜间模式 白天模式 汇编语言实现 是微机原理课程设计比不可少的东西
  •  图中9个单元电路分别为交通灯控制器JTDKZ:根据主、支干道传感器信号SM、SB以及来自时基发生电路的时钟信号CLK,发出主、支干道指示灯的控制信号,同时向各定时单元、显示控制单元发出使能控制信号EN45、EN25、EN...
  • 微机原理交通灯控制系统设计

    万次阅读 多人点赞 2018-09-10 00:07:21
    此次综合设计为模拟交通灯控制系统,是采用计算机通过编写汇编语言程序控制实验箱上的硬件资源实现的。红灯停,绿灯行的交通规则,广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于...

    前言

    此次综合设计为模拟交通灯控制系统,是采用计算机通过编写汇编语言程序控制实验箱上的硬件资源实现的。红灯停,绿灯行的交通规则,广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的;还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。
    因此,在本设计中将采用Intel 8086系列CPU交通控制系统来实现。 整个交通灯控制系统由8086CPU、交通灯显示、键盘扫描、紧急处理、时间模式手动设置等模块组成。系统除基本交通灯功能外还具有通行时间手动设置、可倒计时显示、急车强行通过等相关功能。

    1 交通灯控制系统设计方案

    1.1、总体设计:

    1、东西方向和南北方向交替准行控制:
    东西方向准行时,东西方向上的绿灯亮,南北方向红灯亮,经过一段时间后,南北方向准行,南北方向上的绿灯亮,东西方向红灯亮,如此交替。各方向信号灯顺序为:红→绿→黄→红→绿→黄……,某一方向红灯亮的时间等于另一方向绿灯和黄灯亮的时间之和。
    2、各方向红、绿灯亮的时间为11~ 99秒(可灵活的任意设定),以满足不同交通路口的需要。
    3、当准行时间倒计时到最后10秒时,准行方向上绿灯灭,同时该方向的黄灯变为闪烁。
    4、各方向要有两位数码管分别显示准行时间或禁行时间,并以秒倒计时。
    5、设置功能按键:
    1)在发生交通事故时,东西方向和南北方向同时禁行。
    2)强制东西方向通行。
    3)强制南北方向通行。
    4)恢复正常交替通行。

    1.2 设计原理:

    综合利用实验箱上的资源,利用8254单元输入1MHz的时钟信号,连接MIR7定时向控制系统发出中断信号,实现倒计时的功能,通过8255单元控制的键盘及数码管显示单元,动态扫描通行时间的变化以及功能键模式下的显示,实时扫描键盘的输入,通过软件处理的方式,实现各个键盘的处理,开关及LED显示单元则来用显示交通灯的变化,B口输出数码管段码,A口与C口共同控制数码管的位选、键盘扫描以及LED灯的亮灭。
    如图1,是实现整个交通灯控制系统的接线图:
    实验接线图
    图1 实验接线图

    2 交通灯控制系统硬件原理

    2.1 8086CPU
    2.2 可编程并行接口芯片——8255A
    2.3 可编程计数/定时器芯片——8254
    2.4 可编程中断控制器——8259A

    3 交通灯控制系统软件设计:

    3.1设计总流程图:
    这里写图片描述
    3.2初始化流程图:
    3.3按键处理流程图:
    3.4显示流程图:
    3.5 按键扫描流程图:
    3.6 中断流程图

    4 实验内容

    根据接线图,将系统总线与8255单元、键盘及数码管显示单元、开关及LED显示单元连接,编写程序,扫描键盘输入,并将扫描结果进行处理后送数码管显示。
    实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时:
    ①数字键“0~9”: 仅在设置通行时间时按键有效(设置键:“D”),实现通行时间设置的组合,数码管实时显示“XX——XX”(XX表示预设的时间)
    ②功能键“A”: 东西方向和南北方向同时禁行,数码管显示“888888”,东西方向和南北方向都亮红灯。
    ③功能键“B”: 强制东西方向通行,数码管显示“888888”,东西方向亮绿灯,南北方向亮红灯。
    ④功能键“C”: 强制南北方向通行,数码管显示“888888”,南北方向亮绿灯,东西方向亮红灯。
    ⑤设置键“D”:按一下可以对东西方向进入通行时间设置,再按一下对南北方向进入通行时间设置
    ⑤确定键“E”:将时间预设值修改,不符要求的方向不更改,按下后进入正常状态。
    ⑥取消键“F”:退出时间设置模式和功能键模式

    5 实验设备

    PC机一台,TD-PITE实验装置一套

    6 实验结果分析和讨论

    按要求接好线并下载程序后,能够正常实现交通灯的显示与功能键的启用,但在通行时间的设置上仍有一些问题:
    ①本应显示交通灯状态“-”“_”“¯”的数码管不按预想中的显示;
    ②数码管显示的顺序与预想中的相反
    解决办法:
    ①经过检查,是在存数码管段码的数组中,将A~F的也写了进去,对应“-”“_”“¯”的段码无法对应上去,把A~F的段码删去后正常显示。
    ②经过检查,是数码管的扫描与取段码的顺序不一致,所以只需要把动态扫描的顺序更换一下就可以,修改后正常显示。

    7 设计体会与小结

    此次综合设计可以说是获益匪浅。通过在图书馆和互联网上查阅了很多相关资料,了解到了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。
    在明白整个系统的工作流程后,我就开始一个代码一个代码地敲,从基本程序开始逐步添加功能,在没有实验环境的情况下,仔细地推敲自己的程序,把一个个例程打印出来做好笔记,用纸演算,综合处理较多的是按键处理和数码管模块,以及利用有限的I/O实现交通灯LED的开关模块显示。在按键处理中,运用合理的公式将数字键组成(11~99)的数字,利用计数器原理实现不同按键功能的切换;在数码管模块中,要根据不同的时间状态显示不同的字符,在实现动态扫描的同时,保留开关模块的LED交通灯状态,学会了让某一位置数或复位的技巧。
    现实是骨感的,再好的程序也需要去检验,在实验室调试过程中,首先就要排除语法错误等的错误,一些小的细节自己也无法即时检查出来,在系统加电调试中,针对一些问题,将错误之处缩小在最小范围内,通过后期一次次的排查终于将整个系统完善好。
    这次设计,我把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对微机原理与系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了微机系统是如何处理命令的,如何协调各个部件运行,对微机编译原理的认识更加深刻。
    最后,综合所学微机原理与接口技术相关软件、硬件知识,并应用基础实验所获得的实验设计技能,独立设计解决实际应用问题的系统。

    前面部分源程序:详见完整报告文件

    /***********************************************************
     * 文件名: Traffic_Light.c
     * 功能描述: 使用8255、8253及8259完成交通灯综合设计实验
     **********************************************************
     *  8255的B口为数码管的段驱动
     *  A口  PA0~PA5    为数码管位驱动
     *  A口  PA0~PA3    为列扫描
     *  C口  PC0~PC3    为行扫描
     *  A口  PA6~PA7                        PC口为黄灯,方便置数/复位  
     *  C口  PC4     为东西方向指示灯    PA7-红,PA6-绿,PC4-黄
     *  C口  PC5~PC7    为南北方向指示灯    PC7-红,PC6-绿,PC5-黄
     *  按下按键,对应功能会被执行。
     ********************************************************/
    
    #include <stdlib.h>
    #include <conio.h>
    #define uchar unsigned char 
    
    //8254端口地址IOY3      接1MHz的CLK
    #define M8254_A     0x6c0
    #define M8254_B     0x6c2
    #define M8254_C     0x6c4
    #define M8254_CON   0x6c6
    
    //8255端口地址IOY0
    #define MY8255_A     0x0600
    #define MY8255_B     0x0602
    #define MY8255_C     0x0604
    #define MY8255_MODE  0x0606
    
    #define Rdata(port)     inportb(port)
    #define Wdata(port, x)  outportb(port, x)
    
    //晶振:12MHz
    void dis(void);
    void clear(void);           //清屏
    void ccscan(void);          //按键扫描
    void getkey(void);          //获取键值key_num
    void delay(int time);
    
    void Initial(void);
    void Ini_Interrupt(void);
    void Ini_Timer(void);
    void Button_Pro(void);
    
    void EW1_update(void);      //东西绿南北红
    void EW2_update(void);      //东西黄南北红
    void SN1_update(void);      //东西红南北绿
    void SN2_update(void);      //东西红南北黄
    void set_update(void);      //更新设置时应显示的值
    
    /******************************
    变量、控制位定义
    ******************************/
    uchar EW=12,SN=15;          //初始化交通灯通行时间
    
    /*  交通灯端口定义
    #define EW_red      PA7:X0000000b   
    #define EW_green    PA6:0X000000b   
    #define EW_yellow   PC4:000X0000b   
                    X=1,亮   X=0,灭
    #define SN_red      PC7:X0000000b   
    #define SN_green    PC6:0X000000b   
    #define SN_yellow   PC5:00X00000b   */
    
    uchar EW_SN;                //功能键标志
    uchar EW_EN;
    uchar SN_EN;
    uchar TIME_SET;             //设置键标志
    uchar EW_TEMP;
    uchar SN_TEMP;
    
    char Time_EW;               //东西方向计时变量
    char Time_SN;               //南北方向计时变量
    
    // 数码管显示对应值代码
    char a[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 
                0x6d, 0x7d, 0x07, 0x7f, 0x6f, 
                0x01, 0x40, 0x08};
    //最后3位是用数码管表示的东西南北方向红绿灯状态,分别是红"ˉ"、黄"-"、绿"_"
    
    //每0.5s进入一次中断,表示1Hz的方波时钟信号的电平,用给黄灯当闪烁频率
    uchar count=0;
    
    //设置模式下存放要显示的值,与a[]配合使用
    char SET_NUM [6];
    //char SET_NUM  = {EW_TEMP/10,EW_TEMP%10,'-','-',SN_TEMP/10,SN_TEMP%10};
    
    //正常模式下存放要显示的值,与a[]配合使用
    char TIME_NUM [6];
    //char TIME_NUM = {EW/10,EW%10,EW_STATE,SN_STATE,SN/10,SN%10};
    
    int  cc;
    //按键值0~f
    int  key_num;
    

    完整文档下载:
    https://download.csdn.net/download/u012579502/10655911

    展开全文
  • 文章分析了MCS-51系列单片机利用串行口进行多机通信的基本原理,对利用单片机多机通信方式实现交通灯控制系统的网络化控制进行了研究,设计了硬件电路图及主、从机程序,并在Proteus软件上进行了仿真运行。...
  • 1、目录一 课题介绍1.1概述1.2课题要求二 设计原理与分析2.1.1红黄绿灯之间状态变换2.1.2计时设置2.1.3紧急情况2.2 总体框图2.3 分块设计三 、原理图四、 程序代码4.1M分频器4.2数码管译码器4.3 交通灯控制器4.4.....

    《交通灯控制器课程设计.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《交通灯控制器课程设计.doc》文档请在天天文库搜索。

    1、目录一 课题介绍1.1概述1.2课题要求二 设计原理与分析2.1.1红黄绿灯之间状态变换2.1.2计时设置2.1.3紧急情况2.2 总体框图2.3 分块设计三 、原理图四、 程序代码4.1M分频器4.2数码管译码器4.3 交通灯控制器4.4 计时器五、 仿真结果及实验分析六、总结一、课题介绍 1.1概述在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)亮,表示停车;绿灯(G)亮,表示可以通行。倒计时显示器是用来显示允许通行和禁止通行地时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。1.2课题要求设计一个十字交叉路口的交通灯控制器,具体要求如下:(1) 每条道路设一组信号灯,每组信号灯由红、黄、绿3盏灯组成,绿灯表示允许通行,红灯表示禁止通行,黄灯表示该车道上已过。

    2、停车线德车辆继续通行,未过停车线的车辆停止通行。(2) 设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。(3) 当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。二、设计原理与分析2.1交通灯用以指挥车辆和行人有序地通行,在功能上要实现红黄绿灯之间状态变换、计时设置和紧急情况三大功能。2.1.1红黄绿灯之间状态变换对于十字路口两个方向上的交通灯,要保证一条道路通行另一条禁止,同时还要考虑黄灯到红灯的变换,因此一共有四个状态,即南北红东西绿、南北红东西黄、南北绿东西红、南北黄东西红。 2.1.2计时设置根据要求,绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。2.1.3紧急情况。

    3、当各条路上任意一条上出现特殊情况时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。2.2 总体框图 2.2.1模块示意图 图12.3 分块设计要实现交通灯的控制需要5个功能模块,分别为4M分频器,数码管译码器,交通灯控制器以及计时器。 2.3.1 4M分频器由于引脚选用4M时钟,而计时单位为秒,需要对时钟信号进行4M分频处理,编译后生成4M分频器如下图:图2 4M分频器 2.3.2数码管译码器输出时间为16进制数,要在数码管上显示需设计数码管译码器对其进行译码,编译后生成数码管译码器如下图:图3 数码管译码器 2.3.3 交通灯控制器为完成四个状态之间的循环,需交通灯控制器通过时钟信号的变化来完成状态循环的功能,编译后生成交通灯控制器如下图:图4 交通灯控制器 2.3.4 计时器计时器不仅要完成倒计时功能,还要随状态的变化而改变其倒计时时间,编译后生成计时器如下图:图5 计时器三、 原。

    4、理图、代码书写 1、交通灯控制的原理图各个模块代码书写4.1M分频器LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; -- 运算符重载ENTITY cnt4M IS PORT ( ena,clr,d_ctr,clk : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR( 3 DOWNTO 0 ); co:out std_logic ) ; END ENTITY cnt4M; ARCHITECTURE bhv OF cnt4M ISSIGNAL q1 : STD_LOGIC_VECTOR(3 DOWNTO 0 ); BEGIN q <= q1 ; PROCESS (clk,clr,ena,d_ctr) BEGIN IF clr='0' THEN q1'。

    5、0'); ELSIF clk'EVENT AND clk = '1' THEN IF ena='1' THEN IF d_ctr='1' THEN IF q1 = "1111" THEN q1 '0'); ELSE q1<=q1+'1'; END IF; ELSIF q1= "0000" THEN q1'1'); ELSE q1<=q1-'1'; END IF; END IF ; END IF; END PROCESS ; PROCESS(q1) BEGIN IF q1= "1111" THEN co<='1'; ELSE co<='0'; END IF;END PROCESS;END ARCHITECTURE bhv;4.2数码管译码器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith。

    6、.all;use ieee.std_logic_unsigned.all;entity exp4 is port(clk : in std_logic; A,B:in std_logic_vector(7 downto 0); ledag:out std_logic_vector(6 downto 0); sel:out std_logic_vector(7 downto 0) );end;architecture bh of exp4 is signal del:std_logic_vector(1 downto 0); signal key:std_logic_vector(3 downto 0); begin process(clk) variable dount:std_logic_vector(1 downto 0); begin if clk'event and clk='1'。

    7、then dount:=dount+1; end if; delledagledagledagledagledagledagledagledagledagledagnull; end case; end process; process(del) begin case del is when "11"=>sel<="";keysel<="";keysel<="";key<=b(3 downto 0); end case; end process;end bh;4.3 交通灯控制器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jtd ISPORT(clk,emg:IN STD_LOGIC;--输入 时钟,复位,状态 COUNT1,COUNT2:IN。

    8、 STD_LOGIC_VECTOR(7 DOWNTO 0);--计时器 MG,MY,MR,CG,CY,CR:OUT STD_LOGIC);--输出信号,控制各种灯END jtd;ARCHITECTURE behav OF jtd IS TYPE jtdSTATE IS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:jtdSTATE;BEGIN PROCESS(STATE,clk,emg)--RESET,, S BEGIN -- IF RESET='1' THEN STATE<=mgcr;MG<='1';CR<='1';MY<='0';MR<='0';CG<='0';CY<='0'; --ELS IF clk'EVENT AND clk='1' then IF emg='1' THEN MY<='0';CR<='1。

    9、';MG<='0';MR<='1';CG<='0';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mrcy;MY<='0';CR<='0';MG<='0';MR<='1';CG<='0';CY<='1'; ELSE STATE<=mrcg;MG<='0';CR<='0';MY<='0';MR<='1';CG<='1';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mgcr;MR<='0';CG<='0';MG<='1';MY<='0';CR<='1';CY<='0'; ELSE STATE<=mrcy;MY<='0';CR<='0';MG<='0';MR<=。

    10、'1';CG<='0';CYIF COUNT2="" AND COUNT1=""THEN STATE<=mycr;MR<='0';CY<='0';MY<='1';MG<='0';CR<='1';CG<='0'; ELSE STATE<=mgcr;MR<='0';CG<='0';MG<='1';MY<='0';CR<='1';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mrcg;MG<='0';CR<='0';MR<='1';MY<='0';CY<='0';CG<='1'; ELSE STATE<=mycr;MR<='0';CY<='0';MY<='1';MG<='0';CR<='1';CG

    11、;='0'; END IF; END CASE; END IF; END IF; END PROCESS; END behav;4.4 计时器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JISHU IS PORT(clk,RESET,emg:IN STD_LOGIC; tim1,tim2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END JISHU;ARCHITECTURE behav OF JISHU IS TYPE RGY IS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:RGY;BEGIN PROCESS(clk,RESET,emg)--,RESET VARIABLE a1:STD_LOGIC:='0'; VARIAB。

    12、LE a2:STD_LOGIC:='0'; VARIABLE a3:STD_LOGIC:='0'; VARIABLE a4:STD_LOGIC:='0'; VARIABLE b:STD_LOGIC:='0'; VARIABLE timmh:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timml:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timch:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timcl:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE mth,mtl,cth,ctl:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF clk'EVENT AND clk='1' THEN IF RESET='1' THEN STATE -。

    13、-IF S='1' AND b='1' THEN STATE<=mycr;a:='0';th:="0000";tl:="0100";b:='0'; --ELSIF S='0' AND b='1' THEN STATE<=mgcr;a:='1';th:="0000";tl:="0001"; --ELSE IF a1='1' THEN mth:="0010";mtl:="0101";cth:="0010";ctl:="0000";a1:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --25秒,20秒 else IF NOT(cth="0000" AND ctl="0010") then IF mtl="0000" then mtl:="1001";mth:=mth-1;timmh:=mth; timml:=mtl; tim。

    14、ch:=cth; timcl:=ctl; else mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; --IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" then ctl:="1001";cth:=cth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else ctl:=ctl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; ELSE mth:="0000";mtl:="0110";cth:="0000";ctl:="0001";STATE IF a2='1' THEN cth:="0000";ctl:="0101";mth:="。

    15、0000";mtl:="0101";a2:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --5秒 else IF NOT(cth="0000" AND ctl="0010" ) then ctl:=ctl-1;mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; ELSE cth:="0000";ctl:="0001";mth:="0000";mtl:="0001";a3:='1';STATE--IF S='1' THEN IF a3='1' THEN mth:="0010";mtl:="0000";cth:="0010";ctl:="0101";a3:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --20秒。

    16、 else IF NOT(mth="0000" AND mtl="0010") then IF mtl="0000" then mtl:="1001";mth:=mth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; --IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" then ctl:="1001";cth:=cth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else ctl:=ctl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl。

    17、; END IF; ELSE cth:="0000";ctl:="0110";mth:="0000";mtl:="0001";STATE<=mycr;a4:='1';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --6.1 END IF; END IF; --ELSE a:='0';STATEIF a4='1' THEN mth:="0000";mtl:="0101";cth:="0000";ctl:="0101";a4:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --4秒 else IF NOT(cth="0000" AND ctl="0010") then ctl:=ctl-1;mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth;。

    18、 timcl:=ctl; ELSE cth:="0000";ctl:="0001";mth:="0000";mtl:="0001";a1:='1';STATE<=mrcg;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; END IF; END CASE;END IF;tim1 <= mth & mtl;tim2 <= cth & ctl;END IF;end process;END behav;五、仿真及分析 图1、原理图仿真波形 图2、4M分频器仿真波形 图3、数码管译码器仿真波形 图4、交通灯控制仿真波形 图5、计时器仿真波形实验及分析在clc上升沿,tim2计数到达01,此时改变状态,主道路的路灯熄灭,黄灯点亮,从道路的红灯保持不变,持续5秒并计数。Reset置1后开始进入计数状态,并随着时钟上升沿改变。

    19、状态。在clc上升沿,tim1和tim2计数都达到01,此时改变状态,主道路黄灯熄灭红灯点亮,从道路红灯熄灭绿灯点亮。并开始计数。emg为紧急情况的开关,在紧急情况下,将emg置0,此时主动道路都变为红灯,且计数器停止计数,保持原计数时间并闪烁。紧急情况排除后,emg恢复置1,此时恢复紧急状况之前的状态,并继续计数。针对EP1C6Q240C8芯片,引脚设置如下:六、总结在这次设计过程中,体现出自己设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 在此感谢我们的杨老师.,老师严谨细致、一丝不苟的作风是我学习中的榜样,老师循循善诱的教导给予我启迪;这次设计的每个实验细节,都离不开老师的细心指导。而您宽容的态度,帮助我们能够比较顺利的完成了这次课程设计。 我们学好理论的同时也要努力提高动手组织实验的基本技能,培养分析解决电路问题的实际本领。其中我最大的感触就是在设计课题的过程当中,与老师多次进行交流并看着自己在老师的帮助下一步步克服难题、难点,以及改正每一个错误的成就感,都让我对本次的课程设计有了更深刻的理解和认识,也让我更加熟练的掌握了EDA这门课程。序号 综合成绩优秀( )良好( )中等( )及格( )不及格( )教师(签名)批改日期《EDA技术》课程设计报告课题: 交通灯控制器 院系 自动化学院 专业 自动化      班级 学号 姓名 指导教师 李华 、杨银贤 起止日期 2015.12.21-2015.12.25 2015 年 12 月。

    展开全文
  • 研究目的: 模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等...
  • 下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果。1 系统功能与要求交通灯控制器控制两个主干道交叉路口的交通,路口车辆多,直行信号、左转弯信号分开显示,a,b两个主干道的通行时间相等,...

    应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率。下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果。

    1 系统功能与要求

    交通灯控制器控制两个主干道交叉路口的交通,路口车辆多,直行信号、左转弯信号分开显示,a,b两个主干道的通行时间相等,其中指示直行的绿灯亮30s,指示左转弯的绿灯亮12s,绿灯变至红灯时,黄灯亮3s,以便于车辆能停在停车线内,红灯信号的最后3s相应的黄灯也同时亮,以便提示驾驶人员准备起步。在两个主干道路口都配备传感器用来检测有无车辆通行。当两个主干道都有车辆时,自动处于主干道a绿灯,主干道b红灯的状态,然后轮流切换通行。当主干道a无车辆时,自动处于主干道b绿灯,主干道a红灯的状态;反之亦然,以提高通行效率。

    2 设计与仿真

    根据交通灯控制器的功能与要求,将其总体电路分为分频器、信号控制器两个模块。外部脉冲振荡器的频率选为32768kHz,经分频器分频得1Hz的信号,1Hz信号用做信号控制器的计数脉冲,用VHDL设计组成交通灯控制器的分频器、信号控制器两个模块,在QuartusⅡ开发平台上,分别编译两个模块的VHDL程序,然后用原理图输入法形成图1所示的总体框图。

    图1 交通灯控器制总体框图

    其中信号控制器的VHDL程序如下:

    其中,Sa,Sb分别是a,b路口传感器的信号,aR,aY,aG,aLR,aLY,aLG分别代表控制主干道a的直行红灯、黄灯、绿灯,左转弯红灯、黄灯、绿灯的信号;bR,bY,bG,bLR,bLY,bLG分别代表控制主干道b的直行红灯、黄灯、绿灯,左转弯红灯、黄灯、绿灯的信号;aPR,aPG,bPR,bPG是人行道信号,en1是使能信号。en1=0时a,b两路口红灯同时亮,便于处理特殊情况。用QuartusⅡ对程序编译、仿真,得到的仿真波形如图2所示,经程序下载、实验验证,系统功能符合要求。

    图2 信号控制器的仿真波形

    基于VHDL设计交通灯控制器,外围电路少、功耗低、可靠性高,便于系统功能的修改,设计效率高。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,534
精华内容 1,413
热门标签
关键字:

交通灯控制器设计原理