微型计算机技术及应用课程设计 ——交通灯的实现
目录
一.题目要求及设计方案-------------------------------1 二.原理----------------------------------------------2 三.电路图--------------------------------------------2 四.详细设计------------------------------------------6 五.流程图--------------------------------------------7
1
-
六.源程序--------------------------------------------8 七.设计及分析结果----------------------------------11 八.设计过程中出现的问题及解决方法-------------11 九.心得体会-----------------------------------------12 十.参考资料-----------------------------------------12
一.题目要求及方案分析
现如今,随着人口和汽车的日益增长,城市交通日益拥挤,人们的安全问题也日益重要。因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。交通信号灯常用于十字路口,用来控制车的流量,提高交叉口车辆的通行能力,减少交通事故。有了交通灯人们的安全出行有了很大的保障。
自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化、科学化、简便化。尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可缺少的工具和手段,这些为交通灯控制电路的设计提供了一定的技术基础。
本设计通过采用数字电路对交通灯控制电路的设计,提出使交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。因此,在本次课程设计里,将以微机编程与硬件结合的设计方法为基础来实现设计交通控制信号灯。本实验设计目的是培养微机编程与硬件结合的能力,掌握交通信号
2
-
灯控制电路的设计方法。
二.原理
此方案是通过并行接口芯片8255A和8086计算机的硬件
连接,来实现十字路口交通灯的模拟控制。
三.电路图
1.8255 8255的内部结构
3
-
8255A是一个40引脚的双列直插式集成电路芯片
按功能可把8255A分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。 (1)口电路
8255A共有三个8位口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。
数据传送中A口所需的控制信号由C口高位部分(PC7~PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3~PC0)合在一起称之为B组。 (2)总线接口电路
总线接口电路用于实现8255A和单片微机的信号连接。其中包括: (a)数据总线缓冲器
数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。 (b)读/写控制逻辑
4
-
与读写有关的控制信号有 CS—片选信号(低电平有效) RD—读信号(低电平有效) WR—写信号(低电平有效)
A0、A1—端口选择信号。8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。参见下表。
RESET—复位信号(高电平有效)。复位之后,控制寄存器清除,各端口被置为输入方式。
读写控制逻辑用于实现8255A的硬件管理:芯片的选择,口的寻址以及规定各端口和单片微机之间的数据传送方向。 (c)控制逻辑电路
控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。用于存放各口的工作方式控制字 8255A工作方式及数据I/O操作 (1)8255A的工作方式
8255A共有三种工作方式,即方式0、方式1、方式2. (a)方式0 基本输入/输出方式
方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。四个口可以是输入和输出的任何组合。
方式0适用于无条件数据传送,也可以把C口的某一位作为状
5
-
态位,实现查询方式的数据传送。 (b)方式1 选通输入/输出方式
A口和B口分别用于数据的输入/输出。而C口则作为数据传送的联络信号。具体定义见表7–2。可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。
方式1适用于查询或中断方式的数据输入/输出。 (c)方式2 双向数据传送方式
只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。在这种方式下需使用C口的五位线作控制线,信号定义如表7–2所示。方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则B口只能工作于方式0.
6
-
四. 详细设计
●某一状态举例(车辆南北向直行,各路口禁止左拐,左右侧人行道可以通行):
直行:南北向绿灯亮,东西向红灯亮; 左拐:南北向红灯亮,东西向红灯亮; 人行道:左右侧绿灯亮,南北侧红灯亮。 ●交通灯变化步骤:红—>绿,绿—>黄,黄—>红。 ●交通灯状态:4种正常通行状态,4种减速让行状态。4种状态交替。 ●直行:
L0—B0,L1—B1,L2—B2,L3—B3,L4—B4,L5—B5,L6—B6,L7—B7,L8—A4,L9—A5,L10—A6,L11—A7. ●左拐:
L0—C0,L1—C1,L2—C2,L3—C3,L4—C4,L5—C5,L6—C6,L7—C7,L8—A0,L9—A1,L10—A2,L11—A3.
7
-
●人行道: 与直行交通灯相连一致
五.流程图
南北向直行绿灯亮 ,左南北向直行黄灯亮,左右人行道绿灯亮 ,左右右人行道黄灯亮,左右向左拐灯红灯亮。 向左拐红灯亮。 设置 8255A口,B口,C南北向直行红灯亮,左口为输出口 右人左拐行道红灯亮,左右向左拐绿灯亮。 8 结束 南北向左拐红灯亮,左右人行道红灯亮,左右向直行灯黄灯亮。 -
六.源程序:
开始 南北向直行红灯亮,左右人行道红灯亮,左右向左拐灯黄灯亮。 南北向左拐红灯亮,左右人行道红灯亮,左右向直行灯绿灯亮。 南北向左拐绿灯亮,左右人行道绿灯亮,左右向直行灯红灯亮。 南北向左拐黄灯亮,左右人行道黄灯亮,左右向直行灯红灯亮。 ioport equ 0ff00h-0280h io8255a equ ioport+288h io8255b equ ioport+289h io8255c equ ioport+28ah io8255ct equ ioport+28bh
code segment assume cs:code start:
xor ax,ax xor dx,dx mov al,80h
mov dx,io8255ct out dx,al lop:
mov al,99h mov dx,io8255a out dx,al mov al,09h mov dx,io8255b out dx,al mov al,24h
9
-
mov dx,io8255c out dx,al
call delay; 南北直行
mov al,99h mov dx,io8255a out dx,al mov al,12h mov dx,io8255b out dx,al mov al,24h mov dx,io8255c out dx,al
call delay;过度
mov al,99h mov dx,io8255a out dx,al mov al,24h mov dx,io8255b out dx,al mov al,09h mov dx,io8255c out dx,al
call delay; 南北左拐
mov al,99h mov dx,io8255a out dx,al mov al,24h mov dx,io8255b out dx,al mov al,12h mov dx,io8255c out dx,al
10
-
call delay;过度
mov al,29h mov dx,io8255a out dx,al mov al,64h mov dx,io8255b out dx,al mov al,24h mov dx,io8255c out dx,al
call delay; 东西直行
mov al,49h mov dx,io8255a out dx,al
mov al,0a4h mov dx,io8255b out dx,al mov al,24h mov dx,io8255c out dx,al
call delay;过度
mov al,92h mov dx,io8255a out dx,al mov al,24h mov dx,io8255b out dx,al mov al,64h mov dx,io8255c out dx,al
call delay; 东西左拐
mov al,94h mov dx,io8255a
11
-
out dx,al mov al,24h mov dx,io8255b out dx,al
mov al,0a4h mov dx,io8255c out dx,al
call delay;过度 jmp lop delay proc near mov bp,0ffffh x2: mov bx,0ffffh x1: dec bx jnz x1 dec bp jnz x2 ret delay endp code ends end start
七.设计结果及分析
12
-
13
-
14
-
15
-
(1) 本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握
(2)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象;
(3)当出现紧急情况,在特种车(如消防车、救护车)正要通过时,这种编程方式就不能完成;
但是,可以看到以上方案的一般性,只要将程序里的数据排列或规律稍加修改就可应用到任何一个路口的某一个方向上的交通灯上了,可移植性很强。
八.设计过程中出现的问题及解决方法
在整个设计的过程中,我们遇到了很多问题,大部分是以前没有弄明白的东西,在遇到问题以后,通过老师们的指导和同学们的相互帮助,这些问题基本上都得到了圆满的解决,主要的问题有以下几处:
1. 实验问题:初步设计阶段搞不清楚交通灯左拐右拐直行的 逻辑关系。
问题解决:设定单向直行与另一方向人行道可同时通行,单向左拐可满足同时右拐。
2.实验问题:控制3个LED显示板如何利用一块8255A来实现? 问题解决:直行和人行两块LED可共用输出信号。
3.实验问题:具体某个路口灯亮由哪个输出位控制设计很复杂 问题解决:草稿本上作模拟电路理顺思路之后得到解决。
4.实验问题:实验中搞不清楚输入的控制字与输出信号的关系。 问题解决:对应8位二进制数,换算得到。
16
-
5. 实验问题:关于8255A与LED显示板具体线路连接问题? 问题解决:经过组员讨论学习,已解决。
实验问题拓展
1. 丁字路口交通灯设计思路
答:左至右直向通行时,允许上至右通行;
右至左直向通行时,允许上至左通行; 左右不予通行时,可向上通行。
硬件设计可通过1块LED显示板和一块8255A实现,需要6盏灯A端口6个输出接口可满足控制条件。
2. 步进电机的状态,用8255A去控制,控制字和状态值是多少? 答
步进电机四拍控制方式(正转):
步进电机八拍控制方式(正转):
17
-
用到B口,例如向8255A输入01111111此数为正数,电机正转。
3. 智能家居控制器的设计思路
答:智能家居系统控制器是一种不依赖小局域网而独立运行的智能家居系统。控制器的硬件设计采用32位嵌入式多媒体芯片VirgineG2为主控制芯片,为多路视频输入与输出信号设计了叠加和切换电路,以电视为家庭的娱乐中心与控制中心;通过RS232与上位机相连,便于系统的更新与程序的升级。以太网设计解决家庭网络和外部网络的信息交互问题;嵌入式电话功能为用户随时随地掌控家庭各种情况提供便捷手段。软件基于STUDIO的开发环境,移植uC/OS-II为智能家居设计控制器的操作系统。
4.物联网的构成,简述实现的基本构想 答:
物联网架构可分为三层:感知层、网络层和应用层。
感知层由各种传感器构成,包括温湿度传感器、标签标签和读写器、摄像头、红外线、等感知终端。感知层是物联网识别物体、采集信息的来源。
网络层由各种网络,包括互联网、广电网、网络管理系统和云计算平台等组成,是整个物联网的,负责传递和处理感知层获取的信息。
18
-
应用层是物联网和用户的接口,它与行业需求结合,实现物联网的智能应用。
物联网是在互联网的基础上,利用、无线数据通信等技术,构造一个覆盖世界上万事万物的“Internet of Things”。在这个网络中,(商品)能够彼此进行“交流”,而无需人的干预。其实质是利用射频自动识别(RFID)技术,通过计算机互联网实现物品(商品)的自动识别和信息的互联与共享。
九.心得体会
通过这次实验,我掌握了8255A的运作方式,学会用8255A来完成一些简单的实验设计,对8255A的接口理解和运用更加深入,受益颇多。
十.参考资料
《微机原理及接口技术》 《汇编语言程序设计》 、百度百科
19
因篇幅问题不能全部显示,请点此查看更多更全内容