1 / 49

第八章 并行输入输出接口芯片 8255A

第八章 并行输入输出接口芯片 8255A. §8.1 8255 引脚 §8.2 8255 工作方式及其功能 §8.3 8255 的操作 §8.4 8255 的应用举例. 0. 1. D0 D1 D2 D3 D4 D5 D6 D7. 0. 1. 0. 目 的. 1. D0 D1 D2 D3 D4 D5 D6 D7. 1. 0. 源. §8.1 可编程并行接口芯片 8255. 并行接口. 可编程:不改变硬件的连接,而通过程序设置数据的传输方向,口线的连接和传输控制方向等. 8255. PA3 PA2 PA1

borna
Download Presentation

第八章 并行输入输出接口芯片 8255A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章 并行输入输出接口芯片8255A • §8.1 8255引脚 • §8.2 8255 工作方式及其功能 • §8.3 8255 的操作 • §8.4 8255 的应用举例

  2. 0 1 D0 D1 D2 D3 D4 D5 D6 D7 0 1 0 目 的 1 D0 D1 D2 D3 D4 D5 D6 D7 1 0 源 §8.1 可编程并行接口芯片8255 并行接口 可编程:不改变硬件的连接,而通过程序设置数据的传输方向,口线的连接和传输控制方向等

  3. 8255 PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 并行接口芯片8255 • 与CPU连接的引脚 • 数据引脚:D7~D0 • 复位输入:RESET • 片选信号: • 端口选择的地址信号:A1和A0 • 读信号: • 写信号:

  4. 8255引脚 • 与外设连接的引脚 • PA7~PA0:端口A输入/输出 • PB7~PB0 :端口B输入/输出 • A、B口的8位同时动作 • PC7~PC0 :端口C输入/输出 • C口分为两组,各4位,同时动作 • 联络信号,固定 • 状态信号,反映芯片内部状态 • 按位控制,按位操作

  5. 8255的连接与寻址 • A0、A1可寻址4个端口 • 8位系统,8255的A0、A1可直接与系统的A0、A1相连 • 16位系统,8255的数据线与系统的低8位相连;而低8位总是与偶地址对应,因此系统的A1应与8255的A0相连,系统的A2应与8255的A1相连。

  6. 8255 的内部结构

  7. 1. 数据端口A、B、C 总线 8255 RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A15 ~ A2 片内 译码 A1 A0 控制口 +5V A1 A0 GND • 每个端口8位,通过编程设定其为输入口或输出口 • 可用来和外设传送信息

  8. 总线 8255 RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A15 ~ A2 片内 译码 A1 A0 控制口 +5V A1 A0 GND 3. 数据总线缓冲器(引脚D0~D7) • 由1个8位双向三态缓冲器构成 • 8255内各端口通过数据缓冲器与系统总线相连。 • CPU与端口A、B、C间传送的数据,以及CPU写入控制端口中的控制字均通过数据缓冲器传送。

  9. 总线 8255 RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A15 ~ A2 片内 译码 A1 A0 控制口 +5V A1 A0 GND 4. 读写控制电路 • 控制数据总线缓冲器的状态。 • 数据总线缓冲器有3种状态:输入、输出、高阻态

  10. 5. 片内译码电路 (引脚A1、 A0) 总线 8255 RESET PA7 ~ PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 ~ PC0 端口C RD WR IOR IOW 读写 控制 PB7 ~ PB0 端口B CS 片选 译码 A15 ~ A2 片内 译码 A1 A0 控制口 +5V A1 A0 GND 选择被操作的端口

  11. 1 0 输出 1 输入 PC3~PC0 0输出 1 输入 B口 0 方式0 1 方式1 B口工作方式 D7 D6 D5 D4 D3 D2 D1 D0 0 输出 1 输入 PC7~PC4 0 输出 1 输入 A口 00 方式0 01 方式1 1x 方式2 A口工作方式 特征位,D7=1表示是方式控制字 8.1.2 8255 的工作方式控制字

  12. • A端口方式 1 输入、B 端口方式 1 输出、PC6,PC7 作输入,给出方式控制字。 BCH • A端口方式 1 输出、B 端口方式 1 输入、PC4,PC5 作输出,给出方式控制字。 A7H

  13. +5V RESET PA7 PA0 外 设 reset 端口A 数据 缓冲器 D7 ~ D0 D7 ~ D0 PC7 PC0 端口C RD WR IOR IOW 读写 控制 PB7 PB0 端口B CS 片选 译码 A15 ~ A2 F0~F3h 片内 译码 A1 A0 控制口 A1 A0 GND 例 8255与系统连线如图,片选译码地址为FFF0~FFF3h 1) 确定各端口地址? 2) 编程设置8255 : A口方式 0 输入,PC7~PC4输出 B口方式 0 输出,PC3~PC0输入

  14. CS A1 A0 8255 总线 A15 ~ A6A5A4A3A2A1A0 FFF0H 1 ~ 1 1 1 0 0 0 0A口 FFF1H 1 ~ 1 1 1 0 0 0 1 B口 FFF2H 1 ~ 1 1 1 0 0 1 0C口 FFF3H 1 ~ 1 1 1 0 0 1 1D口 • 由8255编程结构知: • 结合8255与系统总线的连线: • 最后得出结论: A口地址为 FFF0 H B口地址为 FFF1 H C口地址为 FFF2 H D口地址为 FFF3 H

  15. 2) 确定方式控制字 1 0 0 1 0 0 0 1 A口 输入 B口 方式 0 B口 输出 PC3~PC0 输入 A口 方式 0 PC7~PC4 输出 特征位 D7 D6 D5 D4 D3 D2 D1 D0 要求设置: A口方式0输入,PC7~PC4输出 B口方式0输出,PC3~PC0输入 所以,方式控制字为 1001 0001B,即91H

  16. 初始化程序 MOV DX, 0FFF3H;控制口地址 MOV AL, 91H;方式控制字 OUT DX, AL

  17. 2、C端口置/复位控制字 0 复位 1 置位 无意义 选择设置位 设置内容 0 D7 D6 D5 D4 D3 D2 D1 D0 特征位,D7=0 表示是C口按位 置位/复位控制字

  18. C端口的位选择编码

  19. 通过控制口置 PC2 为 0,置 PC4 为 1 解:MOV DX,0F3H;置DX为控制口地址 MOV AL,0000 0100B ;置PC2为0 OUT DX, AL MOV AL,0000 1001B ;置PC4为1 OUT DX, AL

  20. 例:设8255的A端口工作于方式1输入,B端口工作于方式0输出,置PC4 = H,( 8255的操作地址为60H ~ 63H ) • 工作方式控制字 • MOV AL, 0B0H ;1011000X OUT 63H, AL ; 写方式控制字 MOV AL, 09H ;0XXX01001 OUT 63H, AL; 写置/复位控制字 • C口置/复位控制字

  21. 8.1.3 8255的工作方式 • A端口有三种工作方式 • 方式0、方式1、方式2 • B端口有二种工作方式 • 方式0、方式1 • C端口无工作方式选择 • 工作于方式0,或作为A、B端口工作于方式1、2时的联络信号 注:方式0(基本输入/输出) 方式1 (选通输入/输出) 方式2(双向数据传送)

  22. 工作方式 • 根据A口和C口、B口和C口之间硬件关系的不同,有方式 0、方式 1、方式 2三种 • 硬件连接可通过向控制口写控制字设置 • 方式 0: A、B与C口之间没有硬件联系,即可分别作为独立的输入或输出端口 • 方式 1: C口的某3根引脚作为端口A、B与外设的联络信号 • 方式 2: C口的某5根引脚作为端口A与外设的联络信号

  23. 一、方式0(基本输入/输出方式) 1 0 0 1 0 0 0 1 A口 输入 B口 方式 0 B口 输出 PC3~PC0 输入 A口 方式 0 PC7~PC4 输出 特征位 D7 D6 D5 D4 D3 D2 D1 D0 • 单向无条件传送端口 • A、B、C端口可单独工作于输入或输出,共有十六种组态

  24. 方式 0 • 电特性:作输出用, 各端口有锁存功能 作输入用, 各端口无锁存功能 • 应用 • 程序控制下的无条件传送方式(查询方式) A、B、C端口均传送数据信息 • 程序控制下的有条件传送方式 A、B端口传送数据, C端口传送状态 • 工作在方式 0 的端口 • 作为输入口相当于普通的三态门 • 作为输出口相当于普通的锁存器

  25. 方式0的等效电路 8 8 三态缓冲器 数据总线 数据总线 锁存器 8 8 地址总线 地址总线 地址译码器 地址译码器 到外设 数据来自外设 CE CE & & IO/ IO/ M M WR WR 输入方式 IN AL,PORT 输出方式 OUT PORT,AL

  26. 方式1下输入端口的联络信号 A口方式1输入控制字 B口方式1输入控制字 1 0 1 1 D7~D0 1 1 1 D7~D0 PA7~PA0 PB7~PB0 INTEA PC4 INTEB PC2 PC4 STBA PC2 STBB PC5 IBFA PC1 IBFB 与门 与门 PC3 INTRA RD PC0 INTRB RD A口方式1输入时相应的联络信号 B口方式1输入时相应的联络信号

  27. ① STB:选通信号(低电平有效) • STB、IBF、INTE均为1时,8255A自动发出INTR。 方式1下输入端口的联络信号 • 由外设发出,送给8255A • 作用是将外设送来的数据锁存到8255A的输入端口。 ② IBF:输入缓冲器满信号(高电平有效) • 8255A 发出,表示外设送来的数据已进入输入端口。 • 当外设送来的数据送入输入端口后,8255A自动发出IBF。 ③ INTR:中断申请信号(高电平或上升沿有效) • 8255A 发出,用来向CPU发出中断申请。

  28. 方式1下输入端口的联络信号 ④INTE:中断允许控制信号 • 作用是控制是否允许8255A的中断申请信号INTR发出。 • 此信号无引出,通过控制口对C口相应位的置位/复位,设置允许或不允许。 • A口,对PC4置位, 使INTEA=1, 允许中断 对PC4复位, 使INTEA=0, 不允许中断 • B口,对PC2置位, 使INTEB=1, 允许中断 对PC2复位, 使INTEB=0, 不允许中断 • 在方式1下,作为联络信号的外部引脚PC4、PC2,不受C口按位置位/复位控制字控制,而只在8255A内部对INTE信号起作用

  29. 方式1下输出端口的联络信号 A口方式1输出控制字 B口方式1输出控制字 1 0 1 0 D7~D0 1 1 0 D7~D0 PA7~PA0 PB7~PB0 INTEA PC6 INTEB PC2 PC7 OBFA PC1 OBFB PC6 ACKA PC2 ACKB 与门 与门 PC3 INTRA WR PC0 INTRB WR B口方式1输出时相应的联络信号 A口方式1输出时相应的联络信号

  30. ① OBF:输出缓冲器满信号(低电平有效) ② ACK:外设响应信号(低电平有效) • 当OBF 、ACK、INTE均为1时,8255A自动发出INTR 方式1下输出端口的联络信号 • 当数据送至8255A输出缓冲器后,8255A自动发出。 • 表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。 • 由外设发出,送给8255A。 • 作用是通知 8255A,输出端口的数据已被外设取走,可以传送下一个数据。 • ③ INTR:中断申请信号(高电平或上升沿有效) • 8255A 发出, 用来向CPU发出中断申请。

  31. 方式1下输出端口的联络信号 ④ INTE:中断允许控制信号 • 作用是控制是否允许中断申请信号INTR发出 • 此信号无引出,通过控制口对C口相应位的置位/复位设置允许或不允许。 • A口,对PC6置位, 使INTEA=1, 允许中断 对PC6复位, 使INTEA=0, 不允许中断 • B口,对PC2置位, 使INTEB=1, 允许中断 对PC2复位, 使INTEB=0, 不允许中断 • 在方式1下,作为联络信号的外部引脚PC6、PC2,不受C口按位置位/复位控制字控制,而只在8255A内部对INTE信号起作用。

  32. D7 D6 D5 D4 D3 D2 D1 D0 A组状态 B组状态 PC2 PC2 PC1 PC1 PC0 PC0 输入时 输入时 I/O PC7 I/O PC6 PC5 IBFA INTEA PC4 INTRA PC3 INTEB INTEB OBFB IBFB INTRB INTRB PC7 PC6 PC5 PC4 PC3 输出时 输出时 OBFA INTEA I/O I/O INTRA 方式1联络信号状态字

  33. 方式 2 ——双向输入输出 • 功能 仅A端口具有双向数据传送功能 C端口特定位的组合应用 • 电特性A端口具有双向锁存和缓冲特性 • 应用 A端口双向传送数据 查询方式:C端口特定位传送状态 中断方式:C端口特定位发中断请求

  34. D7~D0 PA7~PA0 INTEA1 PC4 与 门 PC4 STBA RD PC5 IBFA INTEA2 PC6 与 门 PC6 ACKA PC7 WR OBFA PC3 INTRA 或门 方式2输入/输出端口的联络信号 • 工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合

  35. A端口、B端口方式 1 比较 • A端口输入用C端口位PC3 、PC4 、 PC5 A端口输出用C端口位PC3 、PC6 、 PC7 B端口输入用C端口位PC0 、PC1 、 PC2 B端口输出用C端口位PC0 、PC1 、 PC2 • A端口输入、输出用不同的C端口的位 B端口输入、输出用相同的C端口的位 • B端口只有方式 1选通输入/输出 A端口还有方式 2双向数据传送

  36. C端口未被使用的位 • A端口方式 0、B端口方式 0 C端口所有位未被使用,PC0 ~ PC7 可作I/O用 • A端口方式 0、B端口方式 1 PC0 ~ PC2被用,PC3 ~ PC7可作I/O用 • A端口方式 1输入、B端口方式 0 PC3、PC4、PC5被用,PC0 ~ PC2、PC6、PC7 可作I/O用 • A端口方式 1输出、B端口方式 0 PC3、PC6、PC7 被用,PC0 ~ PC2、PC4、PC5 可作I/O用 • A端口方式 1输入、B端口方式 1 PC6、PC7 可作I/O用 • A端口方式 1输出、B端口方式 1 PC4、PC5 可作I/O用 • A端口方式2、B端口方式1;C口被用完,都不可作I/O用

  37. 例:8255A用作A/D、D/A的接口 8255用作A/D、D/A接口电路,占用的端口地址分别为300H~303H

  38. D7~D0 PA7~PA0 INTEA PC4 PC4 STBA PC5 IBFA 与门 PC3 INTRA RD 通道工作方式 • 通道选用 A端口方式1输入, 用于A/D变换的数据输入接口 B端口方式0输出, 用于D/A变换的数据输出接口 C端口中的位:1、为A端口服务;2、作控制信号 • I/O接口的控制方式 输入(A端口) 采用查询方式 输出(B端口) 采用无条件程控方式 C端口为位操作方式 问:A口方式1输入的联络信号是什么?

  39. 通道控制 • 8255A对A/D芯片的控制 PC7=H,启动A/D变换;PC7=L,停止A/D变换 PC4(/STBA)=L,A/D变换后的数据送A口锁存 PC5( IBFA)=H,A口已锁存A/D变换后的数据 注:查询状态信息PC5=H,下一步完成读A/D数据 • 8255A对D/A芯片的控制 B端口工作于方式 0 输出, 为直接数据输出

  40. 控制字设置 • 方式控制字 A端口方式 1 输入D6D5D4 = 011 B端口方式 0 输出D2D1 = 00 C端口PC7输出D3 = 0 • 写方式控制字编程 MOV AL,1011000XB MOV DX,303H OUT DX,AL

  41. 启动/停止A/D转换 • 完成A/D变换过程编程 • 启动A/D,即置 PC7 = H MOV DX,303H MOV AL,0XXX1110B OUT DX,AL • MOV DX,303H • MOV AL,0XXX1111B • OUT DX,AL • 停止A/D,即清PC7 = L

  42. A/D转换状态查询及读结果 • 查询PC5,完成A/D变换数据读入A端口 MOV DX,302H ;C端口R/W地址为302H AG:IN AL,DX ;C端口数据读入 AL TEST AL,00100000B ;测PC5位是否为0 JZ AG ;为 0 循环查询,为 1 继续 MOV DX,300H ;A端口R/W地址为300H IN AL、DX; A/D变换数据读入 AL

  43. D/A转换 • 完成B端口D/A变换数据输出编程 ;数据处理过程略 MOV DX,301H ;B端口R/W地址为301H OUT DX,AL ; B端口数据送D/A变换器

  44. 例:8255A打印机接口 设8255A的端口地址分别为0C0H、0C2H、0C4H和0C6H,A口为方式1输出

  45. D7~D0 PA7~PA0 INTEA PC6 PC7 OBFA PC6 ACKA 与门 PC3 INTRA WR 8255口线的使用 • A为数据通道,方式1,输出 • PC0产生打印机的选通脉冲 • PC7未用;PC6为/ACK输入 • PC3自动作INTR,接中断控制器8259A的IR3 ,中断类型号0BH,中断向量在0002CH~0002FH单元 • 通道C其他位及通道B未用

  46. 8255初始化 MOV AL,0A0H ;初始化,1010XXX0 OUT 0C6H,AL ;A口方式1,出;PC0出 MOV AL,1 ;PC0=1,选通无效 OUT 0C6H,AL

  47. 设置中断向量 设置向量0100H:2000H PUSH DS ;保护原数据段 XOR AX,AX MOV DS,AX ;设向量表段地址为0000H MOV AX,2000H MOV WORD PTR [002CH],AX;中断服务程序偏移地址 MOV AX,0100H MOV WORD PTR [002EH],AX;中断服务程序段地址 POP DS ;恢复原数据段

  48. 8255中断设置 MOV AL,0DH ;0000 1101;PC6 置1 OUT 0C6H,AL ;允许8255A中断 STI ;CPU开中断 ;主程序

  49. 中断服务程序 • 中断服务程序发选通信号,将数据送打印机 • 打印机接收并打印字符后发出应答信号,清除8255A的数据缓冲区满信号 RINT:MOV AL,[DI] ;输出字符送A通道 OUT 0C0H,AL MOV AL,0 ; PC0产生低电平脉冲选通信号 OUT 0C6H,AL;0000 0000, PC0置0 INC AL OUT 0C6H,AL; 0000 0001, PC0置1 … ;后续处理 IRET ;中断返回

More Related