[实验五]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.如何实现延时,如何改变延时时间。

类似文章