8255A编程基础

8255A

 

可编程并行I / O接口芯片8255A

72 可编程并行接口
  由于我们现在常用的微机系统均以并行方式处理数据,所以,并行接口也是最常用的接口电路。并行接口有以下几方面的特点:
  (1)并行接口是在多根数据线上,以数据字节(字)为单位与输入/输出设备或被控对象传送信息的,如打印机接口、ADDA转换器接口、IEEE488接口、开关量接口、控制设备接口等。在实际应用中,凡在CPU与外设之间同时需要两位以上信息传送时,就要采用并行口。
并行口适用于近距离传送的场合。由于各种IO设备和被控对象多为并行数据线连接,CPU用并行口来组成应用系统很方便,故使用十分普遍。
  (2)并行传送的信息,不要求固定的格式,这与串行传送的信息有数据格式的要求不同。例如,异步串行通信的格式是一个数据,它包括起始位、数据位、校验位和停止位。
  (3)从并行接口的电路结构来看,并行口有硬线连接接口和可编程接口之分。硬线连接接口的工作方式及功能用硬线连接来设定,用软件编程序的方法不能加以改变;如果接口的工作方式及功能可以用软件编程序的方法加以改变,则就叫可编程接口。

  7.2.1 可编程并行接口芯片8255A
  所谓可编程,实际上就是具有可选择性。例如,选择芯片中的哪一个或哪几个数据端口与外设连接;选择端口中的哪一位或哪几位作输入,哪一位或哪几位作输出;选择端口与CPU之间采用哪种方式传送数据等,均可由用户在程序中写入方式字或控制字来进行指定。因此,它们具有广泛的适应性及很高的灵活性,在微机系统中得到广泛应用。
  1Inter 8255A 的基本特性
  (1)具有两个8位(A口和B口)和两个4位(C口高/低四位)并行输入/输出端口,C口可按位操作。
  (2)具有3种工作方式:
  方式0――基本输入/输出(ABC口均有);
  方式1――选通输入/输出(AB口具有);
  方式2――双向选通输入/输出(A口具有)。
  (3)可用程序设置各种工作方式并查询各种工作状态。
  (4)在方式1和方式2时,C口作A口、B口的联络线。
  (5)内部有控制寄存器、状态寄存器和数据寄存器供CPU访问。
  (6)有中断申请能力,但无中断管理能力
  (740根引脚,+5V供电,与TTL电平兼容。
  28255A的外部引线与内部结构
  8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图72所示。
  (1)外部引线
  作为接口电路的8255A具有面向主机系统总线和面向外设两个方向的连接能力,它的引脚正是为了满足这种连接要求而设置的。
  面向系统总线的信号线有:
  D7D0:双向数据线。CPU通过它向8255A发送命令、数据;8255A通过它向CPU回送状态、数据。
  CS:选片信号线,该信号低电平有效,由系统地址总线经IO地址译码器产生。CPU通过发高位地址信号使它变成低电平时,才能对8255A进行读写操作。当CS为高电平时,切断CPU与芯片的联系。
  A1A0:芯片内部端口地址信号线,与系统地址总线低位相连。该信号用来寻址8255A内部寄存器。两位地址,可形成片内4个端口地址。
  RD:读信号线,该信号低电平有效。CPU通过执行IN指令,发读信号将数据或状态信号从8255A读至CPU
  WR:写信号线,该信号低电平有效。CPU通过执行OUT指令,发写信号,将命令代码或数据写入8255A
  RESET:复位信号线,该信号高电平有效。它清除控制寄存器并将8255AABC3个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种状态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。
  面制IO设备的信号线有:
  PA0PA7:端口A的输入/输出线
  PB0PB7:端口B的输入/输出线
  PC0PC7:端口C的输入/输出线
  这24根信号线均可用来连接IO设备,通过它们可以传送数字量信息或开关量信息。
  (28255A的内部结构
  8255A的内部结构如图73所示。JAVA动画图说明)它由以下4个部分组成:
  数据总线缓冲器
  这是一个三态双向8位缓冲器,它是8255ACPU系统数据总线的接口。所有数据的发送与接收,以及CPU发出的控制字和8255A来的状态信息都是通过该缓冲器传送的。
  读写控制逻辑
  读写控制逻辑由读信号RD,写领带WR,选片信号CS以及端口选择信号A1A0等组成。读写控制逻辑控制了总线的开放与关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输入数据从相应的端口送到CPU
8255A
的基本操作及在TP86APCXT和扩展板上的端口地址如表72所示。
  数据端口ABC
  8255A包括38位输入/输出端口(POPT)。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中,PC口的8位可以分为两个4位端口(方式0下),也可以分成一个5位端口和一个3位端口(方式1下)来使用。
  A组和B组控制电路
  控制ABC3个端口的工作方式,A组控制A口和C口的上半部(PC7PC4),B组控制B口和C口的下半部(PC3PC0)的工作方式和输入/输出。A组、B组的控制寄存器还接收按位控制命令,以实现对PC口的按位置位/复位操作。
  
  38255A的编程命令
  8255A的编程命令包括工作方式控制字和对PC口的按位操作控制字两个命令,它们是用户使用8255A来组建各种接口电路的重要工具。
  由于这两个命令都是送到8255A的同一个控制端口,为了让8255A能识别是哪个命令,故采用特征位的方法。若写入的控制字的最高位D71,则是工作方式控制字;若写入的控制字D0,则是PC口的宾位置位/复位控制字。
  (1)工作方式控制字
  作用:指定3个并行端口(PAPBPC)是作输入还是作输出端口以及选择8255的工作方式。
  格式及每位的定义如下:
  
  例如,要把A口指定为方式1,输入;C口上半部定为输出;B口指定为方式0,输出;C口下半部定为输入。于是,工作方式字是:1O110001BB1H
  若将此控制字的内容写到8255A的控制寄存器,即实现了对8255A工作方式的指定,或叫做完成了对8255A的初始化。初始化的程序段为:
  MOV DX303H 8255A控制口地址
  MOV AL0B1H ;初始化(工作方式)控制字
  OUT DXAL ;送到控制口
  (2PC口按位置/复位控制字
  作用:指定PC口的某一位输出高电平还是低电平。
  格式及每位的定义如下:
  
  利用按位置位/复位控制字可以使PC口的8根线中的任意一根置成高电平输出或低电平输出。
  例如,若要把C口的PC2引脚置高(置位),则命令字应该为00000101B05H
  将该命令字的内容写入8255A的命令寄存器,就实现了将PC口的PC2引脚置位的操作:
  MOV DX 303H 8255A控制口地址
  MOV AL 05H ;使PC21的控制字
  OUT DX AL ;送到控制口
  按位置位/复位命令产生的输出信号,可作为控制开关的通/断、继电路的吸合/释放、马达的启/停等操作的选通信号。
  另外,在后面将要讨论的8255A的状态字中的中断允许位INTE的置位和复位,即允许8255A提出中断与禁止8255A提出中断,也是采用这个按位控制的命令字来实现的。

 

你可能感兴趣的:(微机接口原理)