可编程并行接口芯片8255A_第1页
可编程并行接口芯片8255A_第2页
可编程并行接口芯片8255A_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程并行接口芯片 8255A并行输入 / 输出就是把若干个二进制位信息同时进行传送的数据传输方式。它 具有传输速度快、 效率高的优点。 并行数据传输需用的信号线较多 (与串行传输 相比),不适合长距离传输。所以,并行数据传输适用于数据传输率要求较高, 而传输距离相对较短的场合。8255A 是 Intel 公司为其 80 系列微处理器生产的通用可编程并行输入输出接口 芯片,也可以与其他系列的微处理器配套使用。 由于其通用性强, 与微机接口方 便,且可通过程序指定完成各种输入输出操作,因此, 8255 获得了广泛的应用。8255A 的引脚与结构1 8255A 的引脚8255A 是可编程的三端口并

2、行输入输出接口芯片,具有 40 个引脚,双列直插 式封装,由 +5V 供电,其引脚与功能示意图如图所示。A B、C三个端口各有 8 条端口 I/O 线:PA7PA0 PB7PB0 PC7PC0 共 32 个 引脚 用于 8255A 与外设之间的数据(或控制、状态信号)的传送。D0D7 8位三态数据线,接至系统数据总线。CPU通过它实现与8255之间数 据的读出与写入,以及控制字和状态字的写入与读出等。A0A1:地址信号。A0和A1经片内译码产生四个有效地址分别对应 A、B C 三个独立的数据端口以及一个公共的控制端口。在实际使用中, A1、A0端接到 系统地址总线的 A1、 A0。CS#片选信

3、号,由系统地址译码器产生,低电平有效。读写控制信号RD#和WR#低电平有效,用于决定 CPU和8255A之间信息传 送的方向:当RD#=0时,从8255A读至CPU当 WR#=0时,由CPU写入8255A。 CPU对8255各端口进行读写操作时的信号关系如表所示。RESRT复位信号,高电平有效。8255A复位后,A、B、C三个端口都置为输 入方式。2.8255A的内部结构如图所示,8255A的内部由以下四部分组成:(1)端口 A、端口 B和端口 C端口 A、端口 B和端口 C都是8位端口,可以选择作为输入或输出。还可以将 端口 C的高4位和低4位分开使用,分别作为输入或输出。当端口 A和端口

4、B作为选通输入或输出的数据端口时,端口 C的指定位与端口 A和端口 B配合使 用,用作控制信号或状态信号。(2)A组和B组控制电路这是两组根据CPU送来的工作方式控制字控制8255工作方式的电路。它们的 控制寄存器接收CPU输出的方式控制字,由该控制字决定端口的工作方式,还 可根据CPU的命令对端口 C实现按位置位或复位操作。3)数据总线缓冲器这是一个8位三态数据缓冲器,8255A正是通过它与系统数据总线相连,实现 8255A与CPU之间的数据传送。输入数据、输出数据、 CPU发给8255A的控制 字等都是通过该部件传递的。4)读/ 写控制逻辑读/写控制逻辑电路的功能是负责管理 8255A与C

5、PU之间的数据传送过程。它 接收CS及地址总线的信号A1、A0和控制总线的控制信号 RESET WR、RD,将 它们组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令送给 这两个部件, 再由它们控制完成对数据、 状态信息和控制信息的传送。 各端口读 写操作与对应的控制信号之间的关系见表所示。8255A的工作方式与控制字1. 8255A的工作方式8255A在使用前要先写入一个工作方式控制字,以指定 A、B、C三个端口各自 的工作方式。 8255A 共有三种工作方式:方式0基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。A 口、B 口、C 口的高四位和

6、低四位均可设置为方式 0<方式1 选通输入输出方式,此时8255A的A 口和B 口与外设之间进行输入 或输出操作时,需要C 口的部分I/O线提供联络信号。只有A 口和B 口可工作于 方式 1 。方式2选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输 出,只有A 口可工作于方式2。此种方式下需要C 口的部分I/O线提供联络信号。有关8255A三种工作方式的功能及应用的详细介绍见下一节。2. 8255A的控制字1)工作方式选择控制字8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器 来选择。控制字的格式如图所示,可以分别选择端口 A、端口 B和端口 C

7、上下两 部分的工作方式。端口 A有方式0、方式1和方式2共三种工作方式,端口 B只 能工作于方式0和方式1,而端口 C仅工作于方式0。注意:在端口 A 工作于方式 1 或方式 2,端口 B 工作于方式 1 时, C 口部分 I/O 线被定义为8255A与外设之间进行数据传送的联络信号线,此时,C 口剩下的I/O 线仍工作于方式0,是输入还是输出则由工作方式控制字的 D0和D3位决定,如 图所示。(2)C 口按位置位/复位控制字8255A的C 口具有位控功能,即端口 C的8位中的任一位都可通过 CPU向8255A 的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C 口中其他位的 状态不变

8、。控制字格式如图所示。例如,要使端口 C的PC4置位的控制字为00001001B (09H),使该位复位的 控制字为 00001000B( 08H)。应注意的是,C 口的按位置位/复位控制字必须跟在方式选择控制字之后写入控 制字寄存器, 即使仅使用该功能, 也应先选送一个方式控制字。 方式选择控制字 只需写入一次,之后就可多次使用 C口按位置位/复位控制字对C口的某些位进 行置 1 或清 0 操作。8.2.3 各种工作方式的功能1 方式 0基本输入输出方式方式0无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。它 适用于无需应答(握手)信号的简单的无条件输入 /输出数据的场合,即

9、输入 /输 出数据处于准备好状态。在此方式下,A 口、B 口、C 口的高4位和低4位可以分别设置为输入或输出, 即8255A的这四个部分都可以工作于方式 0。需要说明的是,这里所说的输入或 输出是相对于8255A芯片而言的。当数据从外设送往 8255A则为输入,反之, 数据从8255A送往外设则为输出。方式0也可以用于查询方式的输入或输出接口电路, 此时端口 A和B分别作为 一个数据端口,而用端口 C的某些位作为这两个数据端口的控制和状态信息。如图所示是一个方式0下利用C口某些位作为联络信号的接口电路。在此例中将 8255A设置为:A 口输出,B 口输入,C 口高4位输入(现仅用PC7 PC6

10、两位输 入外设的状态),C 口低4位输出(现仅用PC1、PC0两位输出选通及清除信号)。 此时8255A的工作方式控制字为:B( 8AH)。其工作原理如下:在向输出设备送数据前, 先通过PC7查询设备状态,若设备 准备好则从A 口送出数据,然后通过PC1发选通信号使输出设备接收数据。从 输入设备取数据前,先通过 PC6查询设备状态,设备准备好后,再从 B 口读入 数据,然通过PC0发清除信号,以便输入后续字节。与下面介绍的选通输入输出方式(方式 1 )和选通双向输入输出方式(方式 2) 相比,方式0的联络信号线可由用户自行安排(方式1和方式2中使用的C 口联 络线是已定义好的),且只能用于查询

11、,不能实现中断。2 方式 1 选通输入输出方式与方式0相比,它的主要特点是当A 口、B 口工作于方式1时,C 口的某些I/O 线被定义为A 口和B口在方式1下工作时所需的联络信号线,这些线已经定义, 不能由用户改变。现将方式1分为:A 口和B 口均为输入、A 口和B 口均为输出 以及混合输入与输出等三种情况进行讨论。(1) A 口和B 口均为输入A 口和B 口均工作于方式1输入时,各端口线的功能如图所示。A 口工作于方式1输入时,用PC5PC3乍联络线。B 口工作于方式1输入时, 用PC2PC0 C 口剩余的两个I/O线PC7和 PC6工作于方式0,它们用作输入还 是输出,由工作方式控制字中的

12、 D3位决定,D3=1,输入;D3=0,输出。各联络信号线的功能解释如下 (请参考图所示的方式 1 输入时序图来理解各信 号的功能):STB( Strobe):选通信号,输入,低电平有效。当STB有效时,允许外设数据 进入端口 A或端口 B的输入数据缓冲器。STBA接 PC4, STBB接 PC2 IBF(Input Buffer Full):输入缓冲器满信号,输出,高电平有效。当IBF有效时,表示当前 已有一个新数据进入端口 A或端口 B缓冲器,尚未被CPU取走,外设不能送新 的数据。一旦CPU完成数据读入操作后,IBF复位(变为低电平)。INTR(Interrupt Request:) 中

13、断请求信号, 输出,高电平有效。 在中断允许 INTE=1 且IBF=1的条件下,由STB信号的后沿(上升沿)产生,该信号可接至中断管理 器8259A作中断请求。它表明数据端口已输入一个新数据。若CPU响应此中断请求,则读入数据端口的数据,并由RD信号的下降沿使INTR复位(变为低电平)。INTE(I nterrupt En able):中断允许信号,高电平有效。它是 8255A内部控制 8255A是否发出中断请求信号(INTR)的控制信号。这是由软件通过对 C 口的置 位或复位来实现对中断请求的允许或禁止的。 端口 A的中断请求INTRA可通过对 PC4的置位或复位加以控制,PC4置1,允许

14、INTRAX作,PC4清0,则屏蔽INTRA 端口 B的中断请求INTRB可通过对PC2的置位或复位加以控制。2) A 口和 B 口均为输出A 口和B 口均工作于方式1输出时,各端口线的功能如图所示A 口工作于方式1输出时,用PC3 PC6和PC7作联络线。B 口工作于方式1 输出时,用PC0PC2乍联络线。C 口剩余的两个I/O线PC4和PC5工作于方式0。 各联络信号线的功能解释如下(请参考图所示时序图来理解各信号的功能):OBF( Output Buffer Full):输出缓冲器满信号,输出,低电平有效。当 CPU 把数据写入端口 A或B的输出缓冲器时,写信号 WR的上升沿把OBF置成

15、低电 平,通知外设到端口 A或B来取走数据,当外设取走数据时向 8255A发应答信 号ACK ACK的下降沿使OBF恢复为高电平。ACK( Ack nowledge):外设应答信号,输入,低电平有效。当 ACK有效时, 表示CPU输出到8255A的数据已被外设取走。INTR(I nterrupt Request):中断请求信号,输出,高电平有效。该信号由 ACK 的后沿(上升沿)在INTE=1且OBF=1的条件下产生,该信号使8255A向CPU发 出中断请求。若CPU响应此中断请求,向数据口写入一新的数据,写信号WR上升沿(后沿)使INTR复位,变为低电平。INTE(Interrupt Ena

16、ble):中断允许信号,与方式1输入类似,端口 A的输出 中断请求INTRA可以通过对PC6的置位或复位来加以允许或禁止。端口 B的输 出中断请求信号INTRB可以通过对PC2的置位或复位来加以允许或禁止。( 3) 混合输入与输出在实际应用中,8255A端口 A和端口 B也可能出现一个端口工作于方式1输入, 另一个工作于方式 1 输出的情况,有以下两种情况:端口 A为输入,端口 B为输出时,其控制字格式和连线图如图所示。端口 A为输出,端口 B为输入时,其控制字格式和连线图如图所示。3 方式 2选通双向输入输出方式选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有 A 口可工

17、作于方式2。此时C 口有5条线(PC7PC3被规定为联络信号线。剩下的 3条线(PC2PC0可以作为B 口工作于方式1时的联络线,也可以与B 口一起工 作于方式 0。 8255A 工作于方式 2 时各端口线的功能如图所示。图中INTE1是输出的中断允许信号,由PC6的置位或复位控制。INTE2是输入 的中断允许信号,由PC4的置位或复位控制。图中其他各信号的作用及意义基本 上与方式 1 相同,在此不再赘述。8255A的应用举例例8255A初始化编程。设8255A工作于方式1 , A 口输出,B 口输入,PC4, PC5输入,禁止B 口中断。设片选信号 CS由A9A2=®定。试编写程序

18、对8255A 进行初始化。根据题意,设计接口电路如图所示。初始化程序:MOV AL, B;控制字送 ALMOV DX 11B; 8255A控制字寄存器地址送 DXOUT DX AL;控制字送8255A的控制寄存器MOV AL 00001101B; PC6置 1,允许 A 口中断OUT DX,ALMOV AL 00000100B; PC2置 0,禁止 B 口中断OUT DX,AL例 用于对非编码键盘的管理。如图所示,使用8255A构成4行4列的非编码矩阵键盘控制电路。图中8255A的A 口工作于方式0输出,B 口工作于方式0输入。键盘工作过程 如下:首先进行第1次键盘扫描(判断是否有键按下)。使

19、 A 口 PA3PA0输出 均为0,然后读入B 口的值,查看PB3PBC是否有低电平,若没有低电平,则说 明没有键按下,继续进行扫描。若 PB3PB0中有一位为低电平,使用软件延时 10ms20ms以消除抖动,若低电平消失,贝U说明低电平是由干扰,或按键的抖动 引起的,必须再次扫描, 否则,则确认有键按下, 接着进行第 2次扫描(行扫描, 判断所按键的位置)。首先通过 A 口输出使PA0=0, PA仁1, PA2=1, PA3=1对第 0行进行扫描,此时,读入 B 口的值,判断PB3PB0中是否有某一位为低电平, 若有低电平,则说明第0行某一列上有键按下。如果没有低电平,接着使A 口输 出PA

20、0=1, PA1=0, PA2=1, PA3=1对第1行进行扫描,按上述方法判断,直到找 到被按下的键 并识别出其在矩阵中的位置 从而可根据键号去执行该键对应的 处理程序。设图中8255A的A 口、B 口和控制寄存器的地址分别为 80H、81H和83H,其 键盘扫描程序如下:;判断是否有键按下MOV AL 82H;初始化8255A, A 口方式0输出,B 口方式0输入MOV AL,00HOUT 80H, AL;使 PA3=PA2=PA1=PA0=0LOOA IN AL, 81H ;读B 口,判断PB3PB0是否有一位为低电平AND AL, 0FHCMP AL, 0FHJZ LOOA;PB3PB

21、0没有一位为低电平时转LOOA继续扫描CALL D20ms;PB3PB0有一位为低电平时调用延时20ms子程序IN AL, 81H;再次读入B 口值。如果PB3PB0仍有一位为低电平,AND AL, 0FH;说明确实有键按下,继续往下执行,以判断是哪个键CMP AL, 0FH;按下;如果延时后PB3PB0中低电平不再存在,JZ LOOA;说明是干扰或抖动引起,转 LOOA继续扫描。;判断哪一个键按下STAR:T MOV BL, 4 ;行数送 BLMOV BH, 4;列数送 BHMOV AL, 0FEH;D0=0,准备扫描0行MOV CL, 0FH;键盘屏蔽码送 CLMOV CH, 0FFH;C

22、H 中存放起始键号LOP1 OUT 80H, AL ; A 口输出,扫描一行ROL A,L 1;修改扫描码,准备扫描下一行MOV AH, AL;暂时保存IN AL, 81H;读 B 口,以便确定所按键的列值AND AL, CLCMP AL, CLJNZ LOP2;有列线为0,转LOP2找列值ADD CH,BH;无键按下,修改键号,使适合下一行找键号MOV AL,AH;恢复扫描码DEC BL;行数减 1JNZ LOP1;行未扫描完转 LOP1JMP START;重新扫描LOP2: INC CH;键号加 1ROR A,L 1;右移一位JC LOP2;无键按下,查下一列线MOV AL,CH;已找到,

23、键号送 ALCMP AL,0JZ KEY0;是0号键按下,转KEY(执行CMP AL,1JZ KEY1 ;是1号键按下,转KEY1执行CMP AL,0EH;JZ KEY14 ;是14号键按下,转KEY14执行JMP KEY15 ;不是014号键,一定是15号键,转KEY15执行例 利用8255A作为两机并行通讯接口。两台PC机通过8255A构成如图所示的并行数据传送接口,A机发送数据,B机接收数据。A机一侧的8255A工作于方式1输出,从PA7PA0发送由CPU写入 A 口的数据,PC3 PC7和 PC6提供A机一侧8255A的A 口工作于方式1时的联 络信号INTR OBF和ACK B机一侧

24、的8255A工作于方式0输入,从PA7PA0接 收A机送来的数据,PC4和PC0选作联络信号。工作过程如下:A机将数据从A 口送出后,经PC7送出OBF有效信号(请参阅图和),B机查询到OBF信号(经B机一侧8255A的PC4引脚)有效后,从A口读入数据,并通过软件在PC0上产生一个ACK有效信号,该信号的上升沿使A机的8255A的PC3上产生有效的INTR信号,A机CPU查询至U INTR有效(PC3为高电平)时,接着发送下一个数据, 如此不断重复, 直到发送完所有的数据为止。假设两台PC机传送1KB数据,发送缓冲区为0300:0000H,接收缓冲区为0400:OOOOH, A、B两机的82

25、55A的端口地址均为300303H。驱动程序如下:;A机的发送程序MOV AX, 0300H ;MOV ES, AX;设置A机发送数据缓冲区段地址MOV BX, 0;设置A机发送数据缓冲区偏移地址MOV CX, 03FFH;设置发送字节数;对A机8255A进行初始化MOV DX, 303H;指向A机8255A的控制寄存器MOV AL, B;8255A指定为工作方式1输出OUT DX, ALMOV AL, 00001101B;置发送中断允许 INTEA=1OUT DX, AL ;发送数据MOV DX, 300H;向A 口写第1个数据,产生第一个OBF信号,对方MOV AL ES BX;查询到OBF信号有效后,读入数据,并通过软件,;在PC0上发出ACK信号,该信号上升沿使A机8255A ;的 PC3产生有效的INTR信号,A机CPU查询到OUT DX, AL;该信号有效后,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论