[实验五]8255并行接口与交通灯控制
微机原理与接口技术实验室2021年5月14日 09:21
一、实验目的
1. 掌握可编程I/O接口芯片8255的工作方式及其编程方法。
2. 通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握并行接口的使用。
二、实验仪器与设备
1.TPC-ZK 微机接口实验系统1台。
2.PC微型计算机1台。
三、实验内容
编写程序,模拟交通信号灯工作状态,利用实验台上的8255并行接口芯片的三个端口中任意一端口,控制两组红、黄、绿六个发光二极管按照十字路口交通灯的规律交替亮、灭变化,当按下任意键则停止运行,并返回DOS。
四、设计思路
1.相关知识
(1)8255A是一种通用的可编程并行接口芯片,8255A内部有3个8位的并行I/O端口,即A口、B口和C口。
(2)8255的工作方式
8255有3种工作方式,方式0、方式1和方式2;它通过对控制寄存器写入不同的控制字来确定3种不同的工作方式。
方式0是基本的输入/输出方式,该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分为高4位(PC4-PC7)和低4位(PC0-PC3)两组,也由控制字决定其输入或输出。需要注意的是在该方式下,只能将C口其中一组的四位全部置为输入或输出。
(3)8255控制字各位的含义如表6-1所列。

2.实验电路说明
若用C口作为十字路口模拟交通灯的控制时,则作为南北路口的交通灯,分别与并行接口8255的引脚PC7、PC6、PC5相连,作为东西路口的交通灯,分别与并行接口8255的引脚PC2、PC1、PC0相连。

3.编程提示
(1)编程时应设定好8255的工作模式,使端口均工作于方式0,处于输出状态。
(2)要完成本实验,首先必须了解交通信号灯的亮灭规律,十字路口交通灯的变化规律如下表所示。
| 状态 | 功能描述 | 延时程序段参考如下:DELAY PROC NEAR PUSH CX PUSH DI MOV CX,1000H Y1: MOV DI,1000HX1: DEC DI JNZ X1 LOOP Y1 POP DI POP CX RETDELAY ENDP |
| 状态1 | 南北路口绿灯亮10秒 | |
| 东西路口红灯亮10秒 | ||
| 状态2 | 南北路口绿灯灭,黄灯闪烁5次 | |
| 东西路口红灯持续亮 | ||
| 状态3 | 南北路口红灯亮10秒 | |
| 东西路口绿灯亮10秒 | ||
| 状态4 | 南北路口红灯持续亮 | |
| 东西路口绿灯灭,黄灯闪烁5次 | ||
| 状态5 | 转到状态1 |
程序流程图如下:

(3)编程时在数据段预先定义交通灯的6种可能的状态数据,用于控制三次亮/灭、亮/灭、亮/灭的过程,以达到闪烁的效果。
(4)LED灯亮灭的时间是由延时程序来控制,如果计算机的速度过快,LED灯的亮灭时间比较短,实验现象就不明显,可通过调整延时程序使实验现象更明显。红、绿灯亮灭的延时常数可设为1000H×1000H(长延时),闪烁效果可用短延时时间常数实现,黄灯亮灭的延时常数可设为200H×500H(短延时),延时程序段用两层循环实现。(注:延时常数可根据计算机的运算速度进行适当调整)。
(5)发光二级管为共阴极,使其点亮应使8255A相应端口的相应位送1,否则送0。
(6)8255芯片在TPC-ZK平台下的端口地址:
8255A的CS端口—–Y1(288H~28FH)
控制寄存器地址 28BH
A口的地址 288H
B口的地址 289H
C口的地址 28AH
(7)8255A初始化
让8255A的PA口,PB口和PC口工作在方式0,输出

(8)8255A控制LED的亮灭

(9)闪烁流程图

五、预习要求
1.阅读本实验教程及相关教材。
2.预习编程提示及相关知识点。
3.复习8255方式0的工作原理、初始化编程方法。
4.按照题目要求在实验前编写好相应的源程序。
六、实验步骤及调试
1.用HQFC集成开发环境编写源代码。
2.对输入的源程序检查无误后,经汇编、连接生成EXE可执行文件。
3.按实验要求正确连接好线路。
4.程序运行后,观察发光二极管的亮、灭是否按交通灯规律变化。
5.改变延时程序的常数,观察输出的变化情况,并记录其结果。
七、实验报告要求
1.画出程序流程图,整理出运行正确的程序清单,并加适当注释。
2.画出实验原理接线图。
3.写出观察到的程序运行结果。
4.当用C口为输入、A口为输出时,试写出8255的初始化控制字。
5.如何实现延时,如何改变延时时间。
