精华内容
下载资源
问答
  • 交通信号灯

    2018-03-09 00:23:49
    计算机语言设计程序,从而控制交通信号灯 通过计时器控制四个方向时间长短
  • 太阳能LED交通信号灯由光伏极板、充放电控制器、蓄电池、LED交通信号灯系统构成。系统框图如图1所示。 图1 系统框图 其中,光伏极板是用来将太阳能转换成电能,为系统供电。 充放电控制器是将太阳能产生的电...
  • 交通信号灯的检测与识别是无人驾驶与辅助驾驶必不可少的一部分,其识别精度直接关乎智能驾驶的安全。一般而言,在实际的道路场景中采集的交通信号灯图像具有复杂的背景,且感兴趣的信号灯区域只占很少的一部分。针对...
  • 十字路口交通灯信号控制器设计要求: 1)东西通道和南北通道交替通行,东西通道每次放行时间大于南北通道每次放行时间。 2)绿灯亮表示可以通行,红灯亮表示禁止通行。 3)每次绿灯变红灯时,绿灯先闪转变黄灯(此时...
  • 微机原理课程设计-模拟十字路口交通信号灯

    万次阅读 多人点赞 2019-04-18 15:37:18
    一、设计任务描述 1.1设计目的 通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深... 控制LED,按照十字路口红绿灯的原理亮灭显示: (1) 东西方向车辆放行x秒...

    一、设计任务描述

    1.1设计目的

    通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。

    1.2 设计要求

         控制LED灯,按照十字路口红绿灯的原理亮灭显示:

      (1) 东西方向车辆放行x秒钟。即东西方向的绿灯和南北方向的红灯同时点亮x秒钟。

     ( 2) x秒钟后,东西方向的绿灯熄灭,黄灯闪烁4次,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。

     (3) 东西方向的黄灯闪烁4次后,转为南北方向放行x秒钟。即东西方向的红灯和南北方向的绿灯同时点亮x秒钟;      

        (4) 南北方向放行x秒钟后,转为南北方向的绿灯熄灭,黄灯闪烁4次,以警示将切换红绿灯。此时东西方向维持红灯点亮。      

      (5)南北方向的黄灯闪烁4次后,再转为东西方向车辆放行秒。如此循环重复。

      (6)当出现紧急情况时将红灯设置为全亮,以限制路况,及时解决交通事故。

     

    二、设计思路

    本次微机原理设计的题目是交通信号灯,它是通过对8255芯片和LED发光二极管的连接设置来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则规律地亮灭。交通信号灯由8255芯片控制的,用发光二极管来模拟实际生活中的交通灯,当出现紧急情况时将红灯设置为全亮,以限制路况,及时解决交通事故;当出现交通高峰期时还可以延长信号灯控制的时间。

    8255芯片包括四个口,即A口、B口、C口和一个控制口。通过对其控制端口赋予一定的控制字,来设定8255的工作方式,在本设计中,使8255工作于方式0,即基本输入输出方式,并将A口和B口都设置为输入,C口设置成输出。其中,A口与模拟紧急情况的开关连接,当发生紧急情况时将开关关合,红灯全亮,处理事故;当事故解除后,将开关断开,又恢复正常交通情况。B口控制黄灯的亮灭,黄灯闪烁时,红灯亮,绿灯全灭,闪烁的黄灯的位置与绿灯保持一致。C口控制红绿灯,红绿灯分东西南北四个方向,通过将控制字写入到控制口中,强制使与C口相连的LED显示管亮或灭,也就是模拟了实际情况中交通信号灯的控制。

    三:流程图:略

    四、主要器件及其简介

    4.1 可编程的并行接口8255

      4.1.1  8255的引线图

                                       图4.1 8255引脚图

    其中主要引脚介绍如下:

    1. 与外部设备端相连的引脚
    1. PA0~PA7:为A端口的8条输入/输出引脚。
    2. PB0~PB7:为B端口的8条输入/输出引脚。
    3. PC0~PC7:为C端口的8条输入/输出引脚。
    1. 与CPU相连的引脚
      1. RESET:复位信号,高电平有效。当RESET信号来到时,所有内部寄存器都被清零,同时3个数据端口被自动设为输入端口。
      2. D7~D0:双向数据信号线,用来传送数据和控制字
      3. :为片选信号线,当CS有效时,信号RD与信号WR对8255有效。
      4. :为写信号线,CPU通过OUT指令使其有效,与其他信号线一起实现对8255接口的写操作,将数据或状态信息从CPU中写入8255。
      5. :为读出信号线,CPU通过IN指令使其有效,与其他信号线一起实现对8255接口的读操作,将数据或状态信息从8255中读到CPU。
      6. A0、A1:端口选择信号线,8255内部有3个数据端口和1个控制端口,共4个。

     

    4.1.2 8255内部结构

    图4.2  8255A的内部结构

    1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

    2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

    3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

    4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

    4.1.3  8255的控制字

    8255有三种工作方式:方式0、方式1、方式2。可以通过在控制端口中设置控制字来决定它的工作方式。8255有两个控制字分别控制分别是:方式选择控制字和端口C按位置置位/复位控制字。方式选择控制字的第7位总是1,而端口C按位置位/复位控制字的第7位总是0。所以第7位称为区分两个控制字的标志位。

    1)方式选择控制字

    图4.3 方式选择控制字

    2)端口C按位置置位/复位控制字

    图4.4 端口C按位置置位/复位控制字

    8255的工作方式

    8255的工作方式主要有工作方式0、工作方式1和工作方式2。其中端口A可以工作在三种方式中的任一种;端口B只能工作在方式0和方式1;端口C通常作为控制信号使用,配合端口A和端口B的工作。在模拟流水线控制的设计中只用到了工作方式0,如表4.1所示。

     

    序号

    控制字

    A口

    C口上半部

    B口

    C口下半部

    1

    80H

    2

    81H

    3

    82H

    4

    83H

    5

    88H

    6

    89H

    7

    8AH

    8

    8BH

    9

    90H

    10

    91H

    11

    92H

    12

    93H

    13

    98H

    14

    99H

    15

    9AH

    16

    9BH

    表4.1 8255在方式0下的输入输出组合

    工作方式0,又称为基本工作方式。在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合。

    工作方式1,既选通输入输出方式。在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。

    工作方式2,又称双向输入输出方式。这种方式只有8255的口A才有。在A口工作于双向输入输出方式时,要利用C口的5条线才能实现。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。

    五:实际硬件接线图

    六:程序

    DATA SEGMENT                ;数据段定义
            XX DB 0
    DATA ENDS                    ;数据段定义结束
    SSTACK SEGMENT STACK       ;堆栈段定义
            DW 50 DUP(?)
    SSTACK ENDS                  ;堆栈段定义结束
    CODE SEGMENT                ;代码段定义
            ASSUME CS:CODE,DS:DATA,SS:SSTACK 
    START:  MOV AX,DATA
            MOV DS,AX
            MOV DX,06C6H        ;8255初始化:控制口地址送DX
            MOV AL,90H           ;工作方式选择,A入B出
            OUT DX,AL            ;控制字送入控制口
    L1:     MOV DX,06C4H         ;C口地址送入DX
            MOV AL,10100101B
            OUT DX,AL            ;24红灯亮,13绿灯亮
            CALL DELAY2         ;红绿灯延时时间
            CMP XX,1
            JZ PAUSE              ;检查是否有紧急情况
            AND AL,10100000B
            OUT DX,AL            ;24红灯亮,熄灭绿灯
            MOV CX,0004H         ;设置循环次数,即黄灯闪的次数
    L2:	    MOV DX,06C2H        ;B口地址送入DX,控制黄灯
            MOV AL,00000101B
            OUT DX,AL           ;13黄灯亮
            CALL DELAY1         ;调用DELAY1
            AND AL,00000000B
            OUT DX,AL            ;熄灭黄灯
            CALL DELAY1         ;调用DELAY1
            CMP XX,1
            JZ PAUSE             ;检查是否有紧急情况
            LOOP L2
            MOV DX,06C4H        ;C口地址送入DX
            MOV AL,01011010B    ;13红灯亮,24绿灯亮
            OUT DX,AL          
      		CALL DELAY2
    	    MOV CX,0004H        ;设置循环次数,即黄灯闪的次数
    L3:     MOV DX,06C2H        ;B口地址送入DX
            MOV AL,00001010B
            OUT DX,AL            ;24黄灯亮
            CALL DELAY1         ;调用DELAY1
            AND AL,00000000B
            OUT DX,AL            ;熄灭黄灯
            CALL DELAY1         ;调用DELAY1
            CMP XX,1
            JZ PAUSE              ;检查是否有紧急情况
            LOOP L3 
    PAUSE:  MOV DX,06C0H        ;A口地址送入DX
            IN AL,DX              ;读A口数据
            TEST AL,80H         ;测试最高位是否为1,最高位模拟紧急情况
                                 ;1为紧急情况,0为一般情况
            JZ L1                ;为0紧急情况结束,红绿灯重新正常工作
            MOV DX,06C4H        ;C口地址送入DX
            MOV AL,11110000B
            OUT DX,AL            ;紧急情况,红灯全亮
            JMP PAUSE            ;紧急情况时,红灯一直保持全亮 
    DELAY1 PROC NEAR           ;DELAY1定义
            PUSH CX
            PUSH DX
            PUSH AX              ;压入堆栈,保存数据
            MOV XX,0           ;为XX赋值0,只有在非紧急情况需要延时
            MOV CX,8000H         ;设置循环次数,控制延时时间
    L4:     MOV DX,06C0H         ;A口地址送人DX
            IN AL,DX              ;读A口数据
            TEST AL,80H           ;测试最高位,检查是否有紧急情况 
            JZ L5                  ;为0循环执行L4,有非0跳出程序返回,
                                   ;之后进入PAUSE检查是否有紧急情况
            MOV XX,1             ;为XX赋值1,出现紧急情况
            JMP L6                ;无条件转移到L6
    L5:     LOOP L4               ;循环执行L4
    L6:     POP AX
            POP DX
            POP CX                ;弹出保存的数据
            RET                   ;返回
    DELAY1  ENDP                ;DELAY1定义结束
    
    DELAY2  PROC NEAR          ;DELAY2定义
            PUSH CX
            PUSH DX
            PUSH AX               ;压入堆栈,保存数据
            MOV CX,0010H      
    L7:     CALL DELAY1         ;调用DELAY1
            LOOP L7              ;循环执行L8
            POP AX
            POP DX
            POP CX               ;弹出保存的数据
            RET                  ;返回
    DELAY2  ENDP               ;DELAY2定义结束
            CODE ENDS           ;代码段定义结束
            END START           ;程序结束

     

    展开全文
  • 交通信号灯状态监测技术是道路交通信号控制关键技术之一,直接关系到道路交通的安全与通畅。文中介绍了一种新型的多路交通信号灯状态监测方法。该方法基于互感检测原理,根据互感器次级输出电流,经信号调理电路处理...
  • 基于图像处理交通信号灯识别算法摘 要:交通信号灯是智能车辆在城市环境中行驶的主要指示信号,在城市交通安全中发挥了不可或缺的作用。交通信号灯通常设在交叉口,能够供应智能车辆的方位信息,查看和辨认交通信号...

    基于图像处理交通信号灯识别算法

    摘 要:交通信号灯是智能车辆在城市环境中行驶的主要指示信号,在城市交通安全中发挥了不可或缺的作用。交通信号灯通常设在交叉口,能够供应智能车辆的方位信息,查看和辨认交通信号灯的情况是智能车辆感知的重要任务。在简单工况下,可在各种颜色空间中利用信号灯颜色的先进行分割得到兴趣区域,然后再通过信号灯所特有的形状特征等进行进一步的判定。

    关键词:智能车辆;感知;颜色空间


    1. 前言

    智能车辆感知层主要有摄像头、雷达等,其中摄像头是视觉识别的重要元件。智能车辆可以通过摄像头进行交通标识识别,配合其它感知元件进行环境感知。交通信号灯是智能车辆在城市环境中行驶的主要指示信号,如交通信号灯等交通标示识别,是智能车辆进行路径规划、车道动态控制的前提因素。本文介绍了在简单工况下,利用 MATLAB 图像处理工具箱的相关函数在颜色空间中对信号灯颜色进行分割等操作,然后再通过信号灯形状特征等进行进一步的判断从而识别交通信号灯的简便方法。


    系统分析

    1. 交通信号灯


    道路交通信号灯[1]是指挥交通运行的信号灯,一般由红灯、绿灯、黄灯组成三个无图案圆形单位组成的一组灯,指导机动车通行。绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行;黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。

    国标 GB14887 中对道路交通信号灯有明确规定,如发光单元尺寸Φ200mm、Φ300 mm、Φ400 mm 三种规格发光单元在信号灯壳体上安装孔的直径分别为Φ200mm、Φ290

    mm、Φ390 mm,尺寸允许偏差±2 mm。对于无图案信号灯,出光面直径分别为Φ185mm、Φ275 mm、Φ365 mm,尺寸

    允许偏差±2 mm;对于有图案信号灯,出光面直径分别为Φ185mm、Φ275 mm、Φ365 mm,尺寸允许偏差±2 mm,图

    像尺寸符合国标附录。

    发光亮度在各个方向上的平均值不低于表 1 中的最小亮度值,且不大于 15000cd/m2。在可观察信号灯点亮区域内, 亮度应均匀,在基准轴上的发光亮度的最大值与最小值之比应不大于 2。

    表 1 有图案信号灯最低亮度值



    v2-b65a451755a8640c6d04d90abf3a7fb3_b.jpg


    发光强度在基准轴上不小于 150cd,且不大于 400 cd,其它方向上的发光强度应不低于表 2 规定。

    表 2 有图案信号灯轮廓最低光强



    v2-0fb5ad71a88d47fe840ce034069e42ed_b.jpg


    1. 彩色视觉


    彩色视觉(color vision)是一个生物体或机器基于物体所反射,发出或透过的光的波长(或频率) 以区分物体的能力。颜色可以以不同的方式被测量和量化;事实上,人对颜色的感知是一个主观的过程,即,脑响应当进入的光与眼中的若干种视锥细胞作用时所产生的刺激。

    彩色视觉常用颜色空间也称彩色模型(又称彩色空间或彩色系统)描述,它的用途是在某些标准下用通常可接受的方式对彩色加以说明。彩色模型是坐标系统和子空间的阐述。位于系统的每种颜色都有单个点表示。采用的大多数颜色模型都是面向硬件或面向应用的。



    v2-97ec815c71b874c20854327ef60e8530_b.jpg



    图 1 颜色空间模型

    其中 RGB 颜色空间是依据人眼识别的颜色定义出的空间,可表示大部分颜色。以 R(Red 红)、G(Green 绿)、B(Blue 蓝)三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。在大自然中有无穷多种不同的颜色,而人眼只能分辨有限种不同的颜色,RGB 模式可表示一千六百多万种不同的颜色,在人眼看来它非常接近大自然的颜色,故又称为自然色彩模式。

    亮度、色调、饱和度三个基本特征来描述;其中亮度是指明暗程度,色调是指光的颜色,饱和度是指颜色的深浅程度。颜色空间[2]模型如图 1 所示。

    H 参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别相隔 120 度。S 为一比例值,范围从 0 到 1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0 时,只有灰度。V 表示色彩的明亮程度,范围从 0 到 1。有一点要注意:它和光强度之间并没有直接的联系。

    1. MATLAB 图像处理工具箱


    Matlab 对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中,图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作,主要有以下功能模块:

        • Image Acquisition Toolbox(图像采集工具箱)
        • Image Processing Toolbox(图像处理工具箱)
        • Signal Processing Toolbox(信号处理工具箱)
        • Wavelet Toolbox(小波分析工具箱)
        • Statistics Toolbox(统计工具箱)
        • Bioinformatics Toolbox(生物信息学工具箱)



    Matlab 其具有上手容易,开发周期短,见效快;程序代码编写量明显减少;提供多种图像处理工具包等特点,比较适合进行图像识别相关工作。

    1. 识别系统方案实施


    本文分析了道路交通信号灯色彩特点、图形学特点等特征,结合彩色视觉 RGB 颜色空间基本特征,并利用 Matlab 图像处理工具箱进行图像的灰度分割、边缘检测等操作,能够实现多交通信号灯的识别,并制定其系统流程如图 2 所示:



    v2-91cd80ab5fa0b9b555bcc9fe30b56393_b.jpg



    图 2 识别系统流程图

    其中红色信号灯识别为例,首先将 RGB 值转换为相应的色调、饱和度和明度 (HSV) 坐标。rgb 可以是 p×3 颜色图数组或 m×n×3 图像数组。hsv 的大小与 rgb 相同。其次,



    利用红色色彩特征值,搜索敏感区域识别红色颜色区域;并结合交通信号灯外形特征完成结构元素。再次,对图形结构元素实现二值化图像,填充背景色。

    部分主要代码如下:

    %hsv 三元色图像hsv=rgb2hsv(a); h=hsv(:,:,1);

    s=hsv(:,:,2);

    v=hsv(:,:,3); figure(2) imshow(hsv);

    title('HSV 图像'); %转换为 hsv 图像并显示

    bw1=h>0.9|h<0.05; %0.9,0.05

    bw1=bw1.*(s>0.5); %检测红色区域se=strel('disk',3); %创建一个指定半径 R 的平面

    结构元素

    bw2=imopen(bw1,se); %用结构元素 SE 实现二值图像

    的 bw1 的形态开运算。

    bw2=bwfill(bw2,'holes'); %填充二进制图像的背景色figure

    imshow(bw2)

    依据以上方案在 MATLAB 环境中完成了整个算法搭建及实现,算法运行正常,随后分别针对网络资源道路交通信号灯图片、实际路况道路交通信号灯图片进行功能测试。


    试验效果

    1. 网络资源验证




    v2-9dc53d8820e55075ac7860c3ea3c327c_b.jpg



    图 3 网络资源红灯识别效果


    v2-44537cab0986a1bf86a5e532201d9387_b.jpg



    图 4 网络资源黄灯识别效果

    为了验证算法实际效果,首先通过网络资源下载相关交通信号灯图片,利用已完成的算法进行离线交通信号灯识别效果验证,其效果如图 3、图 4 所示。

    1. 实际路况验证


    为了进一步检验实际路口交通信号灯识别效果,本人通过手机(华为 LDN-AL20)拍摄实际路口交通信号灯图片进行实际效果检验,其效果如图 5、图 6 所示。



    v2-839f5c915526293a35f6b6959fbf6084_b.jpg



    图 5 实际路口红灯识别效果


    v2-e6c38d14797e3d078c4411c1161532b1_b.jpg



    图 6 实际路口绿灯识别效果

    根据验证效果分析,利用道路交通信号灯色彩特点、图形学特点等特征,结合彩色视觉 RGB 颜色空间基本特征, 并利用 Matlab 图像处理工具箱进行图像的灰度分割、边缘检测等操作,可以实现简单路况道路交通信号的识别。


    结论

    本文实现的评估方案是建立在道路交通信号灯色彩和形状特征基础上,利用 MATLAB 图像处理工具箱相关函数进行识别;相对于基于深度学习的方案,无需进行大量的前期数据采集、标注等工作,可以快速搭建及实现。经过测试可以满足简单路况道路交通信号的识别需求。

    下一步计划对色彩干扰、图形干扰等干扰因素进行剔除, 提高识别精度;并图像坐标上半区域敏感区域进行筛选,预计减少 50%运算量;其次根据实际车速,选取合理的间隔帧, 提高实时,可进一步优化方案。


    参考文献


    [1] 道路交通信号灯 GB14887-2011.

    [2] 陈超. MATLAB 应用实例精讲[M].北京:电子工业出版社,2011.11.

    展开全文
  • PAGEPAGE 3课程设计报告课程名称: FPGA现代数字系统设计设计名称: 交通信号灯控制器姓 名: * * *学 号: 2010000379专 业: 通 信指导教师: * * *起止日期: 2010.12.25 - 2011.1.9课 程 设 计 任 务 书设计名称...

    PAGE

    PAGE 3

    课程设计报告

    课程名称: FPGA现代数字系统设计

    设计名称: 交通信号灯控制器

    姓 名: * * *

    学 号: 2010000379

    专 业: 通 信

    指导教师: * * *

    起止日期: 2010.12.25 - 2011.1.9

    课 程 设 计 任 务 书

    设计名称:

    设计要求:

    (1) 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

    (2) 红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。

    (3) 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

    (4) 主、支干道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,设立45s、25s计时、显示电路。

    (5) 在每次由绿灯亮到红灯亮的转换过程中,要亮5s黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5s计时、显示电路。

    (6)发生紧急事件,如救护车、警车、抢险车通过,可以手动控制四个方向的红灯全亮。

    设计目的和意义

    通过应用Verilog语言在QuartusⅡ软件平台上设计交通信号灯控制器,并借助硬件来测试仿真效果。通过课程设计,熟悉硬件编程语言的应用,特别是有限状态机的灵活使用,为以后进一步的学习实践打下良好的基础。

    设计原理

    (1) 主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。

    (2) 选择1HZ时钟脉冲作为系统时钟。

    (3) 45s、25s、5s定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,启、闭三色信号灯,并启动另一计时电路。

    (4) 交通灯状态变化如表1及图1所示:

    表1:交通灯状态图

    图1:交通灯状态图

    (5) 交通灯设计输入信号4个:CLK(时钟),EN(使能),EMERGENCY(紧急),BCHECK(检测) ;输出信号4个:LAMPA(主干道信号灯),LAMPB(支干道信号灯),ACOUNT(主干道计数器),BCOUNT(支干道计数器)。交通灯控制原理如图2所示。

    图2:交通灯原理图

    详细设计步骤

    (1) 确定4个输入信号与4个输出信号,具体见图2;

    (2) 将50MHZ时钟分频为1MHZ;

    (3) 设计红黄绿3中信号灯切换的时间及顺序;

    (4) 设计支路检测状态下的信号灯切换;

    (5) 设计紧急(EMERGENCY)状态下信号灯的切换;

    (6) 程序使用3always块[1],详细代码如下:

    module traffic_control(CLK,EN,EMERGENCY,BCHECK,LAMPA,LAMPB,ACOUNT,BCOUNT);

    output[2:0] ACOUNT,BCOUNT;

    output[2:0] LAMPA,LAMPB;

    reg clk1;

    input CLK,EN,EMERGENCY,BCHECK;

    reg[2:0] numa,numb;

    reg tempa,tempb;

    reg[25:0]count;

    reg[2:0] counta,countb;

    reg[2:0] ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;

    reg[2:0] LAMPA,LAMPB;

    /* 信号定义与说明:

    CLK: 为同步时钟;

    EN: 使能信号,为1 的话,则控制器开始工作;

    LAMPA: 控制A 方向四盏灯的亮灭;其中,LAMPA0~LAMPA2,分别控制A 方向的绿灯、黄灯和红灯;

    LAMPB: 控制B 方向四盏灯的亮灭;其中,LAMPB0 ~ LAMPB2,分别控制B 方向的绿灯、黄灯和红灯;

    ACOUNT: 用于A 方向灯的时间显示,8 位

    BCOUNT: 用于B 方向灯的时间显示,8 位*/

    always @(posedge CLK ) //将50MHZ时钟分频为1MHZ

    begin

    if(count=

    begin

    count<=0;

    clk1<=~clk1;

    end

    else

    count<=count+1;

    end

    assign ACOUNT=numa;

    assign BCOUNT=numb;

    always @(EN )

    if(!EN)

    begin

    展开全文
  • 设计通过8255可编程并行接口实现了对南北、东西两个方向交通信号灯状态的转换控制;通过软件定时的方法实现了对两个方向车辆通行时间的计时控制和黄灯的闪烁控制;通过键盘与数码管显示两个双位数字计时。 ① 8255...

    课程设计的要求:

    ① 南北方向的红灯亮16秒;同时东西方向的绿灯亮12秒;东西方向和南北方向的数码管(各两位)分别显示倒计时,下同。
    ② 12秒之后,东西方向的绿灯灭,黄灯(红灯和绿灯一起闪烁为黄灯)闪烁3秒。3秒之后,东西方向黄灯灭,红灯亮。同时南北方向的绿灯亮。
    ③ 12秒之后,南北方向的绿灯灭,黄灯闪烁3秒。3秒之后,南北方向黄灯灭,红灯亮。同时东西方向的绿灯亮。
    ④ 重复上述过程。

    设备:

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

    设计原理

    设计通过8255可编程并行接口实现了对南北、东西两个方向交通信号灯状态的转换控制;通过软件定时的方法实现了对两个方向车辆通行时间的计时控制和黄灯的闪烁控制;通过键盘与数码管显示两个双位数字计时。
    ① 8255结构
    8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示

    在这里插入图片描述
    在这里插入图片描述
    8255A有三种工作方式:基本输入/输出方式、单向选通输入/输出方式和双向选通输入/输出方式:
    方式0:基本输入/输出方式。方式0是8255A的基本输入/输出方式,其特点是与外设传送数据时,不需要设置专用的联络(应答)信号,可以无条件的直接进行I/O传送。
    方式1:单向选通输入/输出方式。方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据。
    方式2:双向选通输入/输出方式。方式2为双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。
    8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。

    电路连接图如下:

    在这里插入图片描述

    程序代码设计流程

    在这里插入图片描述

    源代码如下:

    DATA SEGMENT 
    PORTA     EQU   600H;8255的A、B、C口地址
    PORTB     EQU   602H     
    PORTC     EQU   604H    
    PORTD     EQU   606H  ;8255的控制寄存器
    DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;对应0~9
    CHU DB 10
    DATA ENDS
    CODE SEGMENT
            ASSUME CS:CODE,DS:DATA
    START: MOV AX,DATA
           MOV DS,AX
           MOV DX,PORTD    ;设定8255工作方式            
           MOV AL,80H   ;选择工作方式0,A口和B口为输出
           OUT DX,AL      
    LOOP1: 
    	   MOV DX,PORTA ;写A口发出的数据,北方向绿灯亮,西方向红灯亮
           MOV AL,3CH
           OUT DX,AL
           CALL DALLY1
           MOV CX,02H
           MOV TIME2,04H
    L1:    
    	   MOV DX,PORTA  ;写A口发出的数据,北方向黄灯亮,西方向红灯亮
           MOV AL,0FCH
           OUT DX,AL
           DEC TIME
           DEC TIME2            
           CALL DALLY2
           MOV DX,PORTA ;写A口发出的数据,北方向黄灯灭,东西方向红灯亮
           MOV AL,30H
           OUT DX,AL
           DEC TIME
           DEC TIME2
           CALL DALLY2
           LOOP L1
           
           MOV DX,PORTA  ;写A口发出的数据,北方向红灯亮,西方向绿灯亮
           MOV AL,0C3H
           OUT DX,AL
           CALL DALLY11
           MOV CX,02H  ;黄灯闪烁的次数
           MOV TIME,04H
    L2:    
    	   MOV DX,PORTA ;写A口发出的数据,西方向黄灯亮,北方向红灯亮
           MOV AL,0F3H
           OUT DX,AL
           DEC TIME 
           DEC TIME2      
           CALL DALLY2
           MOV DX,PORTA ;写A口发出的数据,东西方向黄灯灭,北方向红灯亮
           MOV AL,0C0H
           OUT DX,AL    
           DEC TIME
           DEC TIME2   
           CALL DALLY2
           LOOP L2
           
           MOV AH,1     ;判断功能,是否结束调用程序
           INT 16H                   
           JZ  LOOP1                
    QUIT:  MOV AX,4C00H               
           INT 21H       ;系统功能调用
    
    DALLY1 PROC NEAR   ;软件延时子程序
           PUSH CX
           PUSH AX
           MOV CX,0CH  ;循环次数  
          
           MOV TIME,10H
           MOV TIME2,0CH
           PUSH CX
           CALL DISPY1                          
    	   POP CX	   
    D3:    
    	   DEC TIME
    	   DEC TIME2
    	   PUSH CX
    	   CALL DISPY1
           POP CX
           LOOP D3  
           POP  AX
           POP  CX
           RET
    DALLY1 ENDP
    
    DALLY11 PROC NEAR   ;软件延时子程序
           PUSH CX
           PUSH AX
           MOV CX,0CH  ;循环次数  
          
           MOV TIME2,10H
           MOV TIME,0CH
           PUSH CX
           CALL DISPY1                          
    	   POP CX	   
    D31:    
    	   DEC TIME
    	   DEC TIME2
    	   PUSH CX
    	   CALL DISPY1
           POP CX
           LOOP D31 
           POP  AX
           POP  CX
           RET
    DALLY11 ENDP
    
    DALLY2 PROC NEAR     ;软件延时子程序,黄灯亮与灭的闪烁时间间隔,
           PUSH CX
           PUSH AX
    	   CALL DISPY1    
           POP  AX
           POP  CX
           RET
    DALLY2 ENDP
    
    
    DISPY1 PROC NEAR
    	   MOV BX,OFFSET DTABLE
    	   MOV AL,TIME
    	   CBW 					;将AX的高8位置0
    	   MOV CL,CHU			;除数10
    	   DIV CL 				;/十位数存入AL,余数/个位数存入AH
    	   MOV SI,3000H			;定义一个缓冲区
    	   MOV [SI],AL			;存入[SI],X1
    	   MOV [SI+1],AH 		;X2
    	   
    	   MOV AL,TIME2
    	   CBW 					;将AX的高8位置0
    	   MOV CL,CHU			;除数10
    	   DIV CL 				;/十位数存入AL,余数/个位数存入AH
    	   
    	   MOV [SI+2],AL			;存入[SI],X1
    	   MOV [SI+3],AH 
    	   
    	   PUSH AX
    	   PUSH CX 	                         
    	   MOV CX,1DH;通过延时不断刷新数码管                         ..........
    C1:    MOV AX,0FFFFH
    C2:	   DEC AX
    	   CALL DIS;调用显示子程序
    	   JNZ C2
    	   LOOP C1;通过循环调用不断刷新数码管显示
    	   POP CX
    	   POP AX
    	   PUSH CX
    	   PUSH AX
    	   MOV CX,0AH
    C3:	   CALL DIS
    	   LOOP C3
    	   POP AX
    	   POP CX
    	   RET
    DISPY1 ENDP
    
    DIS PROC NEAR			;数码管显示子程序
    	   PUSH AX
    	   PUSH DX
    	   MOV SI,3000H		;找到存数的缓冲区
    	   MOV AL,0FEH  	;1111 1110B,选中X1数码管
    	   MOV DX,PORTC 	;选中PC口,进而选中数码管
    	   OUT DX,AL
    	   MOV AL,[SI]  	;取出缓冲区中存放的键值
    	   XLAT  			;查表指令,将以BX为基地址,AL为位移量的字节存储单元中的数赋给AL
    	   MOV DX,PORTB		;写入数码管A~Dp
    	   OUT DX,AL
    	   CALL DELAY1		;调用延时函数
    	   MOV AL,0FDH  	;1111 1101H,选中X2数码管
    	   MOV DX,PORTC
    	   OUT DX,AL
    	   MOV AL,[SI+1]
    	   XLAT				;((BX)+(AL))送给(AL)
    	   MOV DX,PORTB
    	   OUT DX,AL
    	   CALL DELAY1
    	   MOV AL,0FBH  	;1111 1011B,选中X3数码管
    	   MOV DX,PORTC
    	   OUT DX,AL
    	   MOV AL,[SI+2]  
    	   XLAT  
    	   MOV DX,PORTB
    	   OUT DX,AL
    	   CALL DELAY1
    	   MOV AL,0F7H  	;1111 0111B,选中X4数码管
    	   MOV DX,PORTC 
    	   OUT DX,AL
    	   MOV AL,[SI+3]  
    	   XLAT  
    	   MOV DX,PORTB
    	   OUT DX,AL
    	   CALL DELAY1
    	   POP AX
    	   POP DX
    	   RET
    DIS ENDP
    
    DELAY1 PROC NEAR		;数码管显示延时函数
    	   PUSH AX
    	   PUSH CX
    	   MOV CX,02H
    C33:   MOV AX,06FFH
    C4:	   DEC AX
    	   JNZ C4
    	   LOOP C33
    	   POP CX
    	   POP AX
    	   RET
    DELAY1 ENDP
    
    CODE ENDS
         END START
    

    结果分析

    首先,南北方向的红灯亮16秒,东西方向的绿灯亮12秒;东西方向的数码管从12开始倒计时,南北方向的数码管从16开始倒计时,12秒之后,东西方向的绿灯灭,黄灯(红灯和绿灯一起闪烁为黄灯)闪烁3秒,东西方向数码管从3开始倒计时。3秒之后,东西方向黄灯灭,红灯亮。此刻,南北方向的数码管已减小到0,红灯灭,绿灯亮。接着,东西方向的数码管从16开始倒计时,南北方向的数码管从12开始倒计时,12秒之后,南北方向的绿灯灭,黄灯(红灯和绿灯一起闪烁为黄灯)闪烁3秒,数码管从3开始倒计时,3秒之后,南北方向黄灯灭,红灯亮。此刻,东西方向由红灯变为绿灯。可重复上述过程。当从键盘任意按下一个键,便可以停止。

    展开全文
  • 一、所需元 1 × DFduino UNO R3(以及配套USB...//项目三: 制作交通信号灯 int carRed = 12; //设置汽车灯 int carYellow = 11; int carGreen = 10; int button = 9; //按钮引脚 int pedRed = 8; //设置行人灯 i.
  • /*****************************************************十字路口交通灯控制 C 程序******************************************************/#define uchar unsigned char#define uint unsigned int#include/*****...
  • 基于MATLAB的智能交通信号灯控制系统的实现

    万次阅读 多人点赞 2019-04-06 18:43:22
    早期使用的交通信号灯是固定配时的调控方式,无法随着车流量的变动而调整绿灯时间,这降低绿灯的使用效益,增大了车辆在交叉口的延误。堵车现象频繁发生,给市民工作生活带来了极大不便,国民经济受到影响。这时候...
  • PLC设计交通信号灯

    千次阅读 2021-01-11 20:44:25
    2、加深对PLC编程原理的理解 3、了解PLC的实际使用过程 二、实验内容及要求 三、实验程序及结果 实验程序: 1、首先设置一个启动按钮DI02,一个暂停复位按钮DI03,设置中间变量M0自锁电路。 2、当启动按钮按下...
  • 河南职业技术学院毕业设计(论文)题 目单片机控制交通信号灯系(分院) 电气工程系学生姓名 王 强学 号专业名称 电子信息工程技术指导教师 季小榜2014年3月3日河南职业技术学院电气工程系(分院)毕业论文任务书姓 名王强...
  • 数电课程设计交通信号灯 1.综合应用数字电路知识设计一个交通灯控制器。了解各种元器件 的原理及其应用,锻炼自己的动手能力和实际解决问题的能力。 2.深入了解交通灯的工作原理
  • verilog语言实现FPGA板的交通信号灯

    千次阅读 多人点赞 2021-03-28 14:46:56
    设计题目: 交通信号灯 专业班级: 学生姓名: 左轩Leo 学 号: 指导教师: 目录 一、概述 二、任务书(任务功能介绍) 三.系统设计 1.基本原理 2.系统设计框图 四、各单元设计(Verilog源代码及仿真图) 五、总体...
  • 本题模拟场景为十字路口交通信号灯及路口公共时钟,通过Proteus8仿真平台进行模拟。南北路口方向和东西路口方向均设有红、黄、绿三种状态灯以及数字倒计时显示,同时设有路口公共时钟模拟显示当前时间,提供时钟控制...
  • 毕业论文(设计)题 目: 基于plc的交通信号灯模拟控制系统的设计系 别: 装备制造系专 业: 机电一体化技术学生姓名: 王伟杰学 号: 年级: 2013级指导教师: 田淑娟 职称: 讲师毕业设计(论文)评议意见书专业...
  • 在生活中很实用,也可以运用到初学者对单片机进一步的了解
  • 微机程序设计应用:交通信号灯控制系统

    万次阅读 多人点赞 2015-02-14 19:43:16
    设计任务 交通信号灯控制系统:要求能显示剩余时间和控制红、黄、绿三色灯的显示。 2、总体方案设计与方案论证(1) 总体方案设计 设计路口交通灯控制系统,使用LED显示单元的两组发光二极管(红黄绿)分别模拟十字...
  • 一、实验原理 我就不多叙述了,课本上说的已经够多了,其次我自己也是借鉴别人的代码写出来的 二、代码运行效果 三、代码 #include <GL/glut.h> #include <math.h> #include <stack> using ...
  • 利用深度学习进行交通灯识别by ... 通过深度学习识别交通信号灯 (Recognizing Traffic Lights With Deep Learning) 我如何在10周内学习深度学习并赢得5,000美元 (How I learned deep learning in 10 weeks and won ...
  • 这是一份基于Verilog的交通灯设计工程文件,已经在QUARTUS II 8.0 (32-BIT)上测试通过,而关于十字路口交通灯控制系统的工作原理的资料建议自行到网上找一找。
  • 城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。通过所学的相关微机原理与接口技术及汇编语言的基本知识,结合实验要求...
  • 交通灯识别系统.docx

    2021-05-04 09:57:13
    然而由于道路状况的复杂性与交通信息的多样性使得驾驶员在行驶的过程中注意力不容易集中,不能及时获取道路信息从而酿成车祸,严重影响了公共安全。当前如此严峻的情况下,利用高新技术开发具有辅助驾驶或自动驾驶...
  • 【51单片机学习笔记】基于STC89C52制作的交通信号灯

    万次阅读 多人点赞 2017-06-19 20:36:39
    基于51单片机的交通信号灯模型
  • 十字路口交通灯控制设计(附电路图及源代码)《计算机控制技术》课程设计报告课题名称 交通灯控制设计专 业班 级学生姓名学 号指导教师201*年 6 月 8日目录TOC \o "1-1" \h \u HYPERLINK \l _Toc16316 一、总体方案...
  • 微机原理课程设计设计任务及要求:交通信号灯的控制:通过8255A并口来控制LED发光二极管的亮灭。A口控制红灯,B口控制黄灯,C口控制绿灯。输出为0则亮,输出为1则灭。用8253定时来控制变换时间 。要求:设有一个十字...
  • 阿波罗——交通信号灯感知

    千次阅读 2018-07-26 15:07:36
    交通信号灯感知 本文档详细的介绍了Apollo2.0中交通信号感知模块的工作原理。 简介 交通信号灯感知模块通过使用摄像头提供精确全面的路面交通信号灯状态。 通常情况下,交通信号灯有3种状态: 红 黄 绿 然而...
  • 采用单片机的I/O口P0口通过上拉电阻和交通灯相连接,P3.0、P3.1口接到数码管控制位上,控制数码管的显示,程序放在STC89C52RC单片机的ROM中,在十字路口的四组红、黄、绿交通灯中,由单片机的P1.0-P1.2 、P1.5-P1.7...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,958
精华内容 1,183
关键字:

交通信号灯的工作原理