当前位置:首页 >> 计算机软件及应用 >>

第五讲(2)数字量输入输出-并行通信


可编程并行输入输出接口

教学重点
8255A的工作方式和编程 的工作方式和编程 8255A的应用 的应用

并行数据传输方式
以计算机的字长 通常是8位 字长, 位或32位为传输 以计算机的字长,通常是 位、16位或 位为传输 位或 单位, 单位,一次传送一个字长的数据 适合于外部设备与微机之间进行近距离 大量和 近距离、 适合于外部设备与微机之间进行近距离、大量和 快速的信息交换 快速的信息交换
例如:微机与并行接口打印机、 例如:微机与并行接口打印机、磁盘驱动器

微机系统中最基本 最基本的信息交换方法 微机系统中最基本的信息交换方法
例如:系统板上各部件之间,接口电路板上各部件 例如:系统板上各部件之间, 之间

8255A的基本性能 的基本性能

Intel 8086/8088 系列的可编程外设接口电路 (Programmable Peripheral Interface)简称 PPI, 简称 , 型号为8255(改进型为 ),具有 型号为 (改进型为8255A及8255A-5),具有 及 ), 24条输入 输出引脚、可编程的通用并行输入 输出 条输入/输出引脚 条输入 输出引脚、可编程的通用并行输入/输出 接口电路。它是一片使用单一+5V电源的 脚双 电源的40脚双 接口电路。它是一片使用单一 电源的 列直插式大规模集成电路。 的通用性强, 列直插式大规模集成电路。8255A的通用性强, 的通用性强 使用灵活,通过它CPU可直接与外设相连接。 可直接与外设相连接。 使用灵活,通过它 可直接与外设相连接

8255引脚图 引脚图
34 33 32 31 30 29 28 27 5 36 9 8 35 6 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS

8255

PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10

8255A的内部结构和引脚 的内部结构和引脚
A组 组 控制 A组 组 端口A 端口 PA0~PA7

D0~D7

数据 总线 缓冲器

内部数据线

A组 组 端口C 端口 上部 B组 组 端口B 端口

PC4~PC7

RD WR A0 A1 CS RESET

B组 组 控制 读写 控制 逻辑 内部控制线

PB0~PB7

B组 组 端口C 端口 下部

PC0~PC3

8255A内部结构由以下四部分组成: 内部结构由以下四部分组成: 内部结构由以下四部分组成

数据端口A、 、 ; 数据端口 、B、C; A组控制和 组控制; 组控制和B组控制 组控制和 组控制; 写控制逻辑电路; 读/写控制逻辑电路; 写控制逻辑电路 数据总线缓冲器。 数据总线缓冲器。

三个相互独立的输入/输出通道 三个相互独立的输入 输出通道

8255A具有三个相互独立的输入 输出通道: 具有三个相互独立的输入/输出通道 具有三个相互独立的输入 输出通道: 通道A、通道B、通道C 通道 、通道 、通道
A,B,C三通道可以联合使用,构成单线、双 , , 三通道可以联合使用,构成单线、 三通道可以联合使用 线或三线联络信号的并行接口。此时C口完全 线或三线联络信号的并行接口。此时 口完全 服务于A、 口 服务于 、B口。 A口有三种工作方式:方式 、方式 、方式 。 口有三种工作方式: 口有三种工作方式 方式0、方式1、方式2。 B口有两种工作方式:方式 、方式 。 口有两种工作方式: 口有两种工作方式 方式0、方式1。

8255A的工作方式 的工作方式

方式0: 方式 :基本输入输出方式
适用于无条件传送和查询方式的接口电路 适用于无条件传送和查询方式的接口电路 无条件传送和查询方式

方式1: 方式 :选通输入输出方式
适用于查询和中断方式的接口电路 适用于查询和中断方式的接口电路 查询和中断方式

方式2: 方式 :双向选通传送方式
双向传送数据的外设 适用于与双向传送数据 适用于与双向传送数据的外设 适用于查询和中断方式 查询和中断方式的接口电路 适用于查询和中断方式的接口电路

8255A的三个端口 的三个端口
端口A: 位的数据输出锁存/缓冲器和一个 端口 :包括一个 8 位的数据输出锁存 缓冲器和一个 8 位的数据输入锁存器,可作为数据输入或输出端口, 位的数据输入锁存器,可作为数据输入或输出端口, 并 工作于三种方式中的任何一种。 工作于三种方式中的任何一种。 端口B: 位的数据输出锁存/缓冲器和一个 端口 : 包括一个 8 位的数据输出锁存 缓冲器和一个 8 位的数据输入缓冲器,可作为数据输入或输出端口, 位的数据输入缓冲器,可作为数据输入或输出端口, 但 不能工作于方式2。 不能工作于方式 。 端口C: 位的数据输出锁存/缓冲器和一个 端口 : 包括一个 8 位的数据输出锁存 缓冲器和一个 8 位的数据输入缓冲器, 可在方式字控制下分为两个4位 位的数据输入缓冲器, 可在方式字控制下分为两个 位 的端口( 端口上和下),每个 位端口都有4位的锁存 端口上和下),每个4位端口都有 的端口(C端口上和下),每个 位端口都有 位的锁存 器, 用来配合端口 与端口B锁存输出控制信号和输入 用来配合端口A与端口 锁存输出控制信号和输入 配合端口 与端口 状态信号,不能工作于方式1或 。 状态信号,不能工作于方式 或2。

A组和 组控制的作用 组和B组控制的作用 组和

A组和 组控制的作用如下: 组和B组控制的作用如下 组和 组控制的作用如下:
A组控制逻辑控制端口A及端口 的上半部; 组控制逻辑控制端口 及端口C的上半部 的上半部; 组控制逻辑控制端口 B组控制逻辑控制端口 及端口 的下半部。 组控制逻辑控制端口 的下半部。 组控制逻辑控制端口B及端口C的下半部

C端口置 置0控制字 端口置1置 控制字 端口置

端口C的数位常常作为控制位来使用,所以, 端口 的数位常常作为控制位来使用,所以,在 的数位常常作为控制位来使用 设计8255A芯片时,应使端口 中的各位可以用 芯片时, 设计 芯片时 应使端口C中的各位可以用 控制字来单独设置。 置1置0控制字来单独设置。 置 控制字来单独设置 说明: 说明: C端口置 置0控制字尽管是对端口 进行操作, 端口置1置 控制字尽管是对端口 进行操作, 控制字尽管是对端口C进行操作 端口置 但此控制字必须写入控制口 而不是写入C端口 控制字必须写入控制口, 端口. 但此控制字必须写入控制口,而不是写入 端口

8255内部寄存器选择 内部寄存器选择

/CS
0 0 0 0

A1 A0
0 0 1 1 0 1 0 1

/RD
A口->数据总线 口 数据总线 B口->数据总线 口 数据总线 C口->数据总线 口 数据总线

/WR
数据总线->A口 口 数据总线 数据总线->B口 数据总线 口 数据总线->C口 数据总线 口 数据总线->控制寄存器 数据总线 控制寄存器

写入方式控制字: 写入方式控制字:控制字格式
方式选择控制字
1 D6 D5 D4 D3 D2 D1 D0 A组 组 方式选择
00=方式 方式0 方式 01=方式 方式1 方式 10=方式 方式2 方式

B组 组 端口C(下半部 端口 下半部) 下半部
1=输入 输入 0=输出 输出

端口B 端口 端口A 端口
1=输入 输入 0=输出 输出 1=输入 输入 0=输出 输出

端口C(上半部 端口 上半部) 上半部
1=输入 输入 0=输出 输出

方式选择
0=方式 方式0 方式 1=方式 方式1 方式

写入方式控制字: 写入方式控制字:示例 要求: 要求:
A端口:方式1输入 端口:方式 输入 端口 C端口上半部:输出,C口下半部:输入 端口上半部: 口下半部: 端口上半部 输出, 口下半部 B端口:方式 输出 端口: 端口 方式0输出

方式控制字:10110001B或B1H 方式控制字: 或 初始化的程序段: 初始化的程序段:
mov dx,2A3h mov al,0b1h out dx,al ;假设控制端口为 假设控制端口为2A3H 假设控制端口为 ;方式控制字 方式控制字 ;送到控制端口 送到控制端口

端口C的位控制字 端口 的位控制字
位控制字写入控制端口 特别便于置位复位内部中断允许触发器INTE 特别便于置位复位内部中断允许触发器

端口C按位置 复位控制字 端口 按位置/复位控制字 按位置
0 D6 D5 D4 D3 D2 D1 D0 C端口位选择 端口位选择
D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0

1=置位 置位 0=复位 复位

关于端口C( ) 关于端口 (1)

C端口被分成两个4位端口,两个端口只能以方式 端口被分成两个 位端口 两个端口只能以方式 端口被分成两个 位端口, 0工作,可分别选择输入或输出 工作, 工作 在控制上, 端口上半部和 端口编为A组 端口上半部和A端口编为 在控制上,C端口上半部和 端口编为 组,C端 端 口下半部和B端口编为 端口编为B组 口下半部和 端口编为 组 端口工作在方式1或方式 当A和B端口工作在方式 或方式 时,C端口的部 和 端口工作在方式 或方式2时 端口的部 分引脚将被征用,其余引脚仍可设定工作在方式0 分引脚将被征用,其余引脚仍可设定工作在方式

关于端口C( ) 关于端口 (2)

对端口C的数据输出有两种办法 对端口 的数据输出有两种办法 的数据输出有
通过端口C的 地址 地址: 通过端口 的I/O地址:向C端口直接写入字节 端口直接写入字节 数据。这一数据被写进C端口的输出锁存器,并 数据。这一数据被写进 端口的输出锁存器, 端口的输出锁存器 从输出引脚输出, 从输出引脚输出,但对设置为输入的引脚无效 通过控制端口: 端口写入位控字, 通过控制端口:向C端口写入位控字,使C端口 端口写入位控字 端口 的某个引脚输出1或 , 的某个引脚输出 或0,或置位复位内部的中断 允许触发器

关于端口C( ) 关于端口 (3)

读取的C端口数据有两种情况 读取的 端口数据有两种情况 端口数据有
未被A和 端口征用的引脚 将从定义为输入 端口征用的引脚: 输入的 未被 和B端口征用的引脚:将从定义为输入的 端口读到引脚输入信息;将从定义为输出 输出的端 端口读到引脚输入信息;将从定义为输出的端 口读到输出锁存器中的信息 端口征用作为联络线的引脚: 被A和B端口征用作为联络线的引脚:将读到反 和 端口征用作为联络线的引脚 映8255A状态的状态字 状态的状态字

端口C的状态字 端口 的状态字
A组 组 B组 组

D7

D6

D5

D4

D3

D2

D1

D0

方式1输入 方式 输入
I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB

方式1输出 方式 输出
OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB

方式2双向 方式 双向
OBFA INTE1 IBFA INTE2 INTRA × × ×

方式0 方式

方式0是一种基本输入或输出方式, 方式 是一种基本输入或输出方式,它适用于 是一种基本输入或输出方式 无需握手信号的简单输入输出应用场合, 无需握手信号的简单输入输出应用场合, 端 都可作为输入或输出数据使用, 口A、B、C都可作为输入或输出数据使用,输 、 、 都可作为输入或输出数据使用 出有锁存而输入无锁存。 出有锁存而输入无锁存。

方式0输入时序 方式 输入时序

RD 输入端口 CS,A1,A0 D0~D7 data data

方式0输出时序 方式 输出时序

WR 输出端口 CS,A1,A0 D0~D7 data data

方式1 方式

方式1也称选通的输入/输出方式。 方式 也称选通的输入 输出方式。在这种方 也称选通的输入 输出方式 式下, 式下,无论是输入还是输出都通过应答关系 实现, 这时端口A或 用作数据口 端口C的 用作数据口, 实现, 这时端口 或B用作数据口,端口 的 一部分引脚用作握手信号线与中断请求线。 一部分引脚用作握手信号线与中断请求线。

方式1 方式

若端口A工作于方式 则 可工作于方式 可工作于方式0; 若端口 工作于方式1,则B可工作于方式 ; 工作于方式 若端口B工作于方式 工作于方式1,则 可工作于方式 可工作于方式0或余 若端口 工作于方式 则A可工作于方式 或余 下的13位可工作于方式 位可工作于方式0; 下的13位可工作于方式0; 若端口A和 同时工作于方式 端口C余下的 同时工作于方式1,端口 若端口 和B同时工作于方式 端口 余下的 两位还可用于传送数据或控制信号。 两位还可用于传送数据或控制信号。

方式1输入引脚: 端口 方式 输入引脚:A端口 输入引脚
数据选通信号 表示外设已经准备好数据 STBA IBFA 输入缓冲器满信号 表示A口已经接收数据 表示 口已经接收数据 PC3 INTRA

PA7~PA0
INTEA

PC4 PC5

中断允许触发器

中断请求信号 请求CPU接收数据 请求 接收数据

方式1输入引脚: 端口 方式 输入引脚:B端口 输入引脚
数据选通信号 表示外设已经准备好数据 STBB IBFB 输入缓冲器满信号 表示A口已经接收数据 表示 口已经接收数据 PC0 INTRB

PB7~PB0
INTEB

PC2 PC1

中断允许触发器

中断请求信号 请求CPU接收数据 请求 接收数据

方式1输入联络信号 方式 输入联络信号
STB*——选通信号,低电平有效 选通信号, 选通信号
由外设提供的输入信号,当其有效时, 由外设提供的输入信号,当其有效时,将输入设备 送来的数据锁存至8255A的输入锁存器 送来的数据锁存至 的输入锁存器

IBF——输入缓冲器满信号,高电平有效 输入缓冲器满信号, 输入缓冲器满信号
8255A输出的联络信号。当其有效时,表示数据已 输出的联络信号。当其有效时, 输出的联络信号 锁存在输入锁存器

INTR——中断请求信号,高电平有效 中断请求信号, 中断请求信号
8255A输出的信号,可用于向CPU提出中断请求, 输出的信号,可用于向 提出中断请求, 输出的信号 提出中断请求 要求CPU读取外设数据 要求 读取外设数据

方式1输入时序 方式 输入时序

STB IBF INTR RD 输入端口 D0~D7 data data

方式1的输入过程 方式 的输入过程
1、当输入设备已准备好一个新数据时,首先检测 、当输入设备已准备好一个新数据时 首先检测 首先检测IBF线的状 线的状 若为低(表示输入锁存器 态,若为低 表示输入锁存器 空"),则输入设备将数据放入 若为低 表示输入锁存器"空 则输入设备将数据放入 PA7--PA0。 。 2、然后发出选通信号 、然后发出选通信号STB,STB将PA7--PA0上的数据置入数 将 上的数据置入数 据锁存器,这时 这时8255A使IBF有效 指示输入锁存器已 满"。 有效,指示输入锁存器已 据锁存器 这时 使 有效 指示输入锁存器已"满 。 3、STB变为无效后 变为无效后,8255A使INTR由低变高 通过 由低变高,通过 、 变为无效后 使 由低变高 通过8259A向 向 CPU发出中断请求 发出中断请求,CPU响应请求并进入相应的中断服务程 发出中断请求 响应请求并进入相应的中断服务程 序。 4、在中断服务程序中 读端口A,RD的下降沿使 的下降沿使INTR无 、在中断服务程序中,CPU读端口 读端口 的下降沿使 无 效。 5、RD的上升沿使 、 的上升沿使IBF变无效 指示输入锁存器的数据已传送 变无效,指示输入锁存器的数据已传送 的上升沿使 变无效 处于"空 状态 准备接收新的数据。 状态,准备接收新的数据 给CPU,处于 空"状态 准备接收新的数据。 处于

方式1输出引脚: 端口 方式 输出引脚:A端口 输出引脚

PA7~PA0
INTEA

外设响应信号 表示外设已经接收到数据 ACKA OBFA 输出缓冲器满信号 表示CPU已经输出了数据 表示 已经输出了数据 INTRA

PC6 PC7

PC3

中断允许触发器

中断请求信号 请求CPU再次输出数据 请求 再次输出数据

方式1输出引脚: 端口 方式 输出引脚:B端口 输出引脚

PB7~PB0
INTEB

外设响应信号 表示外设已经接收到数据 ACKB OBFB 输出缓冲器满信号 表示CPU已经输出了数据 表示 已经输出了数据 INTRB

PC2 PC1

PC0

中断允许触发器

中断请求信号 请求CPU再次输出数据 请求 再次输出数据

方式1输出联络信号 方式 输出联络信号
OBF*——输出缓冲器满信号,低有效 输出缓冲器满信号, 输出缓冲器满信号
8255A输出给外设的一个控制信号,当其有效时, 输出给外设的一个控制信号,当其有效时, 输出给外设的一个控制信号 表示CPU已把数据输出给指定的端口,外设可以 已把数据输出给指定的端口, 表示 已把数据输出给指定的端口 取走

ACK*——响应信号,低有效 响应信号, 响应信号
外设的响应信号,指示8255A的端口数据已由外设 外设的响应信号,指示 的端口数据已由外设 接受

INTR——中断请求信号,高有效 中断请求信号, 中断请求信号
当输出设备已接受数据后, 当输出设备已接受数据后,8255A输出此信号向 输出此信号向 CPU提出中断请求,要求 提出中断请求, 提出中断请求 要求CPU继续提供数据 继续提供数据

方式1输出时序 方式 输出时序

WR OBF INTR ACK 输出端口 D0~D7 data data

方式1的输出过程 方式 的输出过程
1、以端口A为例 当输出设备接收了前一次数据 后,8255A通 、以端口 为例 为例,当输出设备接收了前一次数据 通 请求中断。 过8259A向CPU请求中断。 向 请求中断 2、在中断服务程序中 将数据写入指定的端口,WR变为 、在中断服务程序中,CPU将数据写入指定的端口 将数据写入指定的端口 变为 有效,于是数据写入输出锁存器并出现在 于是数据写入输出锁存器并出现在PA7--PA0。 有效 于是数据写入输出锁存器并出现在 。 3、写信号 的上升沿使OBF变为有效 指示输出设备 变为有效,指示输出设备 、写信号WR的上升沿使 的上升沿使 变为有效 指示输出设备PA7-PA0上,已有新的数据 同时还使 已有新的数据,同时还使 上 已有新的数据 同时还使INTR变为 无效。 变为 无效。 4、在PA7--PA0上输出数据。 上输出数据。 、 上输出数据 5、输出设备接收到数据后 向8255A发回 发回ACK信号 信号,ACK的上 、输出设备接收到数据后,向 发回 信号 的上 升沿通常表示输出设备已准备好再接收新的数据。 升沿通常表示输出设备已准备好再接收新的数据。 6、8255A在ACK出现上升沿之前使 出现上升沿之前使OBF变为无效 若INTE=1, 变为无效,若 、 在 出现上升沿之前使 变为无效 则还使INTR变为有效 再次请求中断。 变为有效,再次请求中断 则还使 变为有效 再次请求中断。

关于方式1中断控制 关于方式 中断控制
8255A的中断由中断允许触发器 的中断由中断允许触发器 的中断由中断允许触发器INTE控制 控制
置位允许中断, 置位允许中断,复位禁止中断

的操作通过写入端口 的对应位实现 对INTE的操作通过写入端口 的对应位实现, 的操作通过写入端口C的对应位实现, INTE触发器对应端口 的位是作应答联络信号的 触发器对应端口C的位是作应答联络信号的 触发器对应端口 输入信号的哪一位,只要对那一位置位/复位就可 输入信号的哪一位,只要对那一位置位 复位就可 以控制INTE触发器 以控制 触发器 选通输入方式下
端口A的 对应PC4 端口 的INTEA对应 对应 端口B的 对应PC2 端口 的INTEB对应 对应

方式2: 方式 :双向方式

方式2将方式 的选通输入输出功能组合成一个 方式 将方式1的选通输入输出功能组合成一个双 将方式 的选通输入输出功能组合成一个双 向数据端口, 向数据端口,可以发送数据和接收数据 只有端口 可以工作于方式2,需要利用端口C的 端口A可以工作于方式 只有端口 可以工作于方式 ,需要利用端口 的5 个信号线,其作用与方式1相同 个信号线,其作用与方式 相同 方式2的数据输入过程与方式 与方式1的输入方式一样 方式 的数据输入过程与方式 的输入方式一样 方式2的数据输出过程与方式 与方式1的输出方式有一点 方式 的数据输出过程与方式 的输出方式有一点 不同:数据输出时8255A不是在 不是在OBF*有效时向外 不同:数据输出时 不是在 有效时向外 设输出数据,而是在外设提供响应信号ACK*时 设输出数据,而是在外设提供响应信号 时 才送出数据

方式2双向引脚 方式 双向引脚
PA7~PA0
INTE1

PC6 PC7

ACKA OBFA STBA IBFA INTRA

设置INTE1(输出) 输出) 用PC6设置 设置INTE2(输入) 输入) 用PC4设置 输入和输出中断通过 或门输出INTRA信号 或门输出

INTE2 PC4

PC5

PC3

方式2双向时序 方式 双向时序
WR OBF INTR ACK STB IBF RD PA0~PA7 D0~D7 data-in data-out data-out data-in

应用举例1: 方式0与打印机接口 应用举例 :用8255A方式 与打印机接口 方式

8255A PA0~PA7 PC7 PC2

打印机 DATA0~7 ~ STROBE BUSY

打印机接口的信号

主机把数据送给引脚DATA0~DATA7 ~ 主机把数据送给引脚 同时送出数据选通信号STROBE* 同时送出数据选通信号 打印机在BUSY信号线上发出“忙”信号 信号线上发出“ 打印机在 信号线上发出 打印机处理好输入的数据时,撤消 撤消“ 打印机处理好输入的数据时 撤消“忙”信 号

打印机接口时序

DATA0~7 ~

STROBE BUSY

ACK

8255A的初始化 的初始化

mov dx,0fffeh ;控制端口地址 控制端口地址 mov al,10000001B ;方式控制字:91H 方式控制字: 方式控制字 out dx,al ;A端口方式 输出,C端口上输出、下输入 端口方式0输出 端口上输出、 端口方式 输出, 端口上输出 mov al,00001111B;端口 的复位置位控制字,使PC7=1 端口C的复位置位控制字 端口 的复位置位控制字, = out dx,al

打印子程序: 打印子程序:查询

printc

prn:

proc push ax push dx mov dx,0fffch ;读取端口 读取端口C 读取端口 in al,dx ;查询打印机状态 查询打印机状态 and al,04h ;PC2=BUSY=0? = = ? jnz prn ;PC2=1,打印机忙,则循环等待 = ,打印机忙,

打印子程序: 打印子程序:输出

mov dx,0fff8h mov al,ah out dx,al

;PC2=0,打印机不忙,则输出数据 = ,打印机不忙,
;将打印数据从端口 输出 将打印数据从端口A输出 将打印数据从端口

打印子程序: 打印子程序:打印

mov dx,0fffeh mov al,00001110B out dx,al nop nop mov al,00001111B out dx,al

;从PC7送出控制低脉冲 从 送出控制低脉冲 ;置STROBE*=0 置 =

;产生一定宽度的低电平 产生一定宽度的低电平

;置=1 置

打印子程序: 打印子程序:返回

printc

pop dx pop ax ret endp

方式1与打印机接口 用8255A方式 与打印机接口 方式
8255A PA0~PA7 PC6 PC7 PC3 INTR ACK OBF 1 LS123 单稳 14 电路 15 1000pf 2K 4 2 3 +5V 打印机 DATA0~7 ~ ACK STROBE

8255A方式 与打印机接口时序配合 方式1与打印机接口时序配合 方式

PA0~PA7 (DATA0~7) ~ OBF STROBE

ACK

8255A的初始化 的初始化 mov dx,0fffeh ;控制口地址=0fffeh 控制口地址= mov al,0a0h ; 控制字 1010 0000 out dx,al mov al,0ch ;0000 1100 使INTEA(PC6)为0,禁止中断 ( ) , out dx,al …… mov cx,counter ;打印字节数送 打印字节数送CX 打印字节数送 mov bx,offset buffer ;取字符串首地址 取字符串首地址 call prints ;调用打印子程序 调用打印子程序

打印子程序: 打印子程序:输出

prints

print1:

proc push ax push dx mov al,[bx] mov dx,0fff8h out dx,al

;保护寄存器 保护寄存器

;取一个数据 取一个数据

;从端口 输出 从端口A输出 从端口

打印子程序: 打印子程序:查询

print2:

mov dx,0fffch in al,dx test al,80h ;检测(PC7)为1否? 检测( 检测 ) 否 jz print2 ;为0,说明打印机没有响应,继续检测 为 ,说明打印机没有响应,

打印子程序: 打印子程序:返回

prints

inc bx ;为1,说明打印机已接受数据 为 , loop print1 ;准备取下一个数据输出 准备取下一个数据输出 pop dx ;打印结束,恢复寄存器 打印结束, 打印结束 pop ax ret ;返回 返回 endp

8255内部寄存器选择 内部寄存器选择

/CS
0 0 0 0

A1 A0
0 0 1 1 0 1 0 1

/RD
A口->数据总线 口 数据总线 B口->数据总线 口 数据总线 C口->数据总线 口 数据总线

/WR
数据总线->A口 口 数据总线 数据总线->B口 数据总线 口 数据总线->C口 数据总线 口 数据总线->控制寄存器 数据总线 控制寄存器

写入方式控制字: 写入方式控制字:控制字格式
方式选择控制字
1 D6 D5 D4 D3 D2 D1 D0 A组 组 方式选择
00=方式 方式0 方式 01=方式 方式1 方式 10=方式 方式2 方式

B组 组 端口C(下半部 端口 下半部) 下半部
1=输入 输入 0=输出 输出

端口B 端口 端口A 端口
1=输入 输入 0=输出 输出 1=输入 输入 0=输出 输出

端口C(上半部 端口 上半部) 上半部
1=输入 输入 0=输出 输出

方式选择
0=方式 方式0 方式 1=方式 方式1 方式

端口C的位控制字 端口 的位控制字
位控制字写入控制端口 特别便于置位复位内部中断允许触发器INTE 特别便于置位复位内部中断允许触发器

端口C按位置 复位控制字 端口 按位置/复位控制字 按位置
0 D6 D5 D4 D3 D2 D1 D0 C端口位选择 端口位选择
D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0

1=置位 置位 0=复位 复位

端口C的状态字 端口 的状态字
A组 组 B组 组

D7

D6

D5

D4

D3

D2

D1

D0

方式1输入 方式 输入
I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB

方式1输出 方式 输出
OBFA INTEA I/O I/O INTRA INTEB OBFB INTRB

方式2双向 方式 双向
OBFA INTE1 IBFA INTE2 INTRA × × ×

补充资料: 单片机 单片机P1端口 补充资料:51单片机 端口
读锁存器 输入缓冲器 Vcc

R
内部总线


D P1.X Q

锁存器
CL Q





P1.x 引脚

写锁存器

读引脚

输入缓冲器

作业: 作业 题5-1 题5-2 题5-17


相关文章:
讲义 第二章 输入输出接口与过程通道
16页 2财富值 讲义 第五章 应用程序设计... 13...(开关量)输入通道(DI) , 数字量(开关量)输出通道...可编程串行通信接口 8251A,可编程并行通信接口 8255...
第二章 过程通道与输入输出接口
输出 保持 功率 放大 行部件 工业对象 数字量输入 数字量输出 、I/O 信号...并行通信 ? ? 串行通信一、并行通信 并行通信:把一个字符的各数位用几条线...
第六章模拟量输入输出与数据采集卡
第六章模拟量输入输出与数据采集卡_信息与通信_工程...器的作用是将进制的数字量转换为相应的模拟量。...(逐位逼近)型、积分型、计数型、并行比较型、电压...
计算机控制技术课件
第1 讲 绪论 主要内容: 1.1 计算机控制系统概述 ...模拟量输入通(2)模拟量输出通道(3)数字量输入通道...、输入输出设备,以及这些 仪器设备之间的并行通信。 ...
ARM课程设计输入输出
ARM课程设计输入输出_信息与通信_工程科技_专业资料。...输入数据写入 CPU 的并行总线上,之后,并行总线上的...模拟数字量 输入输出 UART2 信号源 A/D转换 E_...
第七章 接口与并行通信
第一讲: 第一讲: 第七章 接口与并行通信 回顾:...(2) 状态信息 包括三种形式:数字量、模拟量 、...⑵为了节省地址空间,将数据输入端口和数据输出端口...
微机原理与接口技术试题简答 (2)
外设接到第 2 个负脉冲以后,立即往数 据线上给 ...把模拟量信号转换成数字量的器件为模/数转换器,...简述串、并行接口的优缺点、以及并行接口的输入,输出...
第九章基本知识要点(通信电子信息)
2、按数字量输入方式分: 按数字量输入方式分: 并行输入 DAC 串行输入 DAC 3、经典例题 一个 8 位的 DAC 转换器的最大输出电压是___V, 输入一个 8 ...
2​0​1​2​微​机​控​制​系​...
第二章 输入输出接口与过程通道 1. 了解数字量输入输出接口技术。包括接口功能...(1)并行通信——数据的各位同时传送;(2)串行通信——数据一位一位按顺序传送...
西门子300的sm323接线图_信息与通信_工程科技_专业资料
时钟同步运行 数字量输入特性 数字量输入点数 可以并行驱动的输入点数 × × ×...“1”到“0”,最大 2 输出并联切换 500 μs 500 μs 500 μs ?增加...
更多相关标签: