单片机 第9章IO接口的扩展方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、I/O端口的编址
1、在计算机中,凡需进行读写操作的设备都存在着编址的问题。 2、有两种需要编址的部件 (1)存储器:存储单元进行编址 (2)接口电路:接口电路则是对其中的端口进行编址。 3、I/O编址方式 ⑴ 独立编址方式 优点是I/O地址空间和存储器地址空间相互独立,但需要专门 设置一套I/O指令和控制信号,从而增加了系统的开销。 (2) 统一编址方式 统一编址就是把系统中的 I/O和存储器统一进行编址。在这种 编址方式中,把接口中的寄存器(端口)与存储器中的存储单元 同等对待。为此也把这种编址称之为存储器映像编址。
口的高5位PC7-PC3用来作为指定A口输入/输出的控制联络线。
8255A的C口联络控制信号线
PA7~PA0
A口的方式1选通输入方式
INTE A:由PC6的置位/复位控制
B口的方式1选通输出方式
INTE B:由PC2的置位/复位控制
四、8255A与MCS-51的接口设计
8255A 接口工作状态选择表
1、速度协调 由于CPU与外设速度上的差异,使得数据的I/O传送只能在 确认外设已为数据传送作好准备的前提下才能进行I/O操作。 2、数据锁存 单片机的工作速度快,数据在数据总线上保留的时间短, 无法满足慢速外设的数据接收。因此数据锁存就成为接口电路 的一项重要功能。 3、输入数据三态缓冲 只允许当前时刻正在进行数据传送的数据源使用数据总线, 其它数据源都必须与数据总线处于隔离状态。为此要求接口电 路能为数据输入提供三态缓冲功能。 4、数据转换 需要使用接口电路进行数据信号的转换。其中包括: D/A 转换、A/D转换、串 / 并转换和并/ 串转换等。
PA
二、I/O数据传送方式
1、无条件传送方式 在进行I/O操作时,不需要测试外部设备的状态,可以根 据需要随时进行数据传送操作。一般用于具有常驻的或变化 缓慢的数据信号的外部设备如机械开关、指示灯、发光二极 管、数码管等,以及工作速度非常快,足以和 CPU 同步工作 的外部设备如外部数据存储器,数/模转换器。 2、程序查询方式 为了实现查询方式的数据输入输出传送,需要由接口电 路提供外设状态,并以软件方法进行状态测试。 3 、程序中断方式 采用中断方式进行数据传送时,当外设为数据传送作好 准备之后,就向CPU发出中断请求。CPU响应中断后,再继续 执行被中断的原程序。
B组 0 :输 出 1 :输 入 0 :输 出 1 :输 入
C口置位/复位控制字
D7 × × × D3 D2 D1 D0
0 :模 式 0 1 :模 式 1
0 :复 位 1 :置 位
位 选 择 B口 0 :输 出 1 :输 入 0 :模 式 0 1 :模 式 1 A口 C口 高 4位 D A7 组 × × × D3 D2 D1 D0 0 00 0 01 0 :复 位 1 :置 位 0 :输 出 1 :输 入 A组 C口 高 4位 0 :输 出 1 :输 入 0 :输 出 1 :输 入 (a ) 0 0 :模 式 0 方 式 选 择 0 1 :模 式 1 1 * :模 式 2 1 :方 式 标 志 (a ) 0 0 :模 式 0 方 式 选 择 0 1 :模 式 1 1 * :模 式 2 1 :方 式 标 志 位 选 择 0 00 0 01 0 10 0 11 A口 1 00 1 01 PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 0 10 0 11 1 00 1 01 1 10 1 11 PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7
字来决定的。
一、8255A的内部结构和引脚
I/ O A组 控制 A组 端口A (8 ) PA 7 ~ PA 0
Vcc GND RESET
PA0~PA7
A组 数据 端口C 总线 D7~ D0 缓冲 上 半 部 (4 )
I/ O
CS RD WR PB0~PB7 8255
P C 7~ P C 4
B组 端口C 下 半 部 (4 )
输入: MOV DPTR, #0FEFFH
MOVX A,@DPTR
9.3 利用8255A芯片的扩展I/O口
有3个8位并行I/O口, PA口、 PB口和PC口。 三种工作方式: ① 基本输入/输出; ② 选通输入/输出; ③ PA口为双向总线。
E
8255的三个端口具体工作在什么方
式下,是通过CPU对控制口的写入控制
D7 D6 D5 D4 D3 D2 D1 D0
B组 C口 低 4位 0 :输 出 1 :输 入 0 :输 出 1 :输 入 0 :模 式 0 1 :模 式 1 D7 × × ×
MOV
DPTR,#7F03H
D0
B口
MOV
D3
D2
D1
A,#83H
0 :复 位 1 :置 位 位 选 择
方 式 选 择
MOVX @DPTR, A
解:根据题意,设置8255A的A口方式0输出,B口方式0输入,则8255A的方
式字为 82H ( 10000010B), C 口置位 /复位字为 0FH ( 00001111B ), 8255A 的方式字及置位 /复位控制字地址为 7FFFH。初始化过程及输入 /输出的程序 如下:
ORG 1000H DSP8255: MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #82H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV A, #0FH MOVX @DPTR, A ; C口置位/复位字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口 MOVX A, @DPTR MOV 60H, A ; 将B口开关状态送入60H单元 MOV DPTR, #7FFCH ; 数据指针指向8255A 的A口 MOV A, 70H MOVX @DPTR, A ; 70H单元内容A口指示灯显示 RET END
0 00 0 01 0 10 0 11 1 00 1 01 1 10 1 11 PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7
A组 C口 高 4位 0 :输 出 1 :输 入 0 :输 出 1 :输 入 0 0 :模 式 0 方 式 选 择 0 1 :模 式 1 1 * :模 式 2 1 :方 式 标 志 (a ) (b )
0 :输 出 1 :输 入
方 式 选 择
0 :位 操 作
1 1 0 (b )P C 6 PC 7 1 11
思考:如何把这两个控制字写入8255A?
0 :位 操 作
8255A如何区分这两个控制字?
(b )
例: 设8255控制字寄存器的地址为7F03H,试编程使A口为方 式0输出,B口为方式0输入,PC4~PC7为输出,PC0~PC3为 输入。
PA, PB, PC及控制寄存器的地址分别是: PA:7FFCH PB:7FFDH PC:7FFEH 控制寄存器:7FFFH
例:如图上页所示,假设8255A芯片的PA接一组8只状态指示灯,PB接一组
8个开关,现须将开关闭合的状态输入到片内60H单元保存,将70H单元的内 容送状态指示灯显示,并置位PC7引脚,编写相应程序。
四、MCS-51单片机扩展并行I/O口的注意事项
① 访问扩展I/O口的方法与访问数据存储器完全相同,使用相 同的指令,所有扩展的I/O口与片外数据存储器统一编址。 ②利用串行口扩展法扩展的外部并行I/O口不占用外部RAM地 址空间。 ③利用并行总线扩展的方法扩展外部并行 I/O口时,必须注意 P0, P2, P3口的负载问题,若负载能力不够,必须进行总线驱动 能力扩展。 ④扩展外部并行 I/O口对外设的硬件具有依赖性(驱动功率、 电平匹配、干扰抑制、隔离等)。
MOV DPTR,#7F03H MOV A,#03H MOVX @DPTR, A MOV A,#06H MOVX @DPTR, A
2
(b )
三、8255A的工作方式(3个) 方式0:基本输入/输出方式。 不需要任何选通信号,适合于无条件传输数据的设备,数 据输出有锁存功能,数据输入有缓冲(无锁存)功能。
例:分析下列接法中8255A的地址
W R RD P 0.7 P 0.6 P 0.5 P 0.4 P 0.3 P 0.2 P 0.1 P 0.0 8 05 1 D D D D D D D D 7 6 5 4 3 3 73 2 1 0 Q Q Q Q Q Q Q Q 7 6 5 4 3 2 1 0 W R RD R E SE T CS
TTL电路、CMOS电路锁存器或三态门电路也可构成各种类型的简单输入/输出口。
Q2 Q3 Q4 Q5 Q6 Q7 CLR
Q0 Q1
≥ 1
WR P 2.0 RD
Q3 Q4 Q5 Q6 Q7
7 4 L S 2 4 4
Q2
7 4 L S 2 7 3
≥ 1
输出: MOV A,#70H MOV DPTR,#0FEFFH MOVX @DPTR,A
A口
0 :位 操 作
例:设8255控制字寄存器地址为7F03H,将PC1置1,PC3清0。
出
入 D7 × × × D3 D2 D1 D0
出
入 0 1 0 :复 位 1 :置 位
位 选 择 0 00 0 01 0 10 0 11 1 00 1 01 1 10 0 1 0 :位 操 作 1 11 PC 0 PC 1 PC 2 PC 3 PC 4 PC 5 PC 6 PC 7
接口与端口的概念
接口:特指计算机与外设之间在数据传送方面的联系。 其功能主要是通过电路实现的。因此称之为接口电路。 端口:一个接口电路中可能包括有多个寄存器 例如:保存数据的数据口 保存状态的状态口 保存命令的命令口 因此一个接口电路就对应着多个端口地址。 注意: 端口是供用户使用的,用户在编写有关数据输入/输出程 序时,要用到接口电路中的各个端口。因此要知道它们的设置和编 址情况。
9.2利用74LSTTL电路扩展并行I/O口
P 0.0 P 0.1 P 0.2 P 0.3 P 0.4 P 0.5 P 0.6 P 0.7 D0 D1 D2 D3 D4 D5 D6 D7 CP 8 03 1 D0 D1 D2 D3 D4 D5 D6 D7 G1 G2 S0 S1 S2 S3 S4 S5 S6 S7 Q0 Q1 L E D0 L E D1 L E D2 L E D3 L E D4 L E D5 L E D6 L E D7 + 5 V
第 9章
扩展I/O接口
9.1 概述 9.2 普通并行I/O口扩展 9.3 利用8255A芯片的扩展I/O口 9.4 利用8155芯片的扩展I/O口 9.5 其他总线的扩展 重点内容:
1、I/O芯片与单片机的连接
2、I/O芯片的地址空间分配 3、I/O芯片工作方式的设置以及读写方法
9.1 概述
并行I/O口扩展的目的:为外围设备提供一个输入输出通道。
I/ O
P C 3~ P C 0
A0 A1 PC0~PC7 D0~D7
RD 读 /写 WR A0 A1 R E SE T 控制 逻辑
B组 B组 端口B 控制 (8 )
I/ O
P B 7~ P B 0
CS
二、8255A的控制字(2个)
D7 D6 D5 D4 D3 D2 D1 D0
方式选择控制字
C口 低 4位 D7 D6 D5 D4 D3 D2 D1 D0 B口 B组O接口的功能 二、I/O接口的数据传送方式 三、I/O接口的编址 四、I/O接口扩展方法:并口扩展常用三种方法 (1)并行总线扩展的方法 (2)串行口扩展方法
(3)I/O端口模拟串行方法
主要内容: 1、利用TTL、CMOS集成电路来扩展 2、利用可编程并行接口芯片来扩展
一、I/O接口的功能
方式 1: 选通输入/输出方式。 共有3口, 被分为两组。A组包括A口和PC7-PC4, A口可由 编程设定为输入或输出, PC7-PC4作为输入/输出操作的选通信 号和应答信号。B组包括B口和PC3-PC0, 这时C口作为 8255A和 外设或CPU之间传送某些状态信息及中断请求信号。 方式 2: 双向传送方式。 只有A口有方式 2, 此时, A口为8位双向传送数据口, C