第 14 章 并行通信及其接口电路.

Slides:



Advertisements
Similar presentations
第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口;
Advertisements

输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
实验四 利用中规模芯片设计时序电路(二).
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第10章 DOS功能调用与BIOS中断调用.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
第五章 总线 及其形成 本节课之前,大家学习了:
第8章 AT89S51单片机 外部存储器的扩展 1.
第五章 微处理器总线操作与时序 三、总线时序 一、 8086/8088引脚 二、最小模式和最大模式.
第一章 绪论.
汇编语言与接口技术 教师:范新民.
第7章 常用数字接口电路.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
第 11 章.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述)
第八章 数据通信.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微型机系统与接口技术复习.
第9章 AT89S52单片机的 I/O扩展 1.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第6章 基本输入输出接口技术 【本章提要】 【学习目标】
第七章 MCS-51并行口的扩展 MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS3734和74LS245)和可编程的并行口芯片(8255)。 7.1 不可编程并行口芯片的扩展 7.2 可编程并行口芯片的扩展.
第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东.
第8章 PCH中的常规接口.
第七章 输入和输出 第一节 I/O接口 第三节 可编程DMA控制器8237A 第二节 CPU与外设数据传送的方式.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第七章 可编程并行接口8255A §7.1并行接口的概述 §7.2 可编程并行接口8255A § A的0方式及其应用
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第7章 微型机接口技术 可编程定时/计数器 可编程并行接口 串行接口与串行通信(概念) DMA控制器接口(不做要求) 模拟量输入/输出接口.
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
CPU结构和功能.
第11章 基本I/O接口 罗文坚 中国科大 计算机学院
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
8.4 ADC0809接口电路及程序设计.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
数字电子技术 Digital Electronics Technology
可编程定时计数器.
计算机组成原理 课程设计.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验六 触发器逻辑功能测试 一、实验目的 二、实验仪器 1、熟悉并掌握RS、D、JK触发器的构成、工作原理和 功能测试方法。
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
实验五 MSI组合逻辑功 能部件的应用与测试
概述 一、基本要求 1. 有两个稳定的状态(0、1),以表示存储内容; 2. 能够接收、保存和输出信号。 二、现态和次态
第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第 14 章 并行通信及其接口电路

本章主要内容 1.简单并行接口电路; 2.可编程并行接口电路8255A的结构及工作原理; 3. 8255A的应用。

14.1 概述 在计算机和数据通信系统中,有两种基本的数据传送方式,即串行数据传送方式和并行数据传送方式,也称串行通信和并行通信。 数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送; 数据在多位宽的传输线上各位同时进行传送,称为并行传送。 和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。

并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。 在本章,我们重点介绍并行通信及其所要求的并行接口电路,研究它们的组成、功能及典型的并行接口芯片的工作原理及使用方法。 首先介绍几种简单的(不可编程) 并行输入输出接口电路,然后着重介绍可编程并行接口电路8255A及其典型应用。

14.2 简单的并行接口电路 在输入输出接口电路中,经常要对所传送的信号进行缓冲、驱动和锁存。 能实现这种功能的接口芯片通常是简单的数据锁存器、缓冲器以及双向总线收发器等。 本节扼要介绍三种常用的简单并行输入输出接口芯片,它们是: 锁存器74LS373; 缓冲器74LS244; 数据总线收发器74LS245。

14.2.1 锁存器74LS373 74LS373是一种8位D锁存器电路(D-Latch),具有三态控制输出,其逻辑电路及引脚图如图14.1所示。 图中小括号内的数字编号为芯片的引脚号。

图14.1 74LS373锁存器 (3) 1D D G Q (2) 1Q G OE 3D 4D 5D 6D 7D 8D 2D 1D 3Q (b)引脚图 (4) (5) 2D 2Q (7) (6) 3D 3Q (8) (9) 4D 4Q (13) (12) 5D 5Q (14) (15) 6D 6Q (17) (16) 7D 7Q (18) (19) 8D 8Q (11) (1) G (选通) OE (a)逻辑电路

由图14.1可见,该电路由8个D锁存器构成(图中仅画一个,其余与此相同),有8个输入端1D~8D,8个输出端1Q~8Q,两个控制端: 选通端G和输出允许端OE。 当选通端G为高电平时,则D锁存器的输出跟随相应输入数据端的逻辑电平; 当G变为低电平时,则D锁存器中的当前内容被锁存。 只有当输出允许信号OE有效(为低电平) 时,锁存器中的信息才出现在输出端1Q~8Q上;如果OE为高电平,则输出处于高阻态。

74LS373的真值表如表14-1所示。 该表中H为高电平,L为低电平,Q0为原状态,Z为高阻态,X表示任意值(为H或L均可)。

表14.1 74LS373真值表 选通G 输出允许OE 输入D 输出Q H L X Q0(原状态) Z(高阻态)

锁存器工作时间图 锁存器的应用 Q n-1 t0 t1 t2 输入D 选通 输出Q Q跟随D 保持t2时D的锁存值 n位数据总线 D0 D1

从表14-1可以看到74LS373的功能为: 当选通端G为高电平,同时输出允许端OE为低电平时,则输出Q=输入D(输出Q跟随输入D); 当选通端G为低电平,而输出允许端OE也为低电平时,则输出Q=Q0(Q0为原状态,即选通端G由高电平变为低电平时输出端Q的状态); 当输出允许端OE为高电平时,无论选通端G为何值,输出端Q总为高阻态。

74LS373是十分常用的锁存器电路,主要用来在总线传输电路中锁存地址信息或数据信息,并实现总线信号的缓冲与驱动。 与74LS373锁存器功能类似的芯片还有Intel 8282/8283等 。

14.2.2 缓冲器74LS244 74LS244 是一种三态输出的 8 位缓冲器/驱动器电路, 其逻辑电路图和引脚图如图14.2所示。  

图14.2 74LS244缓冲器 (a) 逻辑电路 (18) (16) (14) (12) (9) (7) (5) (3) 1Y3 1Y4 ___ 2G 1G (2) (4) (6) (8) (11) (13) (15) (17) (1) (19) 1G 2G 1A3 1A4 2A1 2A2 2A3 2A4 1A2 1A1 1Y3 1Y4 2Y1 2Y2 2Y3 2Y4 1Y2 1Y1 (b)引脚图

由图14.2可见,74LS244有8个输入端,分为两路——1A1~1A4和2A1~2A4; 有8个输出端,也分为两路——1Y1~1Y4和2Y1~2Y4。 两路数据传送分别由两个控制信号1G和2G控制: 当1G有效(为低电平) 时,1Y1~1Y4的电平与1A1~1A4的电平相同,即输出反映输入的逻辑电平; 同样,当2G有效时,2Y1~2Y4的电平与2A1~2A4的电平相同。而当1G(或2G) 无效(为高电平) 时,输出1A1~1A4(或2A1~2A4) 为高阻态。

74LS244缓冲器主要用于存储器地址驱动器、单向总线接收器和发送器等。例如,可将其8个输入端的某几位接地,其余接+5V,即可提供特定的8位二进制代码,如为某设备接口提供8位中断类型码。

14.2.3 数据总线收发器74LS245 74LS245是一种三态输出的8位双向总线收发器(transceiver),其逻辑电路图和引脚图如图14.3所示。

图14.3 数据总线收发器74LS245 (a)逻辑电路 (2) (5) (3) (6) (4) (8) (7) (18) (1) (16) (17) (14) (15) (11) (13) (12) A3 A4 A5 A6 A7 A8 (9) A2 A1 B3 B4 B5 B6 B7 B8 B2 (19) DIR _ G B1 _ G DIR A1 B1 A2 B2 A3 B3 A5 B4 B5 A6 B6 A7 B7 A8 B8 (b)引脚图

由图14.3可见,74LS245有16个双向传输的数据端,即A1~A8和B1~B8;另有两个控制端,即允许端G和方向控制端DIR。G用于允许该收发器的操作,DIR用于控制数据传送的方向(A→B或B→A)。 由图14.3(a) 可见,若G信号无效(为高电平),则无论DIR为何种电平,下面两个“与门”的输出均为低电平,从而使两个方向上的三态门的输出均为高阻态,收发器处于“隔开”状态,即两个方向上的数据传送均不能进行。

若G信号有效(为低电平),则可在某一个方向上进行数据传送,到底在哪个方向上进行传送,则由方向控制端DIR的逻辑电平来决定。  74LS245的真值表如表14-2所示。 74LS245通常用于数据的双向传送、缓冲与驱动。 与74LS245功能类似的双向总线收发器电路还有Intel 8286/8287等。

表14-2 74LS245的真值表 允许G 方向控制DIR 数据传送方向 L BA H AB X 隔开

14.2.4 应用举例 1. 锁存器74LS373的应用 在80386DX微机系统中, 需在地址总线上对30位地址信号A2~A31和4个字节允许信号BE0~BE3进行锁存。 图14.4给出了使用5片74LS373芯片对这些信息进行锁存的电路配置情况。

图14.4 74LS373用于地址信号锁存 ALE G 地址总线 A24~A31 AL24~AL31 A16~A23 A2~A31 G 经锁存的地址总线 ALE G 74LS373 地址总线 A24~A31 AL24~AL31 __ OE A16~A23 A2~A31 74LS373 G __ OE AL16~AL23 74LS373 G __ OE AL8~AL15 A8~A15 74LS373 G __ OE AL2~AL7 A2~A7 ___ ___ 字节允许BE0~BE3 74LS373 G __ OE ___ ___ BEL0~BEL3

注意,由于电路中74LS373的OE固定接为逻辑0,所以其输出AL2~AL31和BEL0~BEL3将始终处于允许状态。 由图14.4可见,各片74LS373的选通端G均由ALE(Address Latch Enable)信号来驱动, ALE即地址锁存允许信号,它是专门用来控制地址锁存器的一个总线信号。

2. 数据总线收发器74LS245的应用 图14.5给出了用74LS245实现的总线接口中数据总线收发器电路配置图。 对于像80386DX这样的32位微机系统,其外部数据总线为32位,所以需4块74LS245这样的电路来实现双向总线驱动。 图14.5中,74LS245的DIR输入是由总线信号DT/R来控制,而G是由DEN控制。DT/R和 DEN是系统中总线控制逻辑的输出信号。

图14.5 数据总线收发器的应用 ____ DEN DT/R _ G D24~D31 DB24~DB31 D0~D31 D16~D23 _ 图14.5 数据总线收发器的应用 ____ DEN __ DT/R 系统数据总线 _ G 微处理器数据总线 74LS245 D24~D31 DB24~DB31 DIR D0~D31 D16~D23 _ G 74LS245 DB16~DB23 DIR _ G 74LS245 DB8~DB15 D8~D15 DIR _ G 74LS245 DB0~DB7 D0~D7 DIR

数据总线收发器的一个主要功能是对数据总线信号进行缓冲与驱动,缓冲能力的大小取决于该电路在其输出端能够吸收多少电流。 74LS245的IOL(输出低电平负载电流) 额定值为64mA,而80386DX数据总线最多仅能吸收4mA电流。所以,通过增设数据总线收发器电路可以极大地增强总线的驱动能力。

14.3 可编程并行接口 14.3.1 可编程并行接口的组成及其与CPU和外设的连接 通常,一个可编程并行接口电路应包括下列组成部分: (1) 两个或两个以上具有缓冲能力的数据寄存器。 (2) 可供CPU访问的控制及状态寄存器。 (3) 片选和内部控制逻辑电路。

(4)与外设进行数据交换的控制与联络信号线。 (5)与CPU用中断方式传送数据的相关中断控制电路。 典型的可编程并行接口及其与CPU和外设的连接示意图如图14.6所示。

图14.6 可编程并行接口电路及其与CPU和外设的连接 数据总线 CPU 输 出 设 备 并行输出数据 输出缓冲寄存器 读控信号 输入缓冲寄存器 输出准备好 写控信号 控制寄存器 输出回答 复位信号 状态寄存器 中断响应信号 输 入 设 备 中断逻辑 并行输入数据 中断请求信号 输入准备好 译码器 地址 片选 输入回答

14.3.2 可编程并行接口的数据输入输出过程 将以8255A为例进行讨论。

14.4 可编程并行通信接口8255A 14.4.1 8255A的性能概要 Intel 8255A是一个为Intel 8080和8085微机系统设计的通用可编程并行接口芯片,也可应用于其他微机系统之中。 8255A采用40脚双列直插封装,单一+5V电源,全部输入输出与TTL电平兼容。 用8255A连接外部设备时,通常不需要再附加其他电路,给使用带来很大方便。

8255A 有三个输入输出端口: 端口A、端口B、端口C。 每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。 端口C可作为一个独立的端口使用,但通常是配合端口A和端口B的工作,为这两个端口的输入输出提供控制联络信号。

14.4.2 8255A芯片引脚分配及引脚信号说明 8255A芯片引脚分配如图14.7所示。 8255A芯片的40条引脚,大致可分为三类: (1) 电源与地线共2条: Vcc、GND。 (2) 与外设相连的共24条: PA7~PA0: 端口A数据信号。 PB7~PB0: 端口B数据信号。 PC7~PC0: 端口C数据信号。

图 14.7 8255 A 芯片引脚分配 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 8255 A 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 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

(3) 与CPU相连的共14条: RESET: 复位信号,高电平有效。当RESET信号有效时,所有内部寄存器都被清除。同时,3个数据端口被自动设置为输入端口。 D7~D0: 双向数据线,在8080、8085系统中,8255A的D7~D0与系统的8位数据总线相连; 在8086系统中,采用16位数据总线,8255A的D7~D0通常是接在16位数据总线的低8位上。

CS: 片选信号,低电平有效。该信号来自译码器的输出,只有当CS有效时,读信号RD和写信号WR才对8255A有效。 RD:读信号,低电平有效。它控制从8255A读出数据或状态信息。

WR: 写信号,低电平有效。它控制把数据或控制命令字写入8255A。 A1、A0: 端口选择信号。8255A内部共有4个端口(即寄存器): 3个数据端口(端口A、端口B、端口C) 和1个控制端口,当片选信号CS有效时,规定A1、 A0为00、01、10、11时,分别选中端口A、端口B、端口C和控制端口。 CS、RD、WR、A1、A0 这五个信号的组合决定了对三个数据端口和一个控制端口的读写操作,如表14-3所示。

表14-3 8255A端口选择和基本操作 A1 A0 输入操作(读) 1 端口A数据总线 端口B数据总线 端口C数据总线 1 端口A数据总线 端口B数据总线 端口C数据总线 输出操作(写) 数据总线端口A 数据总线端口B 数据总线端口C 数据总线控制字寄存器 无操作情况 X 数据总线为三态(高阻) 非法操作

14.4.3 8255A内部结构方块图 8255A内部结构方块图如图14.8所示。

图14.8 8255A内部结构方块图 A组 端口A (8位) 端口C (高4位) B组 (低4位) 端口B I/O PA7~PA0 PC7~PC4 PC3~PC0 PB7~PB0 A组控制 B组控制 数据总线 缓冲器 读写 控制 逻辑 __ RD WR A1 A0 CS 电源 +5V GND 8位内部数据总线 D7~D0 双向数据总线 RESET

(1) 数据总线缓冲器 由图14.8可以看出,8255A由以下几部分组成: 这是一个双向三态8位数据缓冲器,它是8255A与CPU数据总线的接口。 输入数据、输出数据以及CPU发给8255A的控制字和从8255A读出的状态信息都是通过该缓冲器传送的。

(2) 端口A、端口B、端口C 8255A有三个8位端口(端口A、端口B、端口C),各端口可由程序设定为输入端口或输出端口。 端口C也可以作为输入端口或输出端口,但往往是用来配合端口A和端口B的工作。 在方式字的控制下,端口C可以分成两个4位的端口,分别用来为端口A和端口B提供控制和状态信息。

(3) A组控制和B组控制 (4) 读写控制逻辑 A组控制——控制端口A及端口C的高4位。 B组控制——控制端口B及端口C的低4位。 (4) 读写控制逻辑 读写控制逻辑负责管理8255A的数据传输过程。

14.4.4 8255A的控制字 1. 方式选择控制字 方式选择控制字的格式如图14.9所示。

图14.9 8255A方式选择控制字 1 D6 D5 D4 D3 D2 D1 D0 方式选择控 制字标识位 A组方式选择 00 方式0 00 方式0 01 方式1 1x 方式2 端口A 1 输入 0 输出 PC3~PC0: 1 输入 (方式0时) 0 输出 端口B: 1 输入 B组方式选择: 0 方式0 1 方式1 PC7~PC4: 1 输入

假定要求8255A的各个端口工作于如下方式: 端口A——方式0,输出; 端口B——方式0,输入; 端口C的高4位——方式0,输出; 端口C的低4位——方式0,输入。 那么,相应的方式选择控制字应为10000011B(83H)。

在实验系统中8255A控制口的地址为28BH,则执行如下三条指令即可实现上述工作方式的设定。 MOV DX, 28BH MOV AL, 83H OUT DX , AL; 将方式选择控制字写入控制口

2. 端口C按位置1/置0控制字 可以用专门的控制字实现对端口C按位置1/置0操作,用以产生所需的控制功能,这种控制字就是“端口C按位置1/置0控制字”。 该控制字的具体格式如图14.10所示。  

图14.10 端口C按位置1/置0控制字 D6 D5 D4 D3 D2 D1 D0 无关 1 端口C按位置1/置0 控制字标识位 PC0 D6 D5 D4 D3 D2 D1 D0 x 无关 1: 置1 0: 置0 1 端口C按位置1/置0 控制字标识位 位选择 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

需要指出的是,端口C按位置1/置0控制字是对端口C的操作控制信息,因此该控制字必须写入控制口,而不应写入端口C。 控制字的D0位决定是置“1”操作还是置“0”操作,但究竟是对端口C的哪一位进行操作,则决定于控制字中的D3、D2、D1位。

例如,要实现对端口C的PC6位置“0”,则控制字应为00001100B(0CH)。 设8255A的控制口地址同上,则执行下列指令即可实现指定的功能: MOV DX,28BH MOV AL,0CH; OUT DX,AL ; 将“端口C按位置1/置0控制字”写入控制口,实现对PC6位置“0”

14.4.5 8255A的工作方式 1. 方式0 方式0也叫基本输入/输出方式。 在这种方式下,端口A和端口B可以通过方式选择控制字规定为输入口或者输出口; 端口C分为高4位(PC7~PC4) 和低4位(PC3~PC0) 两个4位端口,这两个4位端口也可由方式选择控制字分别规定为输入口或输出口。

这四个并行口共可构成24=16种不同的使用组态。 利用8255A的方式0进行数据传输时,由于没有规定专门的应答信号,所以这种方式常用于与简单外设之间的数据传送,如向LED显示器的输出,从二进制开关装置的输入等。

2. 方式1 方式1也叫选通的输入/输出方式。 和方式0相比,最主要的差别就是当端口A和端口B工作于方式1时,要利用端口C来接收选通信号或提供有关的状态信号,而这些信号是由端口C的固定数位来接收或提供的,即信号与数位之间存在着对应关系。 这种关系不可以用程序的方法予以改变。

(1) 方式1输入 当端口A和端口B工作于“方式1输入”时,端口C控制信号定义如图14.11所示。 该图中还给出了相应的方式选择控制字。

图14.11 8255A方式1输入 方式1输入(端口A) D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1/0 D7~D0 INTEA PC4 PC5 PC6,7 2 I/O ____ STBA IBFA PA7~PA0 ___ RD PC3 D7~D0 INTRA 方式1输入(端口A) 1 0 1 1 1/0 A组方式1 D7 D6 D5 D4 D3 D2 D1 D0 PC6,7 1 输入 0 输出 端口A输入 INTEB PC2 PC1 ____ STBB IBFB PB7~PB0 ___ RD PC0 D7~D0 INTRB 方式1输入(端口B) 1 1 1 D7 D6 D5 D4 D3 D2 D1 D0 B组方式1 端口B输入

对于图14.11中所示的控制信号说明如下: STB(Strobe): 选通信号,低电平有效。它是由外设送给8255A的输入信号,当其有效时,8255A接收外设送来的一个8位数据。 IBF(Input Buffer Full): “输入缓冲器满”信号,高电平有效,它是一个8255A送给外设的联络信号。

当IBF为高电平时,表示外设的数据已送进输入缓冲器中,但尚未被CPU取走,通知外设不能送新数据; IBF信号是由STB使其置位(变为高电平),而由读信号RD的上升沿使其复位(变为低电平)。

INTR(Interrupt Request): 中断请求信号,高电平有效。 它是当STB为1、IBF为1且INTE也为1(中断允许) 时被置为高电平。 也就是说,当选通信号结束(STB=1),已将一个数据送进输入缓冲器(IBF=1),并且端口处于中断允许状态(INTE=1) 时,8255A的INTR端被置为高电平,向CPU发出中断请求信号。 当CPU响应中断读取输入缓冲器中的数据时,由读信号RD的下降沿将INTR置为低电平。

INTEA(Interrupt Enable): 端口A中断允许信号。INTEA没有外部引出端,它实际上就是端口A内部的中断允许触发器的状态信号。 INTEA由PC4的置位/复位来控制,PC4=1时,使端口A处于中断允许状态。 INTEA controlled by bit set/reset of PC4

INTEB : 端口B中断允许信号。与INTEA类似,INTEB也没有外部引出端,它是端口B内部的中断允许触发器的状态信号。 由PC2的置位/复位来控制,PC2=1时,使端口B处于中断允许状态。

另外,在方式1输入时,PC6和PC7两位还闲着未用。如果要利用它们,可用方式选择控制字中的D3位来设定。 方式1输入工作时序图如图14.12所示。

图14.12 方式1输入工作时序图 tST ___ STB tSIB IBF TSIT tRIB tRIT INTR ___ RD tPH 图14.12 方式1输入工作时序图 tST ___ STB tSIB IBF TSIT tRIB tRIT INTR ___ RD tPH 来自外设的 输入数据 tPS

图14.12中的参数说明

(2) 方式1输出 当端口A和端口B工作于方式1输出时,方式选择控制字及相应的端口C控制信号定义如图14.13所示。

图14.13 8255A方式1输出 方式1输出(端口A) D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 1/0 D7~D0 1 0 1 0 1/0 A组方式1 D7 D6 D5 D4 D3 D2 D1 D0 PC4,5 1 输入 0 输出 端口A输出 PA7~PA0 INTEA ____ OBFA ACKA PC7 PC6 D7~D0 ___ WR PC3 INTRA 2 PC4,5 I/O 方式1输出(端口B) 1 1 0 D7 D6 D5 D4 D3 D2 D1 D0 B组方式1 端口B输出 PB7~PB0 INTEB ____ OBFB ACKB PC1 PC2 D7~D0 INTRB ___ WR PC0

对图14.13中所示的控制信号说明如下: OBF(Output Buffer Full): “输出缓冲器满”信号,低电平有效,它是8255A输出给外设的一个控制信号。 当其有效时,表示CPU已经把数据输出给指定端口,通知外设把数据取走。 它是由写信号WR的上升沿置成有效(低电平),而由ACK信号的有效电平使其恢复为高电平。

ACK(Acknowledge): 外设响应信号,低电平有效。当其有效时,表明CPU通过8255A输出的数据已经由外设接收。它是对OBF的回答信号。 INTR(Interrupt Request): 中断请求信号,高电平有效。它是8255A的一个输出信号,用于向CPU发出中断请求。INTR是当ACK、OBF和INTE都为“1”时才被置成高电平(向CPU发出中断请求信号);写信号WR的上升沿使其变为低电平(清除中断请求信号)。

INTEA: 端口A中断允许信号,由PC6的置位/复位来控制,PC6=1时,端口A处于中断允许状态。 INTEB: 端口B中断允许信号,由PC2的置位/复位来控制,PC2=1时,端口B处于中断允许状态。 另外,在方式1输出时,PC4、PC5两位还闲着未用,如果要利用它们可用方式选择控制字的D3位来设定。

图14.14 方式1输出工作时序图 INTR ___ WR OBF ____ ACK 输出 tAK tAIT tWIT tWOB tAOB 图14.14 方式1输出工作时序图 INTR ___ WR OBF ____ ACK 输出 tAK tAIT tWIT tWOB tAOB tWB

图14.14中参数说明

14.4.6 8255A的状态字 1. 方式1状态字格式 8255A工作于方式1和方式2时的状态字是通过读端口C的内容来获得的。 方式1状态字格式如图14.16所示。

图14.16 方式1状态字格式 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 图14.16 方式1状态字格式 D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 (a)方式1输入状态字格式 I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 (b)方式1输出状态字格式 ____ _____ OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB

2. 方式2状态字格式 方式2的状态字也是从端口C读取。 方式2状态字的格式如图14.17所示。

OBFA INTE1 IBFA INTE2 INTRA 图14.17 方式2状态字格式 D7 D6 D5 D4 D3 D2 D1 D0 A组状态 B组状态 OBFA INTE1 IBFA INTE2 INTRA _____ I/O I/O I/O 方式1 方式0 INTEB OBFB INTRB INTEB IBFB INTRB 输出时 输入时

14.4.7 8255A应用举例 例14.1 8255A工作于方式0,利用8255A将外设开关的二进制状态从端口A输入,经程序转换为对应的LED段选码(字形码) 后,再从端口B输出到LED显示器。 具体连线图如图14.18(a) 所示。 LED显示器如图 14.18(b) 所示。

图 14.18 8255 A 的应用 +5 +5 V V 2 2 K K × × 4 4 K0 K0 PA PA CPU CPU D D 14.18 8255 A 的应用 +5 +5 V V 2 2 K K × × 4 4 K0 K0 PA PA CPU CPU D D ~D ~D K1 K1 PA PA (8088) (8088) 7 7 1 1 K2 K2 PA PA 2 2 K3 K3 PA PA a b c d e f g h +5 V 120欧姆 74 LS04 LED ( a) 连线图 ( ) 显示器 3 3 +5 V 8255 8255 A A 120 __ __ __ __ a PB PB RD RD RD RD __ __ __ __ b PB PB WR WR WR WR 1 1 c PB PB 2 2 d A A A A PB PB 3 3 e A A A A PB PB 1 1 1 1 4 4 f PB PB 地址 地址 地 地 5 5 g 址 址 PB PB 6 6 译 译 h PB PB 码 码 7 7 74 LS04 LED ( a) 连线图

设8255A的端口地址为: 端口A——D0H,端口B——D1H,端口C——D2H,控制口——D3H。则本例的初始化及输入、输出控制程序如下所示。 DATA SEGMENT SSEGCODE DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H,71H DATA ENDS CODE SEGMENT ASSUME CS: CODE,DS: DATA START:MOV AX, DATA MOV DS, AX MOV AL,90H ;设置方式选择控制字,A口工作于方 式0输入,B 口工作于方式0输出 OUT 0D3H, AL RDPORTA : IN AL,0D0H ; 读A口 AND AL,0FH ; 取A口低4位 MOV BX,OFFSET SSEGCODE ; 取LED段选码表首地址 XLAT ;查表,AL←(BX+AL)

OUT 0D1H,AL ;从B口输出LED段选码,显示相应字形符号 MOV AX,XXXXH ; 延时 DELAY:DEC AX ; JNZ DELAY ; MOV AH,1 ; 判断是否有键按下 INT 16H ; JZ RDPORTA ; 若无,则继续读端口A MOV AH,4CH ; 否则返回DOS INT 21H CODE ENDS END START

例14.2 8255A工作于方式0,用8255A作为以查询方式工作的打印机接口,如图14.19所示。

图14.19 8255A作为打印机接口 CPU 系统总线 8255A PA7~PA0 打印机 PC6 PC2 ___ STB BUSY

工作原理为: 当主机开始打印输出时,先测试打印机忙(BUSY) 信号, 当检测到BUSY信号为0时,则主机可通过8255A向打印机输出一个字符。 此时,还需输出一个选通信号(负脉冲) 给打印机的STB端,用此负脉冲作为字符送到打印机输入缓冲器的打入脉冲。

PC6作为选通信号输出端,所以PC7~PC4应设定为输出方式。 设打印字符存放在内存2000H单元 。 8255A的端口地址为: 用8255A的端口A作为打印输出数据口,工作于方式0;端口B不用;端口C也工作于方式0,端口C的PC2作为BUSY信号输入端,所以PC3~PC0应设定为输入方式; PC6作为选通信号输出端,所以PC7~PC4应设定为输出方式。 设打印字符存放在内存2000H单元 。 8255A的端口地址为: 端口A—D0H,端口B—D1H,端口C—D2H,控制口—D3H 则初始化及打印控制子程序如下所示: 。

BEGIN: MOV AL,81H ; 方式选择控制字,使A、B、C三个端口工作于方式0, OUT 0D3H,AL ; 端口A为输出,PC7~PC4为输出,PC3~PC0为输入 MOV AL,0DH ;用“端口C按位置1/置0控制字”置PC6=1,使STB为高电平 OUT 0D3H,AL TESBY: IN AL,0D2H ; 读端口C TEST AL,04H ; 测试PC2(BUSY) JNZ TESBY ;如PC2=1(BUSY信号有效) 打印机处于忙状态,继续查询 MOV AL,DS:[2000H]; PC2=0(BUSY信号无效),取打印字符 OUT 0D0H,AL ; 由端口A输出打印字符 MOV AL, 0CH ; 用“端口C按位置1/置0控制字”置PC6=0,使STB为低电平 OUT 0D3H, AL INC AL OUT 0D3H,AL ;置PC6=1,再使STB为高电平,从而产生一个负选通脉冲信号 RET

第14章 作业 P500-501 13题 ; 14题

P500习题13 解: ①程序流程框图: ② 初始化及有关控制程序 设置8255方式选择控制字: A口方式O输出,B口方式O输出,C口方式O输入。 向A口输出01H,使主道绿灯亮;向B口输出04H,使副道红灯亮 延迟40秒 PC0=1? Yes 向A口输出02H,使主道黄灯亮 延迟5秒 向A口输出04H,使主道红灯亮; 向B口输出01H,使副道绿灯亮 延迟20秒 向B口输出02H,使副道黄灯亮

图14.23 交通灯控制 接系统总线 8255A PC0 PA2 PA1 PA0 PB2 PB1 PB0 K R Y G R Y G 图14.23 交通灯控制 接系统总线 8255A PC0 PA2 PA1 PA0 PB2 PB1 PB0 K R Y G R Y G (开关) 主道灯 副道灯