8255芯片

8255芯片是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。

简介

  8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
  1)与CPU连接部分
  根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:
  (1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。
  (2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。
  (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
  2)与外设接口部分
  根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:
  (1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
  (2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
  (3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
  3)控制器部分
  8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
  (1)A组控制器:控制A口与上C口的输入与输出。
  (2)B组控制器:控制B口与下C口的输入与输出。

特性

  (1)一个并行输入、输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
  (2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。

引脚功能

  RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
  CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
  RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
  WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
  D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
  8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。
  方式0————基本输入输出方式;方式1————选通输入/出方式;方式2————双向选通输入/输出方式;
  PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种;
  PB0~PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 不能工作于方式二;
  PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'不能工作于方式一或二。
  A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
  当A1=0,A0=0时,PA口被选择;
  当A1=0,A0=1时,PB口被选择;
  当A1=1,A0=0时,PC口被选择;
  当A1=1.A0=1时,控制寄存器被选择.

初始化字

  命令字
  D7 D6 D5 D4 D3 D2 D1 D0
  D7:特征位 D6D5:A组方式00=方式0 ,01=方式1,1X=方式2
  D4: A口0=输出,1=输入 D3:C口C7~C4 0=输出,1=输入D2:B组方式0=方式0,1=方式1
  D1: B口0=输出,1=输入D0:C口C3~C0 0=输出,1=输入
  D7位为“1”时,为方式选择控制字的标识位。
  D6、D5位决定A端口的工作方式。
  D4位决定A端口工作在输入还是输出方式。
  D3位决定C端口高4位PC7~PC4是作为输入端口,还是作为输出端口。
  D2位用来选择B端口的工作方式。
  D1位决定B端口作为输入还是输出端口。
  D0位决定C端口低4位PC3~PC0作出为输入,还是输出。
  C口复位字
  在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,这个控制字只对C口起作用,任何一位都可以通过按位置位/复位控制字来设置。
  注意:对C口的置位/复位控制不是把控制字送到C口,而是由控制口决定各位的状态,是把控制字送到控制口
  工作方式
  3种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为: 方式0-基本的输入输出,方式1-选通输入输出方式, 方式2-双向传送方式。
  1) 工作方式0(基本输入输出方式)
  功能:方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,无锁存,C口还具有按位将其各位清0或置1的功能。常用于与外设无条件的数据传送或接收外设的数据。
  2) 工作方式1(选通输入输出方式)
  A口借用C口的一些信号线用作控制和状态信号,组成A组,B口借用C口的一些信号线用作控制和状态信号,组成B组。在方式1下,C口的某些位被占用。
  方式1的输出:当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满OBF信号,PC6用作外设收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。
  当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。
  3) 工作方式2 (双向输入输出方式)
  功能:方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。

初始化编程

  8255的工作方式如下
  A方式0、输入,B方式1、输出,C7-4输出, C3-0输入
  控制字为95H,初始化程序:
  MOV AL,95H
  OUT port,AL

相关百科