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

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

一、研究目的与意义

随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各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 406HSTACK SEGMENT STACKDB 256 DUP(?)
STACK ENDS
EDATA SEGMENTDB 10 DUP(?)
EDATA ENDS
DATA SEGMENTOUTBUFF 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, DATAMOV DS, AXMOV AX, EDATAMOV ES, AXMOV AX, STACKMOV SS, AXMOV AL, 088HMOV DX, CRTL_PORTOUT DX, AL;8253MOV AL, 34HMOV DX, PORT_CRTLOUT DX, ALMOV AL, 1EHMOV DX, PORT_0OUT DX, ALMOV AL, 03HOUT DX, ALMOV AX, 15LEA DI, OUTBUFF
O4: CMP BYTE PTR[DI + 10], 00HJNZ O1INC BYTE PTR [DI + 10]MOV DX, B_PORTMOV AL, 0100BOUT DX, ALMOV AX, 5JMP LOP1
O1: CMP BYTE PTR [DI + 10], 01HJNZ O2 INC BYTE PTR [DI + 10]MOV DX, B_PORTMOV AL, 0010BOUT DX, ALMOV AX, 2JMP LOP1
O2: CMP BYTE PTR [DI + 10], 02HJNZ O3INC BYTE PTR [DI + 10]MOV DX, B_PORTMOV AL, 0001BOUT DX, ALMOV AX, 5JMP LOP1
O3: CMP BYTE PTR [DI + 10], 03HJNZ O0INC BYTE PTR [DI + 10]MOV DX, B_PORTMOV AL, 0010BOUT DX, ALMOV AX, 2JMP LOP1
O0:     CMP BYTE PTR [DI + 10], 04HMOV AX, 00HMOV [DI + 10], AXJMP O4LOP1:    PUSH AXCALL DISPMOV DX, C_PORTIN AL, DXTEST AL, 10HJNZ nzPOP AXDEC AXJNZ LOP1JMP O4nz: POP AXJMP LOP1;;显示DISP PROC NEARAGAIN: PUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DIPUSH BPMOV CL, 0FEHLEA SI, OUTBUFFCALL D10MOV [SI], AXLEDDISP:MOV AL, CLMOV DX, C_PORTOUT DX, ALLEA BX, LEDTABMOV AL, [SI]XLATMOV DX, A_PORTOUT DX, ALCALL DELAY_1SMOV AL, 0HMOV DX, A_PORTOUT DX, ALCMP CL, 0FDHJZ NEXTINC SIROL CL, 1JMP LEDDISPNEXT:POP BPPOP DIPOP SIPOP DXPOP CXPOP BXPOP AXRETDISP ENDP;;延时DELAY_1S PROCPUSH CXPUSH BXMOV BX, 01HD1:MOV CX, 06FHD2:LOOP D2DEC BXJNZ D1POP BXPOP CXRETDELAY_1S ENDP;;进制转换D10 PROC NEARPUSH BXMOV BL, 10DIV BLPOP BXRETD10 ENDPCODE ENDSEND START

交通灯控制系统的设计相关推荐

  1. 基于AT89C51单片机的交通灯控制系统的设计

    一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...

  2. 基于51单片机的交通灯控制系统课程设计(含proteus仿真图及代码)

    一.设计要求: 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市 ...

  3. 微型计算机技术 论文,微型计算机技术课程设计论文报告微机交通灯控制系统_毕业论文.docx...

    * * *计算机科学系 课程设计(综合实验)报告 (2014--2015 年度第一学期) 课程名称:微型计算机技术 题 目:微机交通灯控制系统 班 级: 学 号: 学生姓名: 指导教师: 设计周数: ...

  4. 交通灯控制系统c语言编程,基于单片机的交通灯控制系统设计(本科)毕业论文设计.doc...

    基于单片机的交通灯控制系统设计 摘 要 当你路过一个十字路口时,你是否注意到各个方向车辆和行人有有条不紊的通过十字路口.这样井然有序的情境靠什么来实现的呢?靠的是交通灯控制系统.在论文中我使用单片机S ...

  5. VHDL交通灯控制器的设计

    主要内容: 设计主干道的交叉路口交通信号灯无人自动管理的控制系统.将路口红绿灯的各种亮灯情况定义不同的状态,路口状况定义为触发条件,组成有限状态机. 1.设计的目的 本次课程设计的目的是通过设计交通灯 ...

  6. 单片机交通灯控制系统

    一.实验目的 掌握单片机的综合应用设计. 二.实验仪器.材料 Keil软件.proteus软件 三.实验内容及要求 完成以下任务:十字路口的交通灯控制系统,四组灯对应十字路口的四个方向,用两位的数码管 ...

  7. 基于单片机的智能交通灯系统的设计

    目 录 1绪论 1 2课题的设计要求和设计方案 2 2.1设计要求 2 2.1.1 题目概述 2 2.1.2 设计任务 2 2.1.3 设计要求 2 2.2设计方案 2 2.2.1供电方案 2 2.2 ...

  8. 基于51单片机交通灯控制系统

    51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...

  9. 交通灯控制系统(30-5-20-5)【数电课设】

    交通灯控制系统[数电课设] 相关资源 一.红绿灯交通信号系统功能概述 二.任务和要求 三.红绿灯交通信号系统 四.电路设计 1.时钟产生模块 2.状态转换模块 3.计时模块 1)置数单元 2)计时单元 ...

  10. 计算机硬件交通灯课程设计,交通灯计算机硬件课程设计(附件).doc

    交通灯管理系统的设计 专 业:自动化 班 级:2010级 04班 组长:梅 登 组员:陈 冶 组员:谢海龙 组员:徐拓燃 指导老师: 黄勤 2013年9月 目 录 1.基本功能设计1 1.1 基本功能 ...

最新文章

  1. 域名删除时间及whois状态说明
  2. 独家 | NLP详细教程:手把手教你用ELMo模型提取文本特征(附代码论文)
  3. 图片加载框架Picasso - 源码分析
  4. [转载]如何将Putty生成的PrivateKey转换为SecureCRT所需的PublicKey
  5. “90后”台湾籍乘务长的第一个大陆春运
  6. 研究称语言能力比数学能力更重
  7. rubymine 保存成unix格式_如何免费在线试用 200+ Linux 和 Unix 发行版?
  8. http://blog.csdn.net/baidu_31657889/article/details/52315902
  9. 《avascript 高级程序设计(第三版)》 ---第三章 基本概念2
  10. LeetCode 45 跳跃游戏||
  11. 收听NSNotificationCenter发出的通知
  12. 如何用css实现元素固定宽高比?
  13. java中Graphics类的使用
  14. 计算机专业简历文案,文案创意求职简历范文
  15. 解闷又有趣的小游戏在这就有
  16. vue生命周期,组件,slot替换,tab切换,简易留言板
  17. SAS学习(8)——自定义proc means的数据导出
  18. 深度学习CNN模型预测电影评论中的情感问题
  19. vector访问失效的问题
  20. C++STL之stack栈容器

热门文章

  1. 【PDN仿真笔记3-电容布局Q3D模型搭建】
  2. 2021-09-07NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡说明
  3. python模块之junos-eznc
  4. 北京市行政边界划分矢量图
  5. 互联网产品经理好书推荐
  6. 访问json接口浏览器提示下载文件
  7. 基于Javaweb校园二手交易平台源码及截图
  8. matlab实时处理数据,Matlab下实现的实时数据采集和处理
  9. 23种设计模式——适配器模式
  10. windows7 安装向导