资源描述
第 8 章 并/串行通信接口 8.1 并行通信接口8.1.1 并 行 I/O接 口 概 述8.1.2 可 编 程 并 行 I/O接 口 82558.1.3 8255应 用 例 并行I/O接口并 行 通 信 接 口 的 功 能 : 数 据 缓 冲 /锁 存 查 询 工 作 状 态 选 择 数 据 传 输 方 式 发 送 控 制 命 令 端 口 寻 址 和 编 程数 据 线Dn D0计算机 计算机或外设接口信 号 地控 制 /联 络 线 并行I/O接口的数据传输 并 行 I/O接 口 的 数 据 传 输 方 式 可 以 采 用 无 条 件 传 输 方 式 、查 询 方 式 、 中 断 方 式 和 DMA方 式 。 并 行 I/O数 据 传 输 采 用 最 多 的 是 查 询 方 式 或 中 断 方 式 。 并 行 I/O数 据 的 传 输 过 程 , 一 般 都 需 要 应 答 联 络 , 彼 此 确 认 。一 个 新 的 传 输 过 程 , 必 须 在 双 方 对 上 一 个 传 输 过 程 进 行应 答 之 后 发 生 。 并行接口的数据输入过程 并 行 I/O接 口 数 据 输 入 过 程 及 应 答 联 络 信 号 :当 外 设 向 接 口 输 入 数 据 的 同 时 , 发 “ 数 据 输 入 选 通 ” ( STB)信 号 , STB信 号 可 将 接 口 的 “ READY”状 态 置 位 供 CPU查询 , 或 者 作 为 向 CPU发 出 的 输 入 中 断 请 求 信 号 ; CPU执 行输 入 ( IN) 指 令 的 同 时 , 将 “ READY”状 态 复 位 ; “ READY”的 复 位 信 号 可 作 为 向 外 设 发 出 的 “ 数 据 输 入 应答 ” 信 号 。 并行接口的数据输出过程 并 行 I/O接 口 数 据 输 出 过 程 及 应 答 联 络 信 号 :CPU执 行 输 出 ( OUT) 指 令 的 同 时 , 将 接 口 的 “ BUSY” 状 态 置 位 , “BUSY”的 置 位 信 号 可 作 为 向 外 设 发 出 的 “ 数据 输 出 选 通 ” 信 号 , 通 知 外 设 接 收 数 据 ; 当 外 设 从 接 口 接收 到 数 据 后 , 向 接 口 发 出 “ 数 据 输 出 应 答 ” ( ACK) 信 号 ; ACK信 号 可 将 “ BUSY”状 态 复 位 供 CPU查 询 , 或 者 作 为向 CPU的 发 出 的 数 据 输 出 中 断 请 求 信 号 。 并行I/O接口8255Intel 8255是 一 个 广 泛 用 于 微 机 系 统 的 可 编 程 并 行 I/O接 口 。 8255不 需 附 加 外 部 电 路 便 可 和 大 多 数 外 设 直 接 连 接 , 使 用十 分 方 便 。 8255采 用 40脚 双 列 直 插 式 封 装 , 有 24条 并 行 I/O引 脚 , 可 选 择实 现 4/8/12/16/20/24位 并 行 I/O 。 8255可 实 现 与 CPU之 间 的 直 接 、 查 询 、 中 断 数 据 传 输 方 式 。 8255具 有 可 选 择 的 方 式 0、 方 式 1、 方 式 2三 种 工 作 方 式 。 8255的内部结构D7D0 数 据总 线缓 冲 器读 /写控 制逻 辑RDWRA 1A0RESETCS 端 口 C( 低 4位 )端 口 A端 口 C( 高 4位 )端 口 BA组控 制 B组控 制 PB7PB0PC7PC4PC3PC0PA7PA0 8255的引脚特性 8255与 外 设 相 连 的 有 三 个 8位 数 据 端 口 :端 口 A( PA7PA0) , 端 口 B( PB7PB0) , 端 口 C( PC7PC) 。 8255内 部 有 A组 和 B组 逻 辑 控 制 :分 别 控 制 A组 ( PA7PA0, PC7PC4) , B组 ( PB7PB0, PC3PC0) 的 工作 方 式 和 读 /写 操 作 。 8255有 D7D0( 双 向 、 三 态 ) 数 据 线 :内 接 一 个 8位 数 据 缓 冲 器 , 外 与 系 统 数 据 总 线 相 连 。 8255有 6个 读 /写 控 制 逻 辑 引 脚 :RESET, WR, RD, CS, A 1, A0 , 分 别 接 收 CPU和 译 码 电 路 的 控 制 信 号 , 地址 信 号 。 8255读/写操作的控制逻辑CS RD WR A1 A0 传 输 操 作 说 明0 0 1 0 0 端 口 A数 据 总 线 ( 输 入 )0 0 1 0 1 端 口 B数 据 总 线 ( 输 入 )0 0 1 1 0 端 口 C数 据 总 线 ( 输 入 )0 0 1 1 1 非 法 状 态0 1 0 0 0 数 据 总 线 端 口 A( 输 出 )0 1 0 0 1 数 据 总 线 端 口 B ( 输 出 )0 1 0 1 0 数 据 总 线 端 口 C ( 输 出 )0 1 0 1 1 数 据 总 线 控 制 口 ( 写 控 制 字 ) 方式控制字A口 方 式0 0: 方 式 00 1: 方 式 11 : 方 式 2 A口 0 : 输 出 1: 输 入 B口 方 式 0: 方 式 0 1: 方 式 1特 征 位 D7 D6 D5 D4 D3 D2 D1 D0 1 PC 7PC4 0: 输 出 1: 输 入 PC3PC0 0: 输 出 1: 输 入B口 0 : 输 出 1: 输 入 端口C置位/复位控制字未 用 位 选 择000: PC 0001: PC1111: PC7 置 位 /复 位1: 置 位0: 复 位特 征 位 D7 D6 D5 D4 D3 D2 D1 D0 0 8255控制字设置例 8255 控 制 字 通 过 写 控 制 端 口 的 方 式 设 置 。 8255 控 制 字 的 性 质 通 过 特 征 位 区 分 。 例 如 , 8255端 口 地 址 80H83H ( P142) 。MOV AL, 91HOUT 83H, AL ; 写 控 制 字 91HMOV AL, 0DHOUT 83H, AL ; PC 6置 1MOV AL, 08HOUT 83H, AL ; PC4清 0 8255的工作方式8255有 三 种 工 作 方 式 :方 式 0 基 本 输 入 /输 出 方 式 , 即 直 接 ( 不 需 联 络 ) 数 据 传 输 。 A, B, C端 口 均 可 为 方 式 0的 输 入 口 或 输 出 口 使 用 。方 式 1 选 通 输 入 /输 出 方 式 , 即 需 联 络 的 数 据 传 输 。 方 式 1的 输 入 或输 出 , 均 需 要 端 口 C提 供 固 定 的 3位 联 络 信 号 。 方 式 2 双 向 传 输 方 式 。 方 式 2相 当 于 方 式 1的 输 入 和 输 出 组 合 , 需 要端 口 C提 供 固 定 的 5位 联 络 信 号 。 8255的 端 口 A可 以 选 择 方 式 0, 方 式 1, 方 式 2。8255的 端 口 B可 以 选 择 方 式 0, 方 式 1。8255的 端 口 C 做 数 据 口 , 仅 可 以 为 方 式 0 。 ( 端 口 C某 些 位 可 配 合 方 式 1或 方 式 2做 联 络 信 号 。 ) 8255方式0的工作特点 方 式 0可 以 将 数 据 端 口 A、 B、 C组 合 成 各 种 位 数的 并 行 I/O接 口 ( 多 达 16种 组 合 ) 。 各 个 数 据 端 口 均 都 可 用 做 输 入 口 ( 缓 冲 器 ) , 或者 输 出 口 ( 锁 存 器 ) 。 方 式 0主 要 使 用 在 无 条 件 ( 直 接 ) 传 送 场 合 。 8255方式0编程例 端 口 地 址 30H33H。MOV AL, 89H ; A口 、 B口 输 出 , C口 输 入OUT 33H, AL ; 写 方 式 控 制 字IN AL, 32H ; 读 C口NOT AL ; C口 数 据 取 反OUT 30H, AL ; 写 A口MOV AL, 0F0H ; 取 B口 数 据OUT 31H, AL ; 写 B口 端 口 地 址 60H63H。MOV AL, 88H ; C口 高 4位 输 入 , 低 4位 输 出OUT 63H, AL ; 写 方 式 控 制 字IN AL, 62H ; 读 C口 ( 高 4位 )MOV CL, 4SHR AL, CL ; C口 的 高 4位 移 到 低 4位 OUT 62H, AL ; 写 C口 ( 低 4位 ) 8255方式1的联络信号 端 口 A或 端 口 B采 用 方 式 1, 必 须 由 端 口 C提 供 联 络 信 号 。 方 式 1输 入 的 联 络 信 号 :STB( 输 入 ) : 数 据 输 入 选 通 信 号 。IBF( 输 出 ) : 输 入 缓 冲 器 满 信 号 ( 可 供 查 询 ) 。 方 式 1输 出 的 联 络 信 号 :OBF( 输 出 ) : 输 出 缓 冲 器 满 信 号 ( 可 供 查 询 ) 。ACK( 输 入 ) : 数 据 输 出 应 答 信 号 。 方 式 1输 入 /输 出 的 中 断 信 号 :INTR ( 输 出 ) : 中 断 请 求 信 号 。 INTE ( 内 部 输 出 ) : 中 断 允 许 信 号 。 方式1联络信号表端 口 方 式 联 络 线 输 入 信 号 输 出 信 号 端 口 A方 式 1 PC7 I/O OBFAPC6 I/O ACKAINTEAPC5 IBFA I/OPC4 STBAINTEA I/OPC 3 INTRA INTRA端 口 B 方 式 1 PC2 STBBINTEB ACKBINTEBPC1 IBFB OBFBPC0 INTRB INTRB 8255方式1的工作特点 端 口 A或 端 口 B可 以 选 择 使 用 方 式 1, 并 可 选 择 各 自 为 输 入 或 输 出 。 在 选定 的 同 时 , 自 动 规 定 了 端 口 C有 关 的 联 络 、 控 制 和 中 断 请 求 信 号 。 若 采 用 方 式 1中 断 方 式 , 必 须 将 相 关 的 INTE置 为 1, 端 口 A或 端 口 B才 可以 使 用 各 自 的 INTR信 号 申 请 中 断 。 若 采 用 方 式 1查 询 方 式 , 可 以 通 过 查 询 端 口 A或 端 口 B相 关 IBF或 OBF信号 的 当 前 状 态 , 决 定 是 否 能 进 行 数 据 传 输 。 若 端 口 A和 端 口 B均 选 定 为 方 式 1, 则 需 端 口 C提 供 6位 做 联 络 信 号 , 剩 下的 2位 还 可 工 作 在 方 式 0的 输 入 /出 方 式 。 若 端 口 A和 端 口 B中 只 有 一 个工 作 在 方 式 1, 而 另 一 个 工 作 在 方 式 0, 则 端 口 C中 有 3位 作 为 方 式 1的 联络 信 号 , 端 口 C其 余 5位 均 可 工 作 在 方 式 0的 输 入 /出 方 式 。 8255方式2的工作特点 方 式 2 是 双 向 传 输 , 相 当 于 方 式 1 的 输 入 和 输 出 的 组 合 , 只 适 用 于 端口 A。 外 设 在 端 口 A 的 8位 数 据 线 上分 时 向 CPU发 送 数 据 或 从 CPU接 收数 据 。 方 式 2 需 要 端 口 C提 供 固 定 的 5位 , 即 端 口 C的 PC 7PC3 , 做 指 定 的 控 制/联 络 信 号 。 方 式 2一 般 采 用 中 断 方 式 进 行 数据 传 输 。 联 络 线 联 络 信 号PC7 OBFAPC6 ACKAINTE1PC5 IBFAPC4 STBAINTE2PC3 INTRA 8255应用例1【 例 8.2】 8255作 为 采 用 中 断 方 式 的 字 符 打 印 机 接 口 。 PC3连 接 中 断 控 制 器 8259的 IR3, 中 断 类 型 号 为 0BH。 8259端 口 地 址 : 20H, 21H。 8255端 口 地 址 : 60H 63H。OBF打 印 机ACKPA7 0PC 08255 PC6PC3 ACKAINTRACPU(8088) D7 D08259A的 IR3 例8.2 主程序MOV AL, 0A0H ; A口 方 式 1, 输 出 , PC0输 出OUT 63H, ALMOV AL, 0DH ; PC6为 1, 8255的 A口 中 断 允 许OUT 63H, ALMOV AL, 1 ; PC0初 始 为 1, 打 印 选 通 信 号 无 效OUT 62H, AL PUSH DSMOV DX, SEG LPTINTMOV DS, DXMOV DX, OFFSET LPTINTMOV AX, 250BHINT 21H ; 设 置 0BH中 断 向 量 表 POP DS CLIIN AL, 21HAND AL, 0F7H ; 开 放 8259的 IR3中 断OUT 21H, ALLEA DI, BUFFER ; DI取 打 印 区 BUFFER首 地 址STIINT 0BH ; 用 软 件 中 断 指 令 调 用 第 一 个 打 印 ; 中 断 程 序 , 做 为 启 动 中 断 之 用 ; 循 环 等 待 并 处 理 打 印 中 断 , ; 直 到 打 印 中 断 关 闭LPTINT中 断 请 求 例8.2 中断子程序LPTINT PROC FARPUSH AX ; 保 护 AX现 场MOV AL, DI ; 根 据 DI指 针 取 一 个 打 印 字 符INC DI ; DI+1OUT 60H, AL ; 从 A口 输 出 打 印 字 符MOV AL, 0 ; 使 PC0为 0, 产 生 有 效 选 通 信 号OUT 62H, ALINC AL ; 使 PC 0为 1, 撤 消 选 通 信 号OUT 62H, ALMOV AL, 20H ; 发 EOI命 令OUT 20H, ALPOP AX ; 恢 复 AX现 场IRETLPTINT ENDP 8255应用例2【 例 8.3】 IBM PC/XT系 统 板 上 8253的 计 数 器 2的 应 用 。 8253计 数 器 2为 方 式 3, 输 出 约 1KHz的 方 波 到 扬 声 器 发 声 。 GATE2由 8255的 PB0控 制 , OUT2输 出 经 过 与 门 放 大 发 声 。 与 门 的 允许 /禁 止 由 8255的 PB1控 制 。 8253CSA 1 CLK2A0GATE2 OUT2 与门 放大器 扬声器( 40H43H )8255CS PB0A1A0 PB1( 60H63H ) 1.19318MHz 例8.3 编程要点 8255的 设 置 程 序 已 完 成 , B口 为 输 出 。 设 置 8253的 计 数 器 2, 让 其 能 输 出 约 1KHz频 率 的 方 波 。 GATE2由 8255的 PB0控 制 , OUT2的 输 出 经 过 与 门 , 与 门由 8255的 PB1控 制 。 发 声 时 间 用 PB1和 PB0同 时 为 “ 1”的 时 间 来 控 制 。 设 长 声时 间 为 3s, 短 声 时 间 为 0.5s。 在 需 要 发 声 时 , 以 长 /短 声 参 数 ( BL=6或 1) 做 入 口 参 数 ,调 用 发 声 子 程 序 BEEP 。 8253端 口 地 址 : 40H43H。 8255端 口 地 址 : 60H63H。 例8.3 发声子程序 BEEP PROCMOV AL, 0B6H ; 计 数 器 2为 方 式 3, 16位 二 进 制 计 数OUT 43H, ALMOV AX, 0533H ; 计 数 值 1331( 0533H )OUT 42H, ALMOV AL, AHOUT 42H, ALIN AL, 61H ; 读 8255端 口 B的 原 值 ( 不 发 声 )MOV AH, AL ; 保 存 在 AHOR AL, 03H ; 使 PB1和 PB0为 1( 其 他 位 不 变 )OUT 61H, AL ; 输 出 PB1和 PB0( 扬 声 器 发 声 )SUB CX, CX ; CX=0, 最 大 计 数 值 65536 GT: LOOP GT ; “ 延 时 ” 发 声DEC BLJNZ GT ; 长 声 6次 “ 延 时 ” , 短 声 1次 “ 延 时 ”MOV AL, AHOUT 61H, AL ; 恢 复 端 口 B的 原 值 ( 停 止 发 声 )RET BEEP ENDP 8255应用实验【 实 验 5】 开 关 控 制 发 光 二 极 管 显 示 电 路 。 8255的 端 口 A接 发 光 二 极 管 组 , 端 口 B接 开 关 组 。 8255的 端 口 地 址 : 60H63H。1. 采 用 方 式 0( 直 接 ) 的 控 制 :设 置 8255方 式 字 ( 82H)读 B口 开 关 值送 到 A口 亮 /灭 发 光 二 极 管无 条 件 转 MOV AL, 82H OUT 63H, ALA1: IN AL, 61H OUT 60H, AL JMP A1 实验5(中断方式)2. 采 用 方 式 1( 中 断 ) 的 控 制 :用 手 动 触 发 开 关 做 STBB信 号 , 引 发 B端 口 中 断 。 INTRB ( PC0) 接 8259A的 IRQ7端 ( 中 断 类 型 号 为 0FH) 。8259端 口 地 址 : 20H21H。 PA7 0PB 7 08255PC1 PC2 PC0 发 光 灯 组8259A的 IRQ7 开 关 组触 发 开 关IBFBINTRB STBB MOV AX, OFFSET IRQ7MOV 003CH, AXMOV AX, 0MOV 003EH, AX ; 设 置 IRQ7中 断 向 量 表CLIIN AL, 21HAND AL, 7FH ; 设 置 IRQ7中 断 开 放OUT 21H, ALMOV AL, 86HOUT 63H, AL ; 设 置 8255方 式 字MOV AL, 05HOUT 63H, AL ; 设 置 B口 中 断 允 许 ( PC 2=1)A1: STIJMP A1 中断方式程序IRQ7中 断 子 程 序 :IRQ7: IN AL, 61HOUT 60H, ALMOV AL, 20HOUT 20H, AL IRET 实验5(查询方式)3. 采 用 方 式 1( 查 询 ) 的 控 制 :通 过 查 询 8255的 PC1( IBFB) 了 解 触 发 开 关 是 否 按 动 。 每 按 动 一 次 触 发开 关 , 读 开 关 组 数 据 , 亮 /灭 LED发 光 管 组 。MOV AL, 86H ; 设 置 8255方 式 字 ( 86H)OUT 63H, ALMOV AL, 04H ; 设 置 PC2=0, B口 中 断 屏 蔽OUT 63H, AL A1: IN AL, 62HTEST AL, 02H ; 测 试 PC 1( IBFB) = 1 ?JZ A1IN AL, 61H ; 读 B口 开 关 值 , 并 清 除 IBFBOUT 60H, AL ; 亮 /灭 对 应 的 发 光 二 极 管 JMP A1 ; 循 环 习题8.2,习题8.38.2 8255A的 端 口 A, B都 定 义 为 方 式 1输 入 , 则 方 式 控 制 字 是 什 么 ? 此时 , 方 式 控 制 字 中 D3, D0两 位 的 作 用 是 什 么 ?8255A的 端 口 A, B都 定 义 为 方 式 1输 入 , 方 式 控 制 字 是 10110110。 由 于端 口 A, B定 义 为 方 式 1, 需 要 PC5 PC0( 6位 ) 配 合 做 方 式 1的 联 络 信 号 ,此 时 , 方 式 控 制 字 中 D3位 表 示 剩 下 的 PC7和 PC6位 的 输 入 /出 方 向 , D0位 无意 义 。 8.3 假 定 8255A的 端 口 A为 方 式 1输 入 , 端 口 B为 方 式 1输 出 , 端 口 C的 各位 是 什 么 含 义 ?PC 2 PC0( 3位 ) 分 别 做 端 口 B方 式 1输 出 的 联 络 信 号 ACK, OBF,INTR; PC5 PC3( 3位 ) 分 别 做 端 口 A方 式 1输 入 的 联 络 信 号 STB, IBF,INTR; PC7和 PC6( 2位 ) 做 输 入 /出 。 习题8.48.4 对 满 足 下 列 要 求 的 8255A( 端 口 地 址 60H63H) 初 始 化 设 置 。( 1) 设 端 口 A, B和 C均 为 基 本 输 入 /输 出 方 式 ( 输 入 /输 出 分 别 考 虑 ) 。MOV AL, 80H ; 方 式 字 80H: A口 , B口 , C口 均 为 方 式 0输 出; 或 9BH( 均 为 输 入 ) , 或 82H, 90H.OUT 63H, AL ; 设 置 方 式 控 制 字( 2) 设 端 口 A为 选 通 输 出 方 式 , 允 许 中 断 , 端 口 B为 基 本 输 入 方 式 ,端 口 C为 输 出 方 式 。MOV AL, 0A2H ; A口 方 式 1输 出 , B口 方 式 0输 入 , C口 输 出OUT 63H, AL ; 设 置 方 式 控 制 字MOV AL, 0DH ; 端 口 C置 /复 位 字 : PC 6=1OUT 63H, AL ; 设 置 A口 输 出 中 断 允 许 , 即 INTE= 1 ( 3) 设 端 口 A为 双 向 方 式 , 允 许 中 断 ; 端 口 B为 选 通 输 出 方 式 , 不 允 许中 断 。MOV AL, 0C4H ; A口 方 式 2( 双 向 ) , B口 方 式 1输 出OUT 63H, AL ; 设 置 方 式 控 制 字MOV AL, 04H ; 端 口 C置 /复 位 字 : PC2=0OUT 63H, AL ; 设 置 B口 输 出 中 断 屏 蔽 , 即 INTE= 0OV AL, 09H ; 端 口 C置 /复 位 字 : PC4=1 63 , AL ; 设 置 A口 输 入 中 断 允 许 , 即 INTE2= 1AL, 0DH ; 端 口 置 复 位 字 :63H, AL ; 设 置 口 输 出 中 断 允 许 , 即 1= 1( 4) 设 端 口 A为 选 通 输 入 方 式 , 端 口 B为 选 通 输 出 方 式 , 均 允 许 中 断 ,端 口 C剩 余 两 位 PC7置 1, PC6清 0。MOV AL, 0B4H ; A口 方 式 1输 入 , B口 方 式 1输 出 , C口 输 出OUT 63H, AL ; 设 置 方 式 控 制 字MOV AL, 09H ; 端 口 C置 /复 位 字 : PC4=1OUT 63H, AL ; 设 置 A口 输 入 中 断 允 许 , 即 INTE= 1MOV AL, 05H ; 端 口 C置 /复 位 字 : PC2=1OUT 63H, AL ; 设 置 B口 输 出 中 断 允 许 , 即 INTE= 1MOV AL, 80HOUT 62H, AL ; 设 置 PC 7=1, PC6=0 习题8.58.5 编 写 程 序 : 读 取 8255A端 口 A输 入 的 数 据 , 随 即 向 端 口 B输 出 , 并 对输 入 数 据 加 以 判 断 , 当 大 于 等 于 80H时 , PC5和 PC2置 位 , 否 则 复 位 。设 定 : 8255A端 口 地 址 60H63H。MOV AL, 90HOUT 63H, AL ; 设 置 方 式 控 制 字IN AL, 60H ; “ 读 ” A口OUT 61H, AL ; “ 写 ” B口CMP AL, 80HJAE P1 ; 80H, 转 P1MOV AL, 00H ; PC 5和 PC2复 位JMP P2P1: MOV AL, 24H ; PC5和 PC2置 位P2: OUT 62H, AL ; “ 写 ” C口HLT
展开阅读全文