当前位置:文档之家› 基于某8086的交通灯设计

基于某8086的交通灯设计

《微型计算机原理与应用》课程设计报告班级学生联系学号完成日期 2013.12.30指导老师目录一、概述1. 题目2.需求分析3. 设计要求二、设计过程1. 设计过程简单分析2. 硬件原理3.8255芯片资料三、程序设计1.流程图2.程序代码四、总结附录一、概述1、题目:基于8086的交通灯设计2、需求分析:随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。

多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。

本课程设计是基于微机原理与接口技术的简单应用。

运用所学的微机原理和接口技术知识完成交通灯系统。

通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了现代城市交通控制与管理问题的现状,结合交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的交通灯控制系统的硬件、软件电路设计方案。

该系统适用于单主干道的十字路口。

现假定其主干道为东西方向,次干道为南北方向。

3、设计要求这次课程设计的题目是交通灯控制器的设计与实现,主要是模拟十字路口的红绿灯,如图1-1所示。

交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255A的A 口灯的亮与灭进行控制。

首先,要了解的是8255A是如何工作的,包括它的A 口、B口、C口和控制端口是如何写数据的,还包括芯片的初始化等。

由于只有16个发光二极管,所以还得弄清楚是每个发光二极管所代表的灯的颜色及方向。

最后要在实验室通过一个软件进行调试,调试通过后即可看到设计的结果。

要求:图1-1 十字路口交通灯二、设计过程1、设计过程简单分析红,黄,绿灯可分别接在8255的A口上,灯的亮灭可直接由8255输出0,1控制。

延时及闪烁由软件编程实现。

2、硬件原理设计电路如下:由上述电路容易知道红,黄,绿灯分别接在8255的A口上,端口A地址为8000H,可以通过控制8255端口A输出的高低电平来控制灯的亮灭,灯的闪烁和延时可直接通过软件的延时程序解决,这样可以大大简化电路的设计。

3、主要芯片资料8255介绍8255的部结构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)读/写控制逻辑与读写有关的控制信号有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口的某一位作为状态位,实现查询方式的数据传送。

(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.(2)数据输入操作用于输入操作的联络信号有:STB(StroBe)—选通脉冲,输入,低电平有效。

当外设送来STB信号时,输入数据装入8255A的锁存器。

IBF(Input Buffer Full) —输入缓冲器满信号,输出,高电平有效。

IBF信号有效,表明数据已装入锁存器,因此它是一个状态信号。

INTR(INTerrupt Request)—中断请求信号,高电平有效,当IBF数据输入过程:当外设准备好数据输入后,发出信号,输入的数据送入缓冲器。

然后IBF信号有效。

如使用查询方式,则IBF即作为状态信号供查询使用;如使用中断方式,当信号由低变高时,产生INTR信号,向单片微机发出中断。

单片微机在响应中断后执行中断服务程序时读入数据,并使INTR信号变低,同时也使IBF信号同时变低。

以通知外设准备下一次数据输入。

(3)数据输出操作用于数据输出操作的联络信号有:ACK(ACKnowledge)—外设响应信号输入,低电平有效。

当外设取走输出数据,并处理完毕后向单片微机发回的响应信号为高,信号由低变高(后沿)时,中断请求信号有效。

向单片微机发出中断请求。

OBF(Output Buffer Full)——输出缓冲器满信号,输出,低电平有效。

当单片微机把输出数据写入8255A锁存器后,该信号有效,并送去启动外设以接收数据。

INTR—中断请求信号,输出,高电平有效。

数据输出过程:外设接收并处理完一组数据后,发回ACK信号。

该信号使OBF变高,表明输出缓冲器已空。

如使用查询方式,则OBF可作为状态信号供查询使用;如使用中断方式,则当ACK信号结束时,INTR有效,向单片微机发出中断请求。

在中断服务过程中,把下一个输出数据写入8255A的输出缓冲器。

写入后OBF有效,表明输出数据已到,并以此信号启动外设工作,取走并处理8255A中的输出数据。

表7–2 8255A C口联络信号定义三、程序设计1、流程图2、程序代码.MODEL SMALL.8086.stack.code.startupmov dx,8006hmov ax,80hout dx,axmov dx,8000hmov ax,0ffhout dx,ax ;8255初始化s1: mov ax,0behout dx,axcall delay5mov cx,6lp: mov ax,0bfhout dx,axcall delay05mov ax,0behout dx,axcall delay05loop lpmov ax,0bdhout dx,axcall delay3mov ax,0ebhout dx,axcall delay5mov cx,6lp1:mov ax,0fbhout dx,axcall delay05mov ax,0ebhout dx,axcall delay05loop lp1mov ax,0dbh out dx,axcall delay3 jmp s1delay5 proc near push cxmov bx,250dy1:mov cx,5882 dy2:loop dy2dec bxjnz dy1pop cxretdelay5 endpdelay05 proc near push cxmov bx,25dy3:mov cx,5882 dy4:loop dy4dec bxjnz dy3pop cxretdelay05 endpdelay3 proc near push cxmov bx,150dy5:mov cx,5882 dy6:loop dy6dec bxjnz dy5pop cxretdelay3 endp .dataEND四、总结本次课程设计是要设计一个交通灯系统,主要功能如上已有细述。

在本次对交通灯的设计过程中以此来加深对微机接口技术的理解,提高了自己的动手能力。

首先着手对硬件电路的设计,本次课程设计主要采用了8255A接口电路。

由于对各个芯片不熟悉,通过课本了解到了它们的引脚及功能、工作方式、部结构和控制字。

然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,在编写过程中遇到了很多问题。

对芯片的不了解也导致编程的很多的问题,要么灯都不显示,要么灯显示不全,再要么红灯绿灯时间分配不合理。

最后经过一段时间的研究,查阅了很多资料并和同学讨论后终于一一解决。

最后,再说两句,由于自己太晚才开始做这个课程设计,导致很多功能没有实现好,例如想通过8253来对交通灯进行定时计数,用七段显示数码管显示倒计时,但是最后都由于时间紧而选择软件实现延时闪烁。

不管怎样,经过这次课程设计,我获益颇多。

将微机原理这门课程中的理论与实践相结合起来,对芯片的功能也有了进一步认识理解。

附录电路原理图:元件清单:8086芯片1个8255芯片1个74ls373锁存器2个74ls138译码器1个Led灯12个参考文献:《8086实验指导书》王荣辉,晓华编著《微型计算机原理及应用》学坚,朱定华编著。

相关主题