并行接口8255芯片

并行接口:指数据的各位同时进行传送的数据通信接口。

数据传输方式

无条件传输

简单直接,无需握手

查询方式

CPU主动查询外设状态

中断方式

外设主动请求CPU服务

DMA方式

直接存储器访问,无需CPU干预

8255A 是 Intel 公司为 8080/8085/8088 微型机系统设计的通用可编程I/O接口芯片:

可编程:用程序设置工作方式,无需附加外部电路 通用性强,使用灵活 单电源 +5V 供电

 

8255A 提供 3个8位端口(共24条I/O线):

端口

输入

输出

PA

锁存

缓冲/锁存

PB

缓冲

缓冲/锁存

PC

缓冲

缓冲/锁存

注:端口A输入带锁存,这是与B、C口的区别。 锁存 = 有记忆,保持住最后一次给的值; 不锁存 = 没有记忆,输出随输入实时变化,输入消失了输出也就消失了。

数据线

输入操作(读)

0

0

0

1

0

端口A→数据总线

0

1

0

1

0

端口B→数据总线

1

0

0

1

0

端口C→数据总线

输出操作(写)

0

0

1

0

0

数据总线→端口A

0

1

1

0

0

数据总线→端口B

1

0

1

0

0

数据总线→端口C

1

1

1

0

0

数据总线→控制字寄存器

断开功能

×

×

×

×

1

数据总线→三态

1

1

0

1

0

非法状态

×

×

1

1

0

数据总线→三态

控制字

8255A 的工作方式由 CPU通过I/O指令向控制字寄存器写入控制字 来设置。

 

方式选择控制字(D7=1)

1

A组

B组

D7 = 1:方式选择控制字标志位

D6D5:A组工作方式(00=方式0,01=方式1,1X=方式2)

D4:PA口方向(1=输入,0=输出)

D3:PC高4位方向(1=输入,0=输出)

D2:B组工作方式(0=方式0,1=方式1)

D1:PB口方向(1=输入,0=输出)

D0:PC低4位方向(1=输入,0=输出)

如:A组方式0,B组方式1,PA输入,PB输出,PC输入

对应控制字 = 1 00 1 1 1 0 1 = 99H (10011001B)

C端口按位置位/复位控制字(D7=0)

0

无效位

指定C端引脚

电平

用于单独控制PC口某一位的输出电平:

D7 = 0:置位/复位控制字标志

D6~D4:无效位

D3~D1:选择PC口的位号(000=PC0,...,111=PC7)

D0(D3~D1选的PC口置值):1=置位(高电平),0=复位(低电平)

一次只能指定一个引脚。

工作方式

方式0

基本输入输出

简单无条件传输

方式1

选通输入输出

单向可选择,带联络信号

方式2

双向选通输入输出

双向传输,仅A口可用

0:基本输入输出

 

任一个端口(8位端口(A、B)和两个4位端口(C))可独立设置为输入或输出

输出是锁存的:锁存输出数据,最大并行输出24位

输入是不锁存的:仅缓冲外设输入数据

PC口上半部分与下半部分可定义不同方向

应用场景:

无条件读写:CPU直接与8255交换数据 查询方式:利用PC某些位作为PA、PB口的控制和状态信息

例1:初始化与数据传送

设定:A组、B组方式0,PA口和PC口输入,PB口输出;8255地址 50H-53H

控制字:1 00 1 1 0 0 1 = 99H

初始化程序:

MOV AL, 99H OUT 53H, AL ; 写入控制字寄存器 将PA数据输出到PB: 
IN AL, 50H ; 读PA口 
OUT 51H, AL ; 写到PB口 将PC数据存入1000H: 
MOV BX, 1000H IN AL, 52H ; 读PC口 MOV [BX], AL

1:选通输入输出

端口A或B作为数据的的输入/输出,端口C的某些位作为专用联络信号线 需要设置专用的联络信号线/应答信号线 数据传送可采用查询方式或中断方式 数据的输入输出都有锁存功能 每个端口包括:8位数据口 + 3条挂钩线,提供查询/中断逻辑

若A、B口都工作于方式1,PC口大部分引脚分配为固定联络信号;若只有一个端口工作于方式1,剩余13位(24-11)可工作在方式0

 

方式1输入(A组)联络信号:

STB (选通输入)

PC4

外设发出的数据选通信号,低电平有效

IBF (输入缓冲器满)

PC5

8255发出的状态信号,高电平有效

INTR (中断请求)

PC3

向CPU发出的中断请求,高电平有效

 

方式1输出(A组)联络信号:

OBF (输出缓冲器满)

PC7

8255发出的信号,低电平有效

ACK (响应)

PC6

外设发出的应答信号,低电平有效

INTR (中断请求)

PC3

向CPU发出的中断请求,高电平有效

方式1输入(B组)联络信号:

信号

引脚

功能

STB

PC2

选通输入

IBF

PC1

输入缓冲器满

INTR

PC0

中断请求

 

方式1输出(B组)联络信号:

信号

引脚

功能

OBF

PC1

输出缓冲器满

ACK

PC2

响应

INTR

PC0

中断请求

2:双向选通输入输出(Bidirectional,仅A可)

 

一个 8位双向总线端口(A) + 一个 5位控制端口(C,用于用作A的控制和状态信息)

输入和输出都是锁存的

可用程序查询或中断方式与CPU联系

 

联络信号:

信号

引脚

方向

功能

STB

PC4

输入

外设选通输入

IBF

PC5

输出

输入缓冲器满

OBF

PC7

输出

输出缓冲器满

ACK

PC6

输入

外设响应

INTR

PC3

输出

中断请求

中断允许位 INTE 的操作

端口

方式

INTE控制位

置位/复位控制字

PA

方式1或2

PC4(输入), PC6(输出)

0XXX1001B (置位PC4) 0XXX1101B (置位PC6)

PB

方式1

PC2(输入/输出)

0XXX0101B (置位PC2)

INTE 是内部中断允许触发器,通过C口按位置位/复位命令设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值