51单片机8255A扩展IO口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
片选地址
A1 0 0 1 1
A0 0 1 0 1
选
择
0 0 0 0
PA口 PB口 PC口 控制口
CS 、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址。
16位总线访问地址 = 片选地址 + 片内地址
CS 、A1、A0与地址总线的连接方案不同,端口地址不同。
例如
8255A端口地址的确定
PB口的各服务功能含义与PA口相同。
8255A PC 口各引脚服务功能定义表 端口 工作方式
方式 1 输入 PA 方式 1 输出 方式 2 双向 PB 方式 1 输入 方式 1 输出
PC7
OBFA OBFA
PC6
ACK A ACK A
PC5
PC4
PC3 INTRA
PC2
PC1
PC0
IBFA STB A INTRA IBFA STB A INTRA
PA口、PB口作输入/输出口,PC口自动提供固定关系的选通信号和应答信号
三个口分成两组:A组、B组
A口借用C口的一些信号线用作控制和状态线,形成A组;B口借用C口 的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输 入输出均带有锁存。 A组: B组:
PA口为数据口 PC口高四位作联络信号
特征位为0
C口 低4位 B口
0:输出 1:输入 0:输出 1:输入
方式 0:方式0 选择 1:方式1 A组 C口 0:输出 高4位 1:输入 A口 0:输出 1:输入
不用置000
00:方式0 方式 01:方式1 选择 1X:方式2 特征位,为1
① 工作方式控制字
作用是用来设置3个并行口作输入口还是作输出口、设置8255A的工作方式
MOV DPTR,#0FF7FH MOV A,#91H MOVX @DPTR, A
方式 0:方式0 选择 1:方式1 ;控制口地址
;工作方式控制字 A组 ;写控制字到控制口 C口 0:输出
高4位 1:输入 0:输出
不用置000
4. 8255A的工作方式
8255A有3种工作方式:方式0、方式1、方式2 ① 方式0 —— 基本输入/输出方式
C口 低4位 B口
1
含义
1/0
1/0
1/0
1/0
1/0
1/0
1/0
0:输出 1:输入 0:输出 1:输入
方式 0、1、2
输入/输出 输入/输出 方式 0、1 输入/输出 输入/输出
方式 0:方式0 选择 1:方式1 A组
8255A有三种工作方式: 方式0 —— 基本输入/输出方式 方式1 —— 选通输入/输出方式 方式2 —— 双向输入/输出方式
2个8位I/O口(PA、PB),2个4位I/O口(PC口高4位、低4位)
任意一个口可作输入口或输出口
两种数据传送方式:
无条件传送方式
不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器
查询传送方式
需要联络信号,这时,PA、PB作数据口,人为定义PC口作控制信号
提供外设状态、外设选通信号,可设置为4位作输入、4位作输出 ② 方式1 —— 选通输入/输出方式
7.5 可编程并行I/O口的扩展
学习要点:
理解并行通信的概念及特点,掌握 8255A 的功能、工作方式、编程 方法及其应用。
8255A和8155是两种常用的可编程并行I/O 口的扩展芯 片,优点是: 一个芯片可扩展多个并行I/O口 可用软件改变接口的功能 可直接与单片机连接,进行并行数据传送 8255A是Intel系列的可编程并行接口芯片,扩展一片 可获得3个8位的并行I/O口,是一种单片机与外设之间的接 口电路。
WR RD RESET CS
PA
74LS373
8255A
A1 A0 PB
8031
ALE
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
CS 、A1、A0接地址总线
P0.7、P0.1、P0.0经锁存器74LS373接 CS 、A1、A0 未接的地址线设为1,则8255A的PA、PB、PC、控制口的地址: FF7CH、FF7DH、FF7EH和FF7FH 如将 CS 接P2.7,则8255A的四个端口地址为: 7FFCH,7FFDH、7FFEH、7FFFH
CS 接A7,A1、A0接CPU的A1、A0,则端口地址:
片选地址 片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
单片机 8255A 外设
1. 8255A的结构及引脚功能
8255A为40引脚的双列直插式(DIP)封装
(1)引脚功能 ① D0~D7为数据线,与单片机的数据 总线连接,传数据、命令等。 ② PA0~PA7(PA口)、PB0~PB7(PB 口)、PC0~PC7(PC口)为3个8位并行 I/O口,用于8255A与外设之间传数据。 ③ 读写控制逻辑线
STB B
IBFB
OBFB
INTRB INTRB
ACK B
4. 8255A的应用
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
8255A与单片机的连接
WR RD RESET CS PA
D7 D6 D5 D4 D3 D2 D1 D0
8031
ALE
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE
8255 PC为控制口时各引脚功能
——输出缓冲器满信号,CPU已将数据送出,通知外设取。 OBFA
——外设响应信号,表示外设已将数取走。 ACK A
IBFA——输入缓冲器满信号,即外设所送数据已装入锁存器。 ——选通输入脉冲信号,表示外设待输入数据已经准备好。 STBA
INTRA——中断请求信号,为“1”时向CPU发出中断请求。
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH
3. 8255A的控制字
8255A有两个控制字:
工作方式控制字
这两个控制字都写到8255A的控制口,用 同一个端口地址采用特征位识别。 D7=1,表示是工作方式控制字 D7=0,表示是PC口置/复位控制字
PB口为数据口 PC口低四位作联络信号
③ 方式2——双向输入/输出方式
只有PA口能够设定为方式2,PA口为8位双向数据口,能读能写 PC口的PC3~PC7共5位作PA口数据输入/输出的联络信号 PB口不能工作在方式2,仍可工作在方式0或方式1
PA口有方式0、1、2 PB口有方式0、1,没有方式2 PC口只有方式0
D7 D6 D5 D4 D3 D2 D1 D0
PC口置/复位控制字
工作方式控制字
B组
D7 D6 D5 D4 D3 D2 D1 D0
PC置/复位控制字
0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
D7 D6 D5 D4 D3 D2 D1 D0
例 设8255A的控制口地址为FF7FH B组 ,试编程 口 口为工作方 0:输出 设置:PA口为工作方式0输入,C PB 低4位 1:输入 式0输出,PC4~PC7为输出,PC0~0: PC3 为输入。 输出 B口 1:输入 则工作方式控制字为10010001B,其初始化程序:
+5V ... ... L4 L3 L0 ... K7 . K0 . K3 ... . K4
74LS373
8255A
A1 A0 PB
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
数据线D0~D7接P0口 RD 、 WR 接单片机的 RD 、WR 复位线RESET接到复位电路,与CPU一起复位
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE
I/O PC4-PC7
B组 端口C
下半部(4)
I/O PC0-PC3
PA口 PB口 PC口低4位
PC口高四位
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 15 16 17 13 12 11 10
RD WR A0 A1 RESET
读写 控制 逻辑
B组 控制
B组 端口B (8) I/O PB0-PB7
8255A
PA口: × PB口: × PC口: × 控制口:× × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
CS
0 0 0 0 × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0 0 1 0 1
CS ——片选信号,接单片机的地址总线
RD ——读信号,接单片机的读信号
WR ——写信号,接单片机的写信号
A1、A0 ——端口选择信号,接单片机 的地址总线,与片选/CS一起,确定8255A访 问的端口地址。
RESET——复位信号,接单片机的复位
(2)内部结构
① 并行I/O端口 有3个8位并行I/O口,PA、PB、 PC它们可以被设置成输入或输出 5 18 D0-D7 PB0 RD 36 19 ② A、B组控制电路 8255A PB1 WR 9 20 A0 PB2 8 21 A1 PB3 A、B两组控制电路将三个端口 35 22 RESET PB4 6 23 PB5 CS 24 PB6 分成A、B两组。 25 PB7 A组控制
0
含义
×
×
×
1/0
1/0
1/0
1/0
置位 / 复位
PC置/复位控制字
D7 D6 D5 D4 D3 D2 D1 D0 0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
特征位为0
一般取简码 000
选择 PC7~PC0 位
③ 读/写控制逻辑 接收CPU传来的控制信号,以控制8255A的操作
CS
WR
CS
A1、A0 、RESET
④ 数据总线缓冲器 双向三态8位缓冲器,与单片机的数据总线直接相连
2. 8255A端口的寻址
一片8255A占4个端口地址:PA口、PB口、PC口、控 制口,由/CS、A1、A0决定。
片内地址
CS
PA口有3种工作方式,PB口有2种工作方式,PC口只有一种工作方式0 在方式1或方式2,PC口自动作为PA口、PB口的控制信号
位为0,为输出口;为1,为输入口
D7 D6 D5 D4 D3 D2 D1 D0
工作方式控制字
B组
工作方式控制字 标志位 A 组方式设置 A口 C上 口 B 组方式 B口 C下 口
C口 0:输出 高4位 1:输入 A口 0:输出 1:输入
00:方式0 方式 01:方式1 选择 1X:方式2 特征位,为1
② PC口置/复位控制字
其作用是用来设置PC口某位输出高电平或低电平。 实现某些位控制,如启/停外设、开关的通/断、继电器的吸合/释放等
C 口置/复位控制字 标志位 不使用位 C 口位地址编码 位状态
B组控制
34 33 32 31 30 29 28 27 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 4 3 2 1 40 39 38 37
A组 控制
A组 端口A (8) A组 端口C
上半部(4)
Байду номын сангаас
I/O PA0-PA7
数据 总线 缓冲
8255A CS
PA口: 0 × PB口: 0 × PC口: 0 × 控制口:0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0
没接的地址线设为1,则4个端口地址为: PA=FF7CH PB=FF7DH PC=FF7EH 控制口=FF7FH
例如
片选地址
8255A端口地址的确定
CS 接A15,A1、A0接CPU的A1、A0,则端口地址:
片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
A1 0 0 1 1
A0 0 1 0 1
选
择
0 0 0 0
PA口 PB口 PC口 控制口
CS 、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址。
16位总线访问地址 = 片选地址 + 片内地址
CS 、A1、A0与地址总线的连接方案不同,端口地址不同。
例如
8255A端口地址的确定
PB口的各服务功能含义与PA口相同。
8255A PC 口各引脚服务功能定义表 端口 工作方式
方式 1 输入 PA 方式 1 输出 方式 2 双向 PB 方式 1 输入 方式 1 输出
PC7
OBFA OBFA
PC6
ACK A ACK A
PC5
PC4
PC3 INTRA
PC2
PC1
PC0
IBFA STB A INTRA IBFA STB A INTRA
PA口、PB口作输入/输出口,PC口自动提供固定关系的选通信号和应答信号
三个口分成两组:A组、B组
A口借用C口的一些信号线用作控制和状态线,形成A组;B口借用C口 的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输 入输出均带有锁存。 A组: B组:
PA口为数据口 PC口高四位作联络信号
特征位为0
C口 低4位 B口
0:输出 1:输入 0:输出 1:输入
方式 0:方式0 选择 1:方式1 A组 C口 0:输出 高4位 1:输入 A口 0:输出 1:输入
不用置000
00:方式0 方式 01:方式1 选择 1X:方式2 特征位,为1
① 工作方式控制字
作用是用来设置3个并行口作输入口还是作输出口、设置8255A的工作方式
MOV DPTR,#0FF7FH MOV A,#91H MOVX @DPTR, A
方式 0:方式0 选择 1:方式1 ;控制口地址
;工作方式控制字 A组 ;写控制字到控制口 C口 0:输出
高4位 1:输入 0:输出
不用置000
4. 8255A的工作方式
8255A有3种工作方式:方式0、方式1、方式2 ① 方式0 —— 基本输入/输出方式
C口 低4位 B口
1
含义
1/0
1/0
1/0
1/0
1/0
1/0
1/0
0:输出 1:输入 0:输出 1:输入
方式 0、1、2
输入/输出 输入/输出 方式 0、1 输入/输出 输入/输出
方式 0:方式0 选择 1:方式1 A组
8255A有三种工作方式: 方式0 —— 基本输入/输出方式 方式1 —— 选通输入/输出方式 方式2 —— 双向输入/输出方式
2个8位I/O口(PA、PB),2个4位I/O口(PC口高4位、低4位)
任意一个口可作输入口或输出口
两种数据传送方式:
无条件传送方式
不需任何应答联络信号。认为外设随时是准备好的,如键盘,显示器
查询传送方式
需要联络信号,这时,PA、PB作数据口,人为定义PC口作控制信号
提供外设状态、外设选通信号,可设置为4位作输入、4位作输出 ② 方式1 —— 选通输入/输出方式
7.5 可编程并行I/O口的扩展
学习要点:
理解并行通信的概念及特点,掌握 8255A 的功能、工作方式、编程 方法及其应用。
8255A和8155是两种常用的可编程并行I/O 口的扩展芯 片,优点是: 一个芯片可扩展多个并行I/O口 可用软件改变接口的功能 可直接与单片机连接,进行并行数据传送 8255A是Intel系列的可编程并行接口芯片,扩展一片 可获得3个8位的并行I/O口,是一种单片机与外设之间的接 口电路。
WR RD RESET CS
PA
74LS373
8255A
A1 A0 PB
8031
ALE
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
CS 、A1、A0接地址总线
P0.7、P0.1、P0.0经锁存器74LS373接 CS 、A1、A0 未接的地址线设为1,则8255A的PA、PB、PC、控制口的地址: FF7CH、FF7DH、FF7EH和FF7FH 如将 CS 接P2.7,则8255A的四个端口地址为: 7FFCH,7FFDH、7FFEH、7FFFH
CS 接A7,A1、A0接CPU的A1、A0,则端口地址:
片选地址 片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
单片机 8255A 外设
1. 8255A的结构及引脚功能
8255A为40引脚的双列直插式(DIP)封装
(1)引脚功能 ① D0~D7为数据线,与单片机的数据 总线连接,传数据、命令等。 ② PA0~PA7(PA口)、PB0~PB7(PB 口)、PC0~PC7(PC口)为3个8位并行 I/O口,用于8255A与外设之间传数据。 ③ 读写控制逻辑线
STB B
IBFB
OBFB
INTRB INTRB
ACK B
4. 8255A的应用
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
8255A与单片机的连接
WR RD RESET CS PA
D7 D6 D5 D4 D3 D2 D1 D0
8031
ALE
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE
8255 PC为控制口时各引脚功能
——输出缓冲器满信号,CPU已将数据送出,通知外设取。 OBFA
——外设响应信号,表示外设已将数取走。 ACK A
IBFA——输入缓冲器满信号,即外设所送数据已装入锁存器。 ——选通输入脉冲信号,表示外设待输入数据已经准备好。 STBA
INTRA——中断请求信号,为“1”时向CPU发出中断请求。
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH
3. 8255A的控制字
8255A有两个控制字:
工作方式控制字
这两个控制字都写到8255A的控制口,用 同一个端口地址采用特征位识别。 D7=1,表示是工作方式控制字 D7=0,表示是PC口置/复位控制字
PB口为数据口 PC口低四位作联络信号
③ 方式2——双向输入/输出方式
只有PA口能够设定为方式2,PA口为8位双向数据口,能读能写 PC口的PC3~PC7共5位作PA口数据输入/输出的联络信号 PB口不能工作在方式2,仍可工作在方式0或方式1
PA口有方式0、1、2 PB口有方式0、1,没有方式2 PC口只有方式0
D7 D6 D5 D4 D3 D2 D1 D0
PC口置/复位控制字
工作方式控制字
B组
D7 D6 D5 D4 D3 D2 D1 D0
PC置/复位控制字
0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
D7 D6 D5 D4 D3 D2 D1 D0
例 设8255A的控制口地址为FF7FH B组 ,试编程 口 口为工作方 0:输出 设置:PA口为工作方式0输入,C PB 低4位 1:输入 式0输出,PC4~PC7为输出,PC0~0: PC3 为输入。 输出 B口 1:输入 则工作方式控制字为10010001B,其初始化程序:
+5V ... ... L4 L3 L0 ... K7 . K0 . K3 ... . K4
74LS373
8255A
A1 A0 PB
EA
D7 D6 D5 D4 D3 D2 D1 D0
PC
数据线D0~D7接P0口 RD 、 WR 接单片机的 RD 、WR 复位线RESET接到复位电路,与CPU一起复位
8255A与单片机的连接
WR RD P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 D7 D6 D5 D4 D3 D2 D1 D0 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 G OE
I/O PC4-PC7
B组 端口C
下半部(4)
I/O PC0-PC3
PA口 PB口 PC口低4位
PC口高四位
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 15 16 17 13 12 11 10
RD WR A0 A1 RESET
读写 控制 逻辑
B组 控制
B组 端口B (8) I/O PB0-PB7
8255A
PA口: × PB口: × PC口: × 控制口:× × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
CS
0 0 0 0 × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0 0 1 0 1
CS ——片选信号,接单片机的地址总线
RD ——读信号,接单片机的读信号
WR ——写信号,接单片机的写信号
A1、A0 ——端口选择信号,接单片机 的地址总线,与片选/CS一起,确定8255A访 问的端口地址。
RESET——复位信号,接单片机的复位
(2)内部结构
① 并行I/O端口 有3个8位并行I/O口,PA、PB、 PC它们可以被设置成输入或输出 5 18 D0-D7 PB0 RD 36 19 ② A、B组控制电路 8255A PB1 WR 9 20 A0 PB2 8 21 A1 PB3 A、B两组控制电路将三个端口 35 22 RESET PB4 6 23 PB5 CS 24 PB6 分成A、B两组。 25 PB7 A组控制
0
含义
×
×
×
1/0
1/0
1/0
1/0
置位 / 复位
PC置/复位控制字
D7 D6 D5 D4 D3 D2 D1 D0 0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
特征位为0
一般取简码 000
选择 PC7~PC0 位
③ 读/写控制逻辑 接收CPU传来的控制信号,以控制8255A的操作
CS
WR
CS
A1、A0 、RESET
④ 数据总线缓冲器 双向三态8位缓冲器,与单片机的数据总线直接相连
2. 8255A端口的寻址
一片8255A占4个端口地址:PA口、PB口、PC口、控 制口,由/CS、A1、A0决定。
片内地址
CS
PA口有3种工作方式,PB口有2种工作方式,PC口只有一种工作方式0 在方式1或方式2,PC口自动作为PA口、PB口的控制信号
位为0,为输出口;为1,为输入口
D7 D6 D5 D4 D3 D2 D1 D0
工作方式控制字
B组
工作方式控制字 标志位 A 组方式设置 A口 C上 口 B 组方式 B口 C下 口
C口 0:输出 高4位 1:输入 A口 0:输出 1:输入
00:方式0 方式 01:方式1 选择 1X:方式2 特征位,为1
② PC口置/复位控制字
其作用是用来设置PC口某位输出高电平或低电平。 实现某些位控制,如启/停外设、开关的通/断、继电器的吸合/释放等
C 口置/复位控制字 标志位 不使用位 C 口位地址编码 位状态
B组控制
34 33 32 31 30 29 28 27 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 4 3 2 1 40 39 38 37
A组 控制
A组 端口A (8) A组 端口C
上半部(4)
Байду номын сангаас
I/O PA0-PA7
数据 总线 缓冲
8255A CS
PA口: 0 × PB口: 0 × PC口: 0 × 控制口:0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0
没接的地址线设为1,则4个端口地址为: PA=FF7CH PB=FF7DH PC=FF7EH 控制口=FF7FH
例如
片选地址
8255A端口地址的确定
CS 接A15,A1、A0接CPU的A1、A0,则端口地址:
片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0