51单片机接口的扩展
4.3 输入/输出接口扩展
• MCS-51系列单片机内部有4个双向的8位并行I/O端 口:P0、P1、P2和P3口。
• 在实际的应用系统中,P0口分时地作为低8位地址 线和数据线,P2口作为高8位地址线。这时,P0口 和部分或全部的P2口无法再作通用I/O口。
• P3口的一些口线首先要满足第二功能的要求。这 时就需要进行单片机I/O口的扩展。 常用的I/O扩展有以下两种形式:
B
14位
定时
计数器
C
PA0~PA7 PB0~PB7
PC0~PC7
VCC(+5 V) VSS(GND)
8155的引脚封装图
8155的内部接口图
1. 8155的内部结构
• 8155各引脚的功能为: ➢ 地址/数据线AD0~AD7(8条):是低8位地址线和数据线
的共用输入总线,常和MCS-51单片机的P0口相连,用于 分时传送地址和数据; ➢ PA0~PA7、PB0~PB7:为A、B口线,用于和外设之间传 递数据; ➢ PC0~PC5为C端口线,既可与外设传送数据,也可以作为 A、B口的控制联络线; ➢ CS:片选线,低电平有效。
39 38 37 36 35 34 33 32
R ESET
INT0 INT1 T0 T1
P1. 0
P2. 0
P2. 1
MCS-51
P2. 2 P2. 3
P2. 4
P2. 5
P2. 6
P2. 7
21 22 23 24 25 26 27 28
P1. 1 P1. 2 P1. 3 P1. 4 P1. 5 P1. 6 P1. 7
RD WR PSEN ALE/ P TXD RXD
17 16 29 30 11 10
1 11
3 4 7 8 13 14 17 18
CLR CLK
1D 2D 3D 4D 5D 6D 7D 8D
1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q
2 5 6 9 12 15 16 19
7 4F2 7 3
A 1
3 2
VCC
15 14
T1 T0
89C51
31
EA/VP
+ 1 0u
19 18
X1 X2
P20 P21 P22 P23 P24 P25 P26 P27
21 22 23 24 25 26 27 28
9
R ESET
1 0K
17 16
RD WR
RXD TXD ALE/ P PSEN
10 11 30 29
U?
12 13 14 15 16 17 18 19
程序为:
……………….. RAMWR:MOV R0,#30H
思考:如果要把
MOV MOV
DPTR,#7E00H R2,#50
8155 RAM中, 从地址为7E00H
RAMW:MOV A,@R0
开始的50个数据
24
25 26
AD0~AD7
27
28
CE
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7
29 30 31 32 33 34 35 36
ALE RD WR RESET
PC0 PC1 PC2 PC3 PC4 PC5
37 38 39 1 2 5
TIMER IN TIMER OUT
256字节 A 静态 RAM
9
7 8 13
2D 3D 4D
4Q 5Q 6Q
12 15 16
12 13 14 15
14
5D 6D
7Q 8Q
19
1 2 3
17 18
7D
4 5 6
8D
7
8
7 4LS 2 73
74LS273引脚封装图
EA/VP X1
X2
P0. 0 P0. 1 P0. 2 P0. 3 P0. 4 P0. 5 P0. 6 P0. 7
❖ 当单片机从74LS244读取数据时应该为:
MOV DPTR,#7FFFH ;将74LS244的口地址送入DPTR
MOVX A,@DPTR ; 74LS244的端口读取数据到ACC
锁存器扩展输出口
• 利用74LS273进行输出口的扩展 VCC
1 CLR
31
11
2
19
CLK 1Q
2Q 5
18
3
6
4 1D 3Q 9
➢ 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:接地端。
7 4LS3 2Mຫໍສະໝຸດ S-51与74LS273的接口电路图
•74LS273是一种8D触发器器。当它的控制端信号有效且触 发端信号有效时,输入D1-D8端的数据被锁存到8D触发器中 并形成输出Q1-Q8。 ❖在上图的电路中,P2.7与WR相或后作为74LS273的锁存 信号,单片机的P0口与74LS273的8位输出端相连,所以 74LS273的地址为:7FFFH。 ❖当单片机从74LS244输出数据是应该为: MOV DPTR,#7FFFH ;将74LS244的口地址送入DPTR
I/O口 命令/状态口 PA口 PB口 PC口 定时器/计数器低字节寄存器 定时器/计数器高字节寄存器
3. 8155的命令字和状态字
❖ 芯片8155 的I/O口和定时器/计数器的工作方式可以通 过对8155的命令寄存器写入控制字来实现。
❖ 8155的命令寄存器和状态寄存器使用同一个地址。
➢ 8155的命令字 命令字主要规定了8155的I/O口和定时器的工作方式。
▪ 简单的I/O口扩展主要包括:
➢ 缓冲器扩展输入口(三态门: 74LS244、74LS245等)
➢ 锁存器扩展输出口(锁存器: 74LS273、74LS373、 74LS377等)
缓冲器扩展输入口
• 利用74LS244进行输入口的扩展
1 2 4 6 8
1G A1 A2 A3 A4
1 Y1 1 Y2 1 Y3 1 Y4
• 选通I/O方式:由PC口的低三位作联络线使用,其余位作 I/O线;输入联络线可以起选通数据锁存作用;中断时有中 断请求信号产生;各个联络线为:
➢ INTRA:中断请求输出标志。 ➢ BFA:PA口缓冲器/空输出信号。 ➢ STBA:数据选通输入信号。
4. 8155的定时器/计数器
• 8155片内的定时器/计数器是一个14位的减计数器。计数 器分为高6位和低8位寄存器,它的计数初值有程序预置。 它的格式为: 高字节寄存器(M2和M1是工作方式码)
12 13 14 15 16 17 18 19
AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7
8 9 10 7 11
CE RD WR IO/ M ALE
8155
6
TMR OUT
3
TMR IN
4
R ESET
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
21
22
IO/M
23
2. 8155的RAM和I/O口地址编码
• 8155当IO/M为0时,单片机对8155的RAM进行操作,共 256B,低八位的地址为:00H—0FFH。
• 8155当IO/M为1时,单片机对8155的I/O口进行操作。 8155内部寄存器地址分配表
低八位地址 xxxxx000B xxxxx001B xxxxx010B xxxxx011B xxxxx100B xxxxx101B
M2 M1 T13 T12 T11 T10 T9 T8
低字节寄存器(T0—T13为计数器的初值)
T7 T6 T5 T4 T3 T2 T1 T0
8155定时器/计数器四种操作方式和输出波形
M2 M1
方
式
波
形
00 01 10 11
单次方波 连续方波 单个脉冲 连续脉冲
5. 8155的应用
1)8155RAM的使用 例题:假定在MCS-51单片机的内部RAM中,从30H开始 存放一组数据,字节数为50,要求将该组数据存入8155 RAM中,起始地址为7E00H。
18 16 14 12
19 11 13 15 17
2G B1 B2 B3 B4
2 Y1 2 Y2 2 Y3 2 Y4
9 7 5 3
7 4LS2 44
74LS244引脚封装图
31
19
18
9
12 13 14 15
1 2 3 4 5 6 7 8
EA/VP
X1
X2
R ESET
INT0 INT1 T0 T1
P1. 0 P1. 1 P1. 2 P1. 3 P1. 4 P1. 5 P1. 6 P1. 7
➢ 简单I/O接口芯片的扩展 ➢ 可编程I/O接口电路的扩展
4.3.1简单I/O接口芯片的扩展
▪ 简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三
态门等作为扩展芯片(74LS244、74LS245、74LS273、 74LS373、74LS377等),通过P0口来实现扩展的一种 方案。它具有电路简单、成本低、配置灵活的特点。
17 16 29 30 11 10
3 5 7 9
2 Y4 2 Y3 2 Y2 2 Y1
B4 B3 B2 B1 2G
17 15 13 11 19