问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

8255A可编程并行接口芯片详解

创作时间:
作者:
@小白创作中心

8255A可编程并行接口芯片详解

引用
CSDN
1.
https://blog.csdn.net/2301_80035097/article/details/139213941

8255A可编程并行接口芯片

本篇文章详细介绍了8255A可编程并行接口芯片的各个方面,包括其内部结构、工作方式、编程方法以及实际应用。

并行数据传输方式

以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据。这种传输方式适合于外部设备与微机之间进行近距离、大量和快速的信息交换,例如微机与并行接口打印机、磁盘驱动器。同时,这也是微机系统中最基本的信息交换方法,例如系统板上各部件之间,接口电路板上各部件之间。

8255A简介

8255A包括四个端口——1个控制端口,3个数据端口,还包括端口的译码和控制电路、中断控制电路。支持三种输入输出工作方式。

一、8255A的内部结构和引脚

1.与外设接口(数据端口)

  • 端口A(PA0~PA7):支持工作方式0、1、2,常作数据端口,功能最强大。
  • 端口B(PB0~PB7):支持工作方式0、1,常作数据端口。
  • 端口C(PC0~PC7):仅支持工作方式0,可作数据、状态和控制端口,分两个4位,每位可独立操作,控制最灵活,最难掌握。

2.与处理器接口

二、8255A的工作方式

  • 方式0:基本输入输出:端口A、端口B、端口C高4位和低4位可作为输入口或输出口,适用于无条件传送和查询方式的接口电路。
  • 方式1:选通输入输出:端口A、端口B可作为输入口或输出口,端口C用作端口A和端口B的联络信号,适用于查询和中断方式的接口电路。
  • 方式2:双向选通输入输出:端口A可作为输入口和输出口,端口C的一部分作为端口A的联络信号,适用于双向传送数据的外设,适用于查询和中断方式的接口电路。

方式1的详细说明

  • 输入引脚:端口A和端口B可作为输入口。
  • 输出引脚:端口A和端口B可作为输出口。
  • 联络信号:端口C可作为联络信号,具有中断请求和屏蔽功能。
  • 中断控制:8255A的中断由中断允许触发器INTE控制,通过写入端口C的对应位实现控制。

三、8255A的编程

初始化过程中需要写入方式控制字,工作过程中通过数据端口读写外设数据,通过控制端口写入端口C的位控制字,通过端口C读取状态信息。

1. 写入方式控制字:控制字格式

2. 读写数据端口

初始化编程后:

  • 当数据端口作为输入接口时,CPU执行IN指令将从输入设备得到外设数据。
  • 当数据端口作为输出接口时,CPU执行OUT指令将把CPU的数据送给输出设备。

8255A具有锁存输出数据的能力,对输出方式的端口同样可以输入,读取的是上次CPU给外设的数据。

3. 读写端口C

  • C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出。
  • 在控制上,C端口高4位和A端口编为A组,C端口低4位和B端口编为B组。
  • 当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,其余引脚仍可设定工作在方式0。
  • 对端口C的数据输出有两种办法:利用端口C的地址进行字节操作,或利用控制端口地址进行位操作。
  • 读取的C端口数据有两种情况:未被A和B端口征用的引脚将读到输入信息或输出锁存器中的信息,被A和B端口征用作为联络线的引脚将读到反映8255A状态的状态字。

四、8255A的应用

作为通用的并行接口电路芯片,8255A具有广泛的应用,例如在IBM PC/XT微机上、打印机接口电路、简易键盘连接、LED数码管驱动等。

1.开关量的检测

例:在工业控制过程中,经常需要检测某些开关的状态。例如,在某一系统中,有8个开关K7~K0,要求不断地检测它们的通断状态,并随时在发光二极管上显示。通过8255A的端口A读入开关状态信息,使端口B、端口C连接的发光二极管的状态与端口A开关状态相呼应,并重复执行。假设8255A在系统中端口A、B、C及控制口的地址分别为100H,101H,102H,103H,试设计出硬件电路图,并编写初始化程序。

(1) 硬件电路

(2) 相应的8255A程序为:

MOV DX,103H ;控制端口地址送给DX
MOV AL, 10010000B ;控制字
OUT DX,AL ;写入控制字
L1: MOV DX,100H ;端口A地址送给DX
IN AL,DX ;从端口A读入开关状态
MOV DX,101H ;端口B地址送给DX
OUT DX,AL ;从端口B输出,控制LED
XOR AL, 0FFH ;AL← AL取反
MOV DX,102H ;端口C地址送给DX
OUT  DX, AL ;从端口C输出
JMP L1 ;循环

2.LED数码管的驱动

发光二极管LED是最简单的显示设备。由7段LED就可以组成的LED数码管,LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中,LED数码管可以显示内存地址和数据等。

(1) LED数码管的工作原理

主要部分是7段发光管,顺时针分别称为a、b、c、d、e、f、g,有的产品还附带有一个小数点h。通过7个发光段的不同组合,主要显示0~9,也可以显示A~F(实现16进制数的显示),还可以显示个别特殊字符,如-、P 等。

LED数码管的结构

(2) 单个LED数码管的显示

3.多个LED数码管的显示

8个数码管:用2个8位输出端口控制。硬件上用公用的驱动电路来驱动各数码管,软件上用扫描方法实现数码显示。

段控制端口电路

位控制端口电路

控制哪个(位)数码管显示:共阴极时,当位控制端口的控制码某位为高电平时,经反相驱动,便在相应数码管的阴极加上了低电平,这个数码管就可以显示数据。

段控制端口作用

控制一个数码管显示什么数码:段控制端口送给数码管要显示字形的段码,段控制端口由所有数码管共用。

通过位、段控制端口的共同作用才能确定哪个数码管显示什么数码。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号