精华内容
下载资源
问答
  • 交通灯定时控制系统设计在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮表示该条道路上未过停车线的车辆停止...
  • 交通灯定时控制系统设计、制作。这是我同学课程设计的仿真 Multisim仿真图 有什么问题可以问我 qq469482866
  • 数字电子技术课程设计交通灯定时控制系统设计、制作+Multisim仿真图
  • 交通灯定时控制系统设计、制作》 课程设计报告
  • ⒈ 了解交通灯管理的基本工作原理 ⒉ 熟悉8259A中断控制器的工作原理和应用编程 ⒊ 熟悉8255A并行接口的各种工作方式和应用 ⒋ 熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法 ⒌ 掌握...
  • 数电课设_十字路口交通信号灯定时控制系统
  • 交通灯定时控制

    2011-12-18 14:09:36
    交通灯控制系统的组成框图如图1所示。状态控制器主要用于记录十字路口交通灯的工作状态,通过状态译码器分别点亮相应状态的信号灯。秒信号发生器产生整个定时系统的时基脉冲,通过减法计数器对秒脉冲减计数,达到...
  • 基于51单片机的交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    设计为基于51单片机交通灯系统设计,采用模块化、层次化设计。运用单片机AT89C51进行数据的分析和处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测...

    第一章 硬件设计与原理
    以AT89C51单片机为核心,起着控制作用。系统包括数码管显示电路、复位电路、时钟电路、发光二级管电路和按键电路。设计思路分为六个模块:复位电路、晶振电路模块、AT89C51、数码管显示电路、发光二级管电路和按键电路这六个模块。

    在这里插入图片描述

    1.2 硬件设计分析
    1.2.1 电源的设计
    系统电源使用直流5伏。
    由电脑USB接口提供电源。
    USB是通用串行总线(Universal Serial Bus)接口的简称。它是目前使用比较广泛的电脑接口之一,主要版本有1.0、1.1和最新的2.0三种版本。根据USB总线的工业标准,它可以提供额定功率为5V/500mA的电源供USB设备使用。
    1.2.2 单片机最小系统
    51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件:
    一个8位CPU;一个片内振荡器及时钟电路;
    4KB的ROM程序存储器;
    一个128B的RAM数据存储器;
    寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;
    32条可编程的I/O口线;
    两个16位定时/计数器;
    一个可编程全双工串行口;
    5个中断源、两个优先级嵌套中断结构。
    如图1-2-1所示为AT89C51单片机基本构造,其基本性能介绍如下:
    图1-2-1 AT89C51单片机

    AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,3个16位可编程定时计数器,2个全双工串行通信口,STC89C51RC可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
    AT89C51的主要特性如下表所示:

    在这里插入图片描述

    AT89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
    P0口:P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
    P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash编程和程序校验期间,P1接收低8位地址。
    P2口:P2是一个带有内部上拉电阻的8 位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。
    P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
    RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
    ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个AL脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条 MOVX 和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
    PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
    EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
    XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
    XTAL2:振荡器反相放大器的输出端。
    单片机最小原理图如图1-2-2所示。
    图1-2-2 单片机最小系统

    单片机最小系统说明:
    时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。
    时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
    一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。
    单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。
    1.2.3 显示系统
    数码管是一种半导体发光器件,其基本单元是发光二极管。
    数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
    数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
    1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动(要知道一个89C51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
    2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
    本设计中数码管采用的是动态驱动方式。
    数码管外形如图1-2-3,数码管电路结构如图1-2-4。

    图1-2-3 数码管外形图
    图1-2-4 数码管电路结构示意图

    在这里插入图片描述
    图1-2-5 数码管显示电路
    1.2.4 发光二级管电路

    图1-2-6 发光二级管电路
    1.2.5 按键电路
    图1-2-7 按键电路

    第二章 软件设计与分析
    2.1 软件设计的组成
    该系统由延时子函数、数码管显示子函数、定时器0中断子函数、主函数和数据定义这几部分组成。
    在这里插入图片描述

    在这里插入图片描述

    //----------------------------------------------------------------------//
    上传过程感觉繁琐,里面可能有不全面的地方,请见谅。下面的是实现的目的。以及电路原理图

    **本次设计的主要目的是设计一个城市十字路口的交通灯控制系统,设计中将交通灯控制系统分为东西方向(主干道)和南北方向(次干道)两个方向,且在东西南北四个路口的每个路口设置红、绿、黄三个交通信号灯(用发光二极管模拟)和一个二位的LED数码显示管。设计的要求是规定在每一段时间内东西和南北两个方向中只有一个方向能够通行,另一个方向处于禁行状态,然后在经过一段时间后,禁行的方向和通行的方向互相转换状态,原来通行的状态变禁行状态,原来禁行的状态变为通行状态,如此循环下去。详细过程如下图2-1:
    状态① 状态②
    图 1图2-1 交通灯状态图
    状态①:东西方向的交通灯黄灯闪烁3秒后,红灯熄灭,绿灯点亮(东西方向允许车辆和行人通行),同时南北方向绿灯熄灭,红灯点亮(南北方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态②。
    状态②:南北方向黄灯闪烁3秒后,红灯熄灭绿灯点亮(南北允许车辆和行人通行);同时东西方向绿灯熄灭,红灯点亮
    (东西方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态①。
    接下来在没有人为干涉下将会一直按照上述进行循环。设计中还外设6个按键实现对交通灯控制系统的调控作用。

    电路原理图

    在这里插入图片描述

    在这里插入图片描述

    //——————————————————————————-——————————//
    相应的代码已经上传

    下载地址
    https://download.csdn.net/download/weixin_43442020/12231456

    下载链接里可以下载,解压后里面有压缩文件,压缩文件里面的资料更详细

    展开全文
  • 本系统以DVCC实验箱为实验平台,由... 在此次关于交通灯课程设计控制系统主要有8255并行口、8253定时/计算器、8259单极中断控制器实验等芯片组成。整个课程设计通过8253定时功能和8259中断功能来实现交通灯控制系统
  • 因此本文在EDA技术的基础上,利用FPGA的相关知识设计交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过Max+PlusⅡ软件进行了模拟仿真,并到FPGA器件中进行硬件的调试,验证了设计的交通...
  • 汽车数量越来越多,而现在的红绿灯处的交通灯模式采用的是定时控制,由于车流量是随时变化的,当此时没有车通过,而相对的车要等到此方向的绿灯结束显示红灯才能通过,在时间和空间方面的应变性能较差,这样不仅浪费...
  • 微机原理交通灯控制系统设计

    万次阅读 多人点赞 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

    展开全文
  • 交通灯控制系统设计

    千次阅读 2020-01-08 12:41:06
    设计题目: 交通灯控制系统设计 一、研究目的与意义 随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市...

    《微机原理与接口技术》课程设计报告

    设计题目: 交通灯控制系统的设计

    一、研究目的与意义

    随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
    在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞。
    二、系统总体分析
    系统使用8086及数码管、LED灯,实现红绿灯转换倒计时以及红路灯转换。
    使用8086、8255、8253、数码管、交通灯构成电路。由于8086数据I/O口与地址I/O口分时复用,故使用地址锁存器,根据ALE信号先将地址锁存,然后输出实际有效数据信号。
    8255有三个端口PA、PB、PC口,其中PC口又可以分为高四位与低四位分别进行操作。在本系统中,PA口与PB口、PC口低四位输出信号,PC口高四位输入信号。在系统设计初始时,我设计了两个时钟信号来源,分别是直接使用1HZ脉冲信号计时和使用1MHZ CLOCK的8253芯片计时。经过反复思考与实验,最终发现脉冲信号与8086速度无法匹配,故舍去。
    三、系统硬件设计
    3.1 硬件设计说明
    8086分为两种工作模式:最大模式与最小模式。8086处理器的最小工作模式在系统中只有一个微处理器,所有的总线控制信号都由此处理器产生。而最大工作模式在系统中包含两个或多个处理器,一个主处理器为8086,其他为协处理器。
    根据系统的规模,选用8086最小工作模式,即8086第33号引脚MN/MX引脚接正电极。ready连接正极。

    在这里插入图片描述

    图1 8086最小系统连接

    为平衡外设与CPU速率不匹配,使用8255芯片。
    由于8086数据总线与地址总线复用,所以AD应与地址锁存器相连接,ALE作为锁存信号。同事AD应该与8255、8253连接。
    3.2 分模块设计与主要器件描述

    在这里插入图片描述

    图2 锁存器阵列

    74273锁存器:以ALE为锁存讯号,为上升沿触发,D0~D7端口为输入端,与8086 AD端口相连。Q0~Q7为分离出来的地址信号。
    在这里插入图片描述

    图3 译码电路

    M/IO表示目前CPU对内存操作还是IO端口操作,所以此处作为译码芯片74154的一个片选信号。A、B、C、D为译码输入, IO0~IO15为译码输出。
    在这里插入图片描述

    图4 8253芯片

    8253 CS—片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。
    RD、WR——读/写控制命令,由CPU输入, 低电平有效。RD有效时,CPU读取由A1A0所选定的通道内计数器的内容。WR有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作。
    由于本系统选用软件触发,所以GATE上拉。为匹配速率,使用高频率的时钟信号,此处选择1MHZ。
    在这里插入图片描述

    图5 8255芯片

    8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:
    A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
    B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
    C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
    CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
    RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
    WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
    D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
    在这里插入图片描述

    图6 数码管与交通灯

    3.3 系统硬件连接图

    在这里插入图片描述

    图7 电路图(1)
    在这里插入图片描述
    图8 电路图(2)

    四、系统软件设计
    4.1 软件设计说明
    (简单说明控制软件的设计思路和控制流程)
    4.2 程序流程图

    4.3 程序清单

    ;8255
    A_PORT EQU 200H
    B_PORT EQU 202H
    C_PORT EQU 204H
    CRTL_PORT EQU 206H
    ;8253
    PORT_0 EQU 400H
    PORT_1 EQU 402H
    PORT_2 EQU 404H
    PORT_CRTL EQU 406H
    
    STACK SEGMENT STACK
       DB 256 DUP(?)
    STACK ENDS
    EDATA SEGMENT
       DB 10 DUP(?)
    EDATA ENDS
    DATA SEGMENT
       OUTBUFF DB 20 DUP(00H)
       LEDTAB DB 03fh,006h,05bh,04fh,066h,06dh,07dh,007h,07fh,06fh,077h,07ch,039h,05eh,079h,071h
    DATA ENDS
    CODE SEGMENT PUBLIC 'CODE'
       ASSUME CS:CODE,DS:DATA,SS:STACK,ES:EDATA
    START:	MOV AX, DATA
    	MOV DS, AX
    	MOV AX, EDATA
    	MOV ES, AX
    	MOV AX, STACK
    	MOV SS, AX
    	
    	MOV AL, 088H
    	MOV DX, CRTL_PORT
    	OUT DX, AL
    	;8253
    	MOV AL, 34H
    	MOV DX, PORT_CRTL
    	OUT DX, AL
    	MOV AL, 1EH
    	MOV DX, PORT_0
    	OUT DX, AL
    	MOV AL, 03H
    	OUT DX, AL
    	
    
    	
    	MOV AX, 15
    	LEA DI, OUTBUFF
    O4:	CMP BYTE PTR[DI + 10], 00H
    	JNZ O1
    	INC BYTE PTR [DI + 10]
    	
    	MOV DX, B_PORT
    	MOV AL, 0100B
    	OUT DX, AL
    	
    	MOV AX, 5
    	JMP LOP1
    O1:	CMP BYTE PTR [DI + 10], 01H
    	JNZ O2 
    	INC BYTE PTR [DI + 10]
    	
    	MOV DX, B_PORT
    	MOV AL, 0010B
    	OUT DX, AL
    	
    	MOV AX, 2
    	JMP LOP1
    O2:	CMP BYTE PTR [DI + 10], 02H
    	JNZ O3
    	INC BYTE PTR [DI + 10]
    	
    	MOV DX, B_PORT
    	MOV AL, 0001B
    	OUT DX, AL
    	
    	MOV AX, 5
    	JMP LOP1
    O3:	CMP BYTE PTR [DI + 10], 03H
    	JNZ O0
    	INC BYTE PTR [DI + 10]
    	
    	MOV DX, B_PORT
    	MOV AL, 0010B
    	OUT DX, AL
    	
    	MOV AX, 2
    	JMP LOP1
    O0: 	CMP BYTE PTR [DI + 10], 04H
    	MOV AX, 00H
    	MOV [DI + 10], AX
    	JMP O4
    	
    LOP1:	
    	PUSH AX
    	CALL DISP
    	MOV DX, C_PORT
    	IN AL, DX
    	TEST AL, 10H
    	JNZ nz
    	POP AX
    	DEC AX
    	JNZ LOP1
    	JMP O4
       nz: 
    	POP AX
    	JMP LOP1
    	
    	;;显示
    	DISP PROC NEAR
     AGAIN: PUSH AX
    	PUSH BX
    	PUSH CX
    	PUSH DX
    	PUSH SI
    	PUSH DI
    	PUSH BP
    	MOV CL, 0FEH
    	LEA SI, OUTBUFF
    	CALL D10
    	MOV [SI], AX
     LEDDISP:
     
    	MOV AL, CL
    	MOV DX, C_PORT
    	OUT DX, AL
    	LEA BX, LEDTAB
    	MOV AL, [SI]
    	XLAT
    	MOV DX, A_PORT
    	OUT DX, AL
    	CALL DELAY_1S
    	MOV AL, 0H
    	MOV DX, A_PORT
    	OUT DX, AL
    	CMP CL, 0FDH
    	JZ NEXT
    	INC SI
    	ROL CL, 1
    	JMP LEDDISP
       NEXT:
    	POP BP
    	POP DI
    	POP SI
    	POP DX
    	POP CX
    	POP BX
    	POP AX
    	RET
       DISP ENDP
       
       ;;延时
       DELAY_1S PROC
    	PUSH CX
    	PUSH BX
    	MOV BX, 01H
    	D1:MOV CX, 06FH
    	D2:LOOP D2
    	DEC BX
    	JNZ D1
    	POP BX
    	POP CX
    	RET
       DELAY_1S ENDP
       
       ;;进制转换
       D10 PROC NEAR
          PUSH BX
          MOV BL, 10
          DIV BL
          POP BX
          RET
       D10 ENDP
       CODE ENDS
          END START
          
    
    
    
    
    
    
    展开全文
  • 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: •中央处理器: 中央...
  • 但是车流量是随时变化的,而传统的交通灯模式采用的是定时控制,反而容易造成交通堵塞。因此我们需要根据不同的交通路况设置通行时间,本文采用模糊控制算法,设计了一种智能交通灯监控系统。 1、总体方案 ...
  • 定时1秒 MOV TMOD,#10H ;T1定时器,方式1 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 LOOP: JBC TF1,NEXT SJMP LOOP NEXT: MOV TL1,#080H MOV TH1,#3CH DJNZ R3,LOOP ;数据传送: DEC R2 ;R2自动减1 MOV ...
  • 微机原理 交通灯控制系统课程设计

    热门讨论 2009-07-08 09:43:08
    以8086CPU 为核心设计一个交通灯控制系统,通过8255 并口来控制LED 发光二级管 的亮灭,输出0 为亮,输出一为灭;用8253 来实现一个定时器(隔一定时间发生一边沿跳 变,引发8259 中断);用8259 来实现对中断的...
  • 系统不仅能够提供常规的交通灯定时切换,而且能够在液晶上显示时钟,具备现场调时,调日期及在特定时段实现特殊功能。该系统工作稳定、LCD显示清晰直观、计时准确,比较理想的实现了设计指标的要求。除此以外,该...
  • 基于AT89C51的交通灯设计 利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。1、东西绿灯亮,南北红灯亮 2、黄灯亮 3、东西红灯亮,南北绿灯亮
  • 很好的交通灯程序哦,还带有黄灯闪烁的,而且还有proteus仿真,课程设计没问题啦!
  • 设计采用AT89S52单片机为控制核心,实现了路灯系统的智能模拟控制,包括功能选择、状态显示、定时开关、环境明暗检测、交通情况检测、故障报警、恒流驱动、自动调光等功能。
  • 为了对交通灯系统进行精确控制,采用FPGA实验板,在QuartusⅡ软件环境下,分别实现脉冲发生模块、状态定时模块、交通灯显示模块、时间显示模块,进行仿真实验和硬件下载,获得的测试结果满足设计要求。由于采用了EDA...
  • Multism交通灯定时系统课设仿真(可直接运行)及课程设计报告,文档有详细说明。仿真可以直接运行 有问题的可以留言问我~
  • 基于AT89C51单片机交通灯控制系统设计,用汇编语言写的程序,内有紧急情况中断处理,注此设计仅仅用作学习交流,禁止任何人以任何形式用作商业用途,谢谢
  • 汽车数量越来越多,而传统的交通信号控制模式采用的是定时控制,由于车流量是随时变化的,当此时没有车通过,而相对的车要等到此方向的绿灯结束显示红灯才能通过,在时间...1、PLC控制系统的硬件设计1.1、控制要求用P
  • 一、设计名称:交通灯控制系统 二、设计要求: 1、利用8253定时,8259中断及8255输出实现交通灯模拟控制。 2、实现能自动控制和手动控制。 3、实现能随时可以调整自动模式的绿灯和红灯时间 PS:我在网上整理的...
  • 交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必 要性,本文介绍的交通灯控制系统除具有一般的红绿灯显示功能外,还具有时间显示功能,以及倒计时 功能,以方便人们的出行....

空空如也

空空如也

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

交通灯定时控制系统的设计