基于8086的交通灯设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微型计算机原理与应用》
课程设计报告
班级
学生姓名
联系电话
学号
完成日期 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口联络信号定义