4.3 输入 / 输出接口扩展
Post on 11-Jan-2016
85 Views
Preview:
DESCRIPTION
TRANSCRIPT
Copyright http://www.myvtc.edu.cn 2006
MCS-51 系列单片机内部有 4 个双向的 8 位并行 I/O 端口: P0 、 P1 、P2 和 P3 口。
在实际的应用系统中, P0 、 P2 、 P3 口往往用来代替系统总线使用,数据口仅剩下 P1 口了。另外,单片机内部 I/O 口的功能也过于简单,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的 I/O 操作的要求。
鉴于单片机的 I/O 资源比较有限,在实际应用中不得不使用扩展的方法,以增加 I/O 口的数量,强化 I/O 的功能。
常用的 I/O 扩展有以下两种形式:简单 I/O 接口芯片的扩展可编程 I/O 接口电路的扩展
4.3 输入 / 输出接口扩展问题的提出
Copyright http://www.myvtc.edu.cn 2006
什么样的芯片是简单芯片?复杂芯片又是什么样的?
简单芯片:是指那些虽具有数据缓冲或锁存功能,但自身仅有数据的输入或输出及选通端或时钟端,却没有地址线和读写控制线,如采用 TTL 或 CMOS 数字集成电路构成的三态门、寄存器、三态缓冲寄存器等中小规模的集成电路芯片。
可编程逻辑器件: 那些不仅具有数据的输入或输出、具有选通端或时钟端,
而且还具有地址线和读写控制线的芯片,他们一般具有片内的状态字寄存器、命令字寄存器,允许通过软件编程来改变它的接口功能或状态。如: intel 8255 、 8155 、 8279 etc.
Copyright http://www.myvtc.edu.cn 2006
简单的 I/O 口扩展通常是采用 TTL 或 CMOS 电路锁存器、三态门等作为扩展芯片( 74LS244 、 74LS245 、 74LS273 、 74LS373 、 74LS
377 等),通过 P0 口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。
简单的 I/O 口扩展主要包括:
缓冲器扩展输入口(三态门: 74LS244 、 74LS245 等)
输入接口的主要功能:解决数据输入的缓冲问题,如 74ls244( 具有三态缓冲功能,这样才可以和数据总线相连 ) 。
锁存器扩展输出口(锁存器: 74LS273 、 74LS373 、 74LS377 等)
输出接口的主要功能:进行数据的保持(数据锁存)。
4.3.1 简单 I/O 接口芯片的扩展
Copyright http://www.myvtc.edu.cn 2006
利用 74LS244 进行输入口的扩展EA/VP
31
X119
X218
RESET9
INT012
INT113
T014
T115
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P0.039
P0.138
P0.237
P0.336
P0.435
P0.534
P0.633
P0.732
P2.021
P2.122
P2.223
P2.324
P2.425
P2.526
P2.627
P2.728
RD17
WR16
PSEN29
ALE/P30
TXD11
RXD10
MCS-51
1G1
A12
1Y118
A24
1Y216
A36
1Y314
A48
1Y412
2G19
B111
2Y19
B213
2Y27
B315
2Y35
B417
2Y43
74LS244
1
23
A
74LS32
1G1
A12
1Y118
A24
1Y216
A36
1Y314
A48
1Y412
2G19
B111
2Y19
B213
2Y27
B315
2Y35
B417
2Y43
74LS244
74LS244 引脚封装图
MCS-51 与 74LS244 的接口电路图
缓冲器扩展输入口
Copyright http://www.myvtc.edu.cn 2006
74LS244 是一种 8 位的三态缓冲器。当它的控制端 1G ( 2G )为低电平时,输出等于输入;当它的控制端 1G ( 2G )为高电平时,输出呈高阻态。 在上图的电路中, P2.7 与 RD 相或后作为 244 的使能信号,单片机的 P0 口与 74LS244 的 8 位输出端相连,所以 74LS244 的地址为: 7FFFH ( P2.7=0 即 A15=0 , A14..A0 为任意,这里取 1 ,得到 7fffh ,当然, 0000h~7fffh 中任一地址均可)。当单片机从 74LS244 读取数据时应该为:
MOV DPTR , #7FFFH ;将 74LS244 的口地址送入 DPTR
MOVX A , @DPTR ; 74LS244 的端口读取数据到 ACC
;执行时, RD 有效, p2.7=0, 选通了 74ls244 。注意: MOVX A , @DPTR; 读操作,产生 RD 低电平信号
Copyright http://www.myvtc.edu.cn 2006
利用 74LS273 进行输出口的扩展
CLR1
CLK11
1D3
1Q2
2D4
2Q5
3D7
3Q6
4D8
4Q9
5D13
5Q12
6D14
6Q15
7D17
7Q16
8D18
8Q19
74LS27374LS273 引脚封装图
MCS-51 与 74LS273 的接口电路图
EA/VP31
X119
X218
RESET9
INT012
INT113
T014
T115
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P0.039
P0.138
P0.237
P0.336
P0.435
P0.534
P0.633
P0.732
P2.021
P2.122
P2.223
P2.324
P2.425
P2.526
P2.627
P2.728
RD17
WR16
PSEN29
ALE/P30
TXD11
RXD10
MCS-51
1
23
A
74LS32
CLR1
CLK11
1D3
1Q2
2D4
2Q5
3D7
3Q6
4D8
4Q9
5D13
5Q12
6D14
6Q15
7D17
7Q16
8D18
8Q19
74F273
VCC
锁存器扩展输出口
Copyright http://www.myvtc.edu.cn 2006
74LS273 是一种 8D 触发器器。当它的控制端信号有效且触发端信号有效时,输入 D1-D8 端的数据被锁存到 8D 触发器中并形成输出 Q1-Q8 。在上图的电路中, P2.7 与 WR 相或后作为 74LS273 的锁存信号( clk 下降沿有效),单片机的 P0 口与 74LS273 的 8 位输出端相连,所以 74LS273 的地址为: 7FFFH 。(仅使 P2.7=0 ,地址可以是 0000h~7fffh 中的任一个。)(仅当 p2.7=0 且 WR=0 时, clk 才为 0 ,数据被打入。) 所以,当单片机从 74LS244 输出数据是应该为:
MOV DPTR , #7FFFH ;将 74LS244 的口地址送入 DPTR
MOVX @DPTR , A ;从 ACC 向 74LS244 的端口写数据 ; P2.7=0&WR=0, 数据被打入到 2732
锁 存器注意: MOVX @DPTR , A; 写操作,产生 WR 低电平信号
Copyright http://www.myvtc.edu.cn 2006
Intel 8155 是一个具有 RAM 、 I/O 和计数器的通用可编程接口芯片。其具有的资源为
256B 的静态 RAM ;两个可编程的 8 位并行 I/O 口 PA 和 PB ;一个可编程的 6 位并行 I/O 口 PC ;一个可编程 14 位减计数器 TC ;8 位地址锁存器。
示意图
一、可编程芯片 8155 的扩展
是指芯片功能可由指令来确定,即需要对其编程。
Copyright http://www.myvtc.edu.cn 2006
AD012
PA021
AD113
PA122
AD214
PA223
AD315
PA324
AD416
PA425
AD517
PA526
AD618
PA627
AD719
PA728
PB029
CE8
PB130
RD9
PB231
WR10
PB332
IO/M7
PB433
ALE11
PB534
PB635
PB736
TMROUT6
PC037
PC138
TMRIN3
PC239
PC31
PC42
RESET4
PC55
8155
8155 的引脚封装图
8155 的内部接口图
C
B
A256字节静态RAM
14位定时
计数器
TIMER IN
TIMER OUT
VCC( + 5 V)
VSS(GND)
PA0 ~ PA7
IO/M
CE
ALE
RD
WR
RESET
AD0 ~ AD7
PB0 ~ PB7
PC0 ~ PC7
Copyright http://www.myvtc.edu.cn 2006
8155 各引脚的功能为:地址 / 数据线 AD0 ~ AD7 ( 8 条):是低 8 位地址线和数据线的共用
输入总 线,常和 MCS-51 单片机的 P0 口相连,用于分时传送地址和数据;PA0 ~ PA7 、 PB0 ~ PB7 :为 A 、 B 口线,用于和外设之间传递数
据;PC0 ~ PC5 为 C 端口线,既可与外设传送数据,也可以作为 A 、 B 口
的控制 联络线;CS :片选线,低电平有效。
1. 8155 的内部结构
Copyright http://www.myvtc.edu.cn 2006
RESET :复位线,通常与单片机的复位端相连。ALE :地址锁存线,高电平有效。IO/M : RAM 或 I/O 口的选择线。当为 0 时,选中 8155 的 256 B RAM ;
当为 1 时,选中 8155 片内 3 个 I/O 端口以及命令 / 状态寄存器和定时/ 计数器。
RD 和 WR :读 / 写线,控制 8155 的读、写操作。TMRIN ( TI ):定时 / 计数器的脉冲输入端。TMROUT ( TO ):定时 / 计数器的输出信号端。VCC :电源端。GND :接地端。
Copyright http://www.myvtc.edu.cn 2006
8155 当 IO/M 为 0 时,单片机对 8155 的 RAM 进行操作,共 256B ,低八位的地址为: 00H—0FFH 。
8155 当 IO/M 为 1 时,单片机对 8155 的 I/O 口进行操作。
低八位地址 I/O 口xxxxx000B 命令 / 状态口xxxxx001B PA 口xxxxx010B PB 口xxxxx011B PC 口xxxxx100B 定时器 / 计数器低字节寄存器xxxxx101B 定时器 / 计数器高字节寄存器
8155 内部寄存器地址分配表
2. 8155 的 RAM 和 I/O 口地址编码
Copyright http://www.myvtc.edu.cn 2006
芯片 8155 的 I/O 口和定时器 / 计数器的工作方式可以通过对 8155的命令寄存器写入控制字来实现。
8155 的命令寄存器和状态寄存器使用同一个地址。
8155 的命令字命令字主要规定了 8155 的 I/O 口和定时器的工作方式。
8255 的状态字状态字的内容包含 8155 的 I/O 口的工作状态标志。
3. 8155 的命令字和状态字
Copyright http://www.myvtc.edu.cn 2006
EA/VP31
X119
X218
RESET9
RD17
WR16
INT012 INT113
T014 T115
P101
P112
P123
P134
P145
P156
P167
P178
P00 39
P01 38
P02 37
P0336
P04 35
P0534
P06 33
P07 32
P20 21
P2122
P22 23
P23 24
P24 25
P25 26
P2627
P27 28
PSEN 29ALE/P30TXD 11
RXD 10
89C51
+ 10u
10K
VCC
GND
AD012 PA0 21
AD113 PA1 22
AD214 PA2 23
AD315
PA324
AD416 PA4 25
AD517
PA526
AD618 PA6 27
AD719 PA7 28
PB0 29
CE8
PB130
RD9 PB2 31
WR10 PB3 32
IO/M7 PB4 33
ALE11 PB5 34
PB635
PB7 36
TMROUT6
PC0 37
PC1 38
TMRIN3 PC2 39
PC3 1
PC42
RESET4 PC5 5
U?
8155
PA口
PB口
PC口
MCS-51 单片机与 8155 的接口
Copyright http://www.myvtc.edu.cn 2006
TM1TM2 IEB IEA PC2 PC1 PAPAPB
A口方式
B口方式
B 口
A 口
计数器
方式
00: 空操作01: 停止计数
10: 计满后停止11: 开始计数
0: 输入1: 输出
0: 禁止中断
1: 允许中断
00
11
01
10
方式 1:A 、 B 口基本 I/O ; C 口输入方式 2:A 、 B 口基本 I/O ; C 口输出方式 3:A 口选通 I/O ; B 口基本I/O方式 4:A 、 B 口选通 I/O
8155 的命令字格式
Copyright http://www.myvtc.edu.cn 2006
A 口中断请求标志:0: 无 ; 1: 有
A 口缓冲器:0: 空 ;1: 满
A 口中断允许:0: 禁止 ;1: 允许
B 口中断请求标志:0: 无 ; 1: 有
B 口缓冲器:0: 空 ;1: 满
B 口中断允许:0: 禁止 ; 1: 允许
定时器中断标志 :1: 有定时器溢出中断
0: 读状态字后或硬件复位后
INTEBTIMER BFB INTRB INTEA INTRABFA--
8155 的状态字格式
Copyright http://www.myvtc.edu.cn 2006
基本 I/O 方式:联络线由程序指定,对计数器输入输出不起控制作用,没有中断能力,输出联络线由软件程序来控制。
选通 I/O 方式:由 PC 口的低三位作联络线使用,其余位作 I/O 线;输入联络线可以起选通数据锁存作用;中断时有中断请求信号产生;各个联络线为:
INTRA :中断请求输出标志。BFA : PA 口缓冲器 / 空输出信号。STBA :数据选通输入信号。
8155 的 I/O 的工作方式
Copyright http://www.myvtc.edu.cn 2006
8155 片内的定时器 / 计数器是一个 14 位的减计数器。计数器分为高 6
位和低 8 位寄存器,它的计数初值有程序预置。它的格式为:
M2 M1 T13 T12 T11 T10 T9 T8
T7 T6 T5 T4 T3 T2 T1 T0
高字节寄存器( M2 和 M1 是工作方式码)
低字节寄存器( T0—T13 为计数器的初值)
4. 8155 的定时器 / 计数器
Copyright http://www.myvtc.edu.cn 2006
M2 M1 方 式 波 形
0 00 11 01 1
单次方波连续方波单个脉冲连续脉冲
8155 定时器 / 计数器四种操作方式和输出波形
Copyright http://www.myvtc.edu.cn 2006
1)8155RAM 的使用例题:假定在 MCS-51 单片机的内部 RAM 中,从 30H 开始存放一组数据,字节数为 50 ,要求将该组数据存入 8155 RAM 中,起始地址为 7E00H 。
程序为: ……………… .. RAMWR:MOV R0,#30H
MOV DPTR,#7E00H MOV R2,#50 RAMW:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR
DJNZ R2,RAMW …………………
思考:如果要把8155 RAM 中,从地址为 7E00H开始的 50 个数据存入单片机的30H 开始的数据存储单元中,应该如何处理?
5. 8155 的应用
Copyright http://www.myvtc.edu.cn 2006
2) 8155 的 I/O 口的使用例题:假定 8155 的 PA 口接 8 个乒乓开关, 8155 的 PB 口接 8 个指示灯,要求
PB显示 PA 口的开关状态。命令 / 状态寄存器地址为 7E00H,PA 地址为 7E01H ,PB 地址为 7E02H 。 8155 的命令字为: 02H ( PA 和 PB 为基本 I/O 方式)。
程序为: ORG 0000H
MOV DPTR,#7E00H MOV A,#02H MOV @DPTR,A LOOP:
MOV DPTR,#7F01H MOVX A,@DPTR
INC DPTR MOVX @DPTR,A
SJMP LOOP
END
写命令字,送入命令 / 状态寄存器
8155 的 A 口数据送入 ACC
ACC 数据写入 8155 的 B口循环执行
Copyright http://www.myvtc.edu.cn 2006
8255 是一个通用可编程接口电路。其具有的资源为:三个可编程的 8 位并行 I/O 口 PA 、 PB 和 PC 口;PC 口可以按位进行操作。
D034
D133
D232
D331
D430
D529
D628
D727
PA04
PA13
PA22
PA31
PA440
PA539
PA638
PA737
PB018
PB119
PB220
PB321
PB422
PB523
PB624
PB725
PC014
PC115
PC216
PC317
PC413
PC512
PC611
PC710
RD5
WR36
A09
A18
RESET35
CS6
8255A
D034
D133
D232
D331
D430
D529
D628
D727
PA04
PA13
PA22
PA31
PA440
PA539
PA638
PA737
PB018
PB119
PB220
PB321
PB422
PB523
PB624
PB725
PC014
PC115
PC216
PC317
PC413
PC512
PC611
PC710
RD5
WR36
A09
A18
RESET35
CS6
GND7
VCC26
8255A
8255A 的引脚封装图
数据总线 PA
口
PB口
PC口
控制总线
二、可编程芯片 8255 的扩展
Copyright http://www.myvtc.edu.cn 2006
8255 的内部接口图
A组
端口A
A组端口C
上半部(4)
下半部(4)
B组端口C
B组
端口B
(8)
(8)
A组
控制
控制
B组
数据总线缓冲
读 / 写
控制逻辑
I/O
I/O
I/O
I/ORD
WRA0
A1
RESET
CS
D7 ~ D0
PA7 ~ PA0
PC7 ~ PC4
PC3 ~ PC0
PB7 ~ PB0
Copyright http://www.myvtc.edu.cn 2006
8255 各引脚的功能为:地址 / 数据线 D0 ~ D7 :是低 8 位地址线和数据线的共用输入总线,
常和 MCS-51 单片机的 P0 口相连,用于分时传送地址和数据;PA0 ~ PA7 、 PB0 ~ PB7 :为 A 、 B 口线,用于和外设之间传递数
据;PC0 ~ PC7 为 C 端口线,既可与外设传送数据,也可以作为 A 、 B 口
的控制联络线;CS :片选线,低电平有效。RESET :复位线,通常与单片机的复位端相连。A0 和 A1 : I/O 口的选择线,通过它可以选择 PA 口、 PB 口、 PC 口
和控制寄存器。RD 和 WR :读 / 写线,控制 8255 的读、写操作。VCC :电源端。GND :接地端。
1. 8255 的内部结构
Copyright http://www.myvtc.edu.cn 2006高阻态011xX
非法态01011
高阻态1XXXX
从命令口输入00111
从 PC 口输出00101
从 PB 口输出00110
从 PA 口输出00100
从 PC 口输入01001
从 PB 口输入01010
从 PA 口输入01000
操作CSWRRDA0A1
2. 8255A 的端口选择和基本操作
Copyright http://www.myvtc.edu.cn 2006
8255 有两个控制字:方式控制字
方式控制字用于设定单片机的 PA 口、 PB 口和 PC 口的工作方式。
置位/复位控制字置位 / 复位控制字用于对 8255A 的 PC 口按位进行操作。
3. 8255A 的控制字
Copyright http://www.myvtc.edu.cn 2006
B 组
C 口低 4 位
B 口
方式选择
0: 输出1: 输入
0: 输出1: 输入
0: 模式 0 1: 模式 1
A组
C 口高 4 位
A 口
方式选择
0: 输出
0: 输出
1: 输入
1: 输入
01: 模式 1
00: 模式 0
1*: 模式 2
1: 方式标志
D7 D6 D5 D4 D3 D2 D1 D0
方式控制字
Copyright http://www.myvtc.edu.cn 2006
0: 复位1: 置位
000001
010
PC0
位选择
011100101110111
PC1
PC2PC3PC4PC5PC6PC7
0: 位操作
D7 × × × D3 D2 D1 D0
置位 / 复位控制字
Copyright http://www.myvtc.edu.cn 2006
8255A 有 3 种工作方式
工作方式 0基本的输入 / 输出方式
工作方式 1选通工作方式
工作方式 2双向传送方式,只有 PA 口工作于此方式。
4. 8255A 的工作方式
Copyright http://www.myvtc.edu.cn 2006
开关量输入
D034
D133
D232
D331
D430
D529
D628
D727
PA04
PA1 3
PA2 2
PA31
PA4 40
PA539
PA6 38
PA7 37
PB0 18
PB119
PB2 20
PB321
PB4 22
PB5 23
PB6 24
PB7 25
PC0 14
PC1 15
PC2 16
PC3 17
PC413
PC5 12
PC611
PC7 10
RD5
WR36
A09
A18
RESET35
CS68255A
EA/VP31
X119
X218
RESET9
RD17
WR16
INT012 INT113
T014 T115
P101
P112
P123
P134
P145
P156
P167
P178
P0039
P01 38
P02 37
P0336
P04 35
P0534
P06 33
P07 32
P20 21
P2122
P22 23
P2324
P24 25
P25 26
P26 27
P27 28
PSEN 29ALE/P30TXD 11
RXD 10
89C51
OC1
C11
1D3
1Q2
2D4
2Q 5
3D7
3Q6
4D8
4Q 9
5D13
5Q 12
6D14
6Q15
7D17
7Q 16
8D18
8Q19
74LS373
GND
ALE
ALE
+ 10u
10K
VCC
GND
GND
12345678
CON8
显示输出5. 8255A 和 MCS-51 单片机的
接口
Copyright http://www.myvtc.edu.cn 2006
例 1 :在上图所示的 8255 与单片机的连接电路中,8255A 的 PC 口 (7FFEH) 作为开关量的输入;8255A 的 PA 口 (7FFCH) 作为信号的输出;要求 8 个数码管显示 PC 口输入的外部信号状态。8255A 的工作方式字设定:由题意可知 8255 的工作方式字应该为: 89H
6.8255A 应用举例:
Copyright http://www.myvtc.edu.cn 2006
8255初始化
从 8255 的 PC 口读入数据
从 8255 的 PA 口输出数据
选中 8255的 PC 口
选中 8255的 PA 口
流程图:
Copyright http://www.myvtc.edu.cn 2006
ORG 0000H
MOV DPTR,#7FFFH
MOV A,#89H
MOVX @DPTR,A
LOOP:MOV DPTR,#7FFEH
MOVX A,@DPTR
MOV DPTR,#7FFCH
MOVX @DPTR,A
SJMP LOOP
END
写命令字,送入命令 / 状态寄存器
8255 的 C 口数据送入 ACC
ACC 数据写入 8255 的 A口循环执行
程序清单:
Copyright http://www.myvtc.edu.cn 2006
例 2 :在 8255 与单片机的连接电路中,使用置位 / 复位控制字实现在 8255A 的 PC7 输出方波。
解: 8255A 的控制寄存器 (7FFEH) 的设定 D7 :恒为 0 ; D6-D4 :未使用; D3-D1 : PC 口的位选择; D0 :置位时为 1 ,复位时为 0 。
所以: 当 PC7 输出高电平时,控制寄存器应该为: 0FH ;
PC7 输出低电平时,控制寄存器应该为: 0EH 。
Copyright http://www.myvtc.edu.cn 2006
ORG 0000H MOV DPTR,#7FFFHLOOP: MOV A,#0FH MOVX @DPTR,A MOV R2 , #80H DJNZ R2 , $ MOV R2,#80H MOV A,#0EH MOVX @DPTR,A DJNZ R2 , $ SJMP LOOP END
写 PC7=1 的命令字
延时
写 PC7=0 的命令字
循环执行
程序清单:
Copyright http://www.myvtc.edu.cn 2006
本章要求: 掌握 MCS-51 单片机的三总线形成; 了解常用的程序存储器、数据存储器,以及它们
与单片机如何进行连接,连接好的存储单元如何确定其地址;
掌握用缓冲器、锁存器等扩展简单 I/O 接口电路; 掌握 8155 可编程接口芯片的基本性能、端口与
存储单元的编址方法,以及与单片机的连接电路,口的基本应用;
了解 8155 定时器的应用; 掌握 8255A 的功能及应用。
小 结
top related