第 7章 80C51并行扩展技术本章要点
并行扩展总线组成 (地址,数据,控制总线 )
并行扩展寻址方式 ( 线选法,译码法 )
并行扩展 EPROM
并行扩展 E2PROM
并行扩展 RAM
用 74系列芯片并行扩展 I/O口
扩展总线驱动能力
80C51系列单片机有很强的外部扩展能力。
外部扩展可分为 并行扩展 和 串行扩展 两大形式。
早期的单片机应用系统以采用并行扩展为多,
近期的单片机应用系统以采用串行扩展为多。
外部扩展的器件可以有 ROM,RAM,I/O口和其他一些功能器件,扩展器件大多是一些常规芯片,有典型的扩展应用电路,可根据规范化电路来构成能满足要求的应用系统。
§ 7-1 并行扩展概述一,并行扩展连接方式
1,并行扩展总线组成
⑴ 数据传送,由 数据总线 DB( D0~ D7)完成;
D0~ D7由 P0口提供
⑵ 单元寻址,由 地址总线 AB( A0~ A15)完成;
低 8位地址线 A0~ A7由 P0口提供高 8位地址线 A8~ A15由 P2口提供。
⑶ 交互握手,由 控制总线 CB完成。
控制线有 PSEN,WR,RD,ALE,EA
2,并行扩展 容量可分别扩展 64KB ROM(包括片内 ROM) 和 64KB外 RAM。
⑤ WR:输出,用于写 外 RAM选通,执行 MOVX写指令时,
WR会自动有效,与外 RAM写允许端 WE连接 。
80C51控制总线,有以下几条:
① ALE:输出,用于锁存 P0口输出的低 8位地址信号,
与地址锁存器门控端 G连接 。
② PSEN:输出,用于 外 ROM读选通控制,与外 ROM输出允许端 OE连接 。
③ EA:输入,用于选择读内 /外 ROM。 EA=1,读内 ROM;
EA=0,读外 ROM。 一般情况下,有并且使用内 ROM时,
EA接 Vcc;无内 ROM或仅使用外 ROM时,EA接地 。
④ RD:输出,用于读外 RAM选通,执行 MOVX读指令时,
RD会自动有效,与 外 RAM读允许端 OE连接 。
⑥ P2.X,并行扩展外 RAM和 I/O时,通常需要片选控制,
一般由 P2口高位地址线担任。
二,并行扩展寻址方式存储器 片内 存储单元子地址:
由与存储器地址线直接连接的地址线确定;
存储器芯片地址:
由高位地址线产生的 片选 信号确定。
当存储器芯片多于一片时,为了避免误操作,必须利用片选信号来分别确定各 芯片的地址分配。
产生片选信号的方法有 线选法 和 译码法 两种。
低位地址线 A0~ A10实现片内寻址。
高位地址线 A11~ A13实现片选( A11~ A13中只允许有一根为低电平,另二根必须为高电平,否则出错)。
无关位 A14,A15可任取,一般取,1” 。
高位地址线直接连到存储器芯片的片选端。 图中芯片是 2K* 8位
1,线选法二进制表示
16进制表示无关位 片外地址线 片内地址线
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
芯片

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 F000H
.,,,,,,,,,,,,,,,~
1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 F7FFH
芯片

1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 E800H
.,,,,,,,,,,,,,,,~
1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 EFFFH
芯片

1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 D800H
.,,,,,,,,,,,,,,,~
1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 DFFFH
表 7-1 线选法三片存储器芯片地址分配表缺点,①芯片地址空间不连续;
②存在地址重叠现象。
线选法 优点,连接简单;
适用于扩展存储容量较小的场合。
通过译码器将高位地址线转换为片选信号。
2,译码法二进制表示
16进制表示无关位 片外地址线 片内地址线
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
芯片

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8000H
.,,,,,,,,,,,,,,,~
1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 87FFH
芯片

1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 8800H
.,,,,,,,,,,,,,,,~
1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 8FFFH
芯片

1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 9000H
.,,,,,,,,,,,,,,,~
1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 97FFH
表 7-3 译码法三片存储器芯片地址分配表译码法的 另一个优点 是若译码器输出端留有剩余端线未用时,便于继续扩展存储器或 I/O
口 接口电路。
译码法与线选法比较,硬件电路稍复杂,
需要使用译码器,但可充分利用存储空间,全译码 时还可避免地址重叠现象,局部译码 因还有部分高位地址线未参与译码,因此仍存在地址重叠现象。
译码法和线选法不仅适用于扩展存储器 (包括外 RAM和外 ROM),还适用于扩展 I/O口 (包括各种外围设备和接口芯片 )。
① 程序存储器 EPROM 的扩展:
单片机 内部没有 ROM,或虽有 ROM但 容量太小 时,必须扩展外部程序存储器方能工作。最常用的 ROM器件是
EPROM。 如,2716(2K)/2764(8K)/27128(16K)
/27256(32K)/27040(512K)……
存储器的扩展 (EPROM)
Vpp Vcc
A12 PGM
A7 NC
A6 A8
A5 A9
A4 A11
A3 OE
A2 A10
A1 CE
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
2764
Vpp Vcc
A12 PGM
A7 A13
A6 A8
A5 A9
A4 A11
A3 OE
A2 A10
A1 CE
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
27128
Vpp Vcc
A12 A14
A7 A13
A6 A8
A5 A9
A4 A11
A3 OE
A2 A10
A1 CE
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
27256
§ 7-2 并行扩展外 ROM
一,扩展 EPROM
② 高位地址,视 EPROM芯片容量大小。 2764需 5位,P2.0~
P2.4与 2764 A8~ A12相连; 27128需 6位,P2.0~ P2.5与 27128
A8~ A13相连。
⑴ 地址线
① 低 8位地址,由 80C51 P0.0~ P0.7与 74373 DO~ D7端连接,
ALE有效时 74373锁存该低 8位地址,并从 Q0~ Q7输出,与 EPROM
芯片低 8位地址 AO~ A7相接。
⑵ 数据线,由 80C51地址 /数据复用总线 P0.0~ P0.7直接与
EPROM数据线 DO~ D7相连。
⑶ 控制线
① ALE,80C51 ALE端与 74373门控端 G相连,专用于锁存低 8位地址。
② 片选端,由于只扩展一片 EPROM,因此一般不用片选,EPROM
片选端 CE直接接地。
③ 输出允许,EPROM的输出允许端 OE直接与 80C51 PSEN相连,
80C51的 PSEN信号正好用于控制 EPROM OE端。
④ EA:有并且使用内 ROM时,EA接 Vcc;无内 ROM或仅使用外
ROM时,EA接地。
二,扩展 E2PROM(2816A,2817A,2864A等 )
① 地址线、数据线 仍按 80C51一般扩展外 ROM的方式连接。
② 片选线 一般由 80C51高位地址线控制,并决定
E2PROM口地址。
③ 将 E2PROM用作外 ROM时,80C51 PSEN与 E2PROM OE
端相连。由 80C51的 PSEN控制 E2PROM的读出 (输出允许 OE)。
④ 将 E2PROM当作外 RAM时,因需要对 E2PROM进行在线擦写,因此 80C51的 WR与 E2PROM WE端相连,此时应使用 MOVX指令,且应注意 E2PROM的地址范围与外
RAM不能重复重迭,否则出错。
⑴ 将 E2PROM用作外 ROM
E2PROM用作 外 ROM时,
执行 MOVC指令,读选通由 PSEN控制;
E2PROM用作 外 RAM时,
执行 MOVX指令,读选通由 RD控制。
读 E2PROM时,
速度与 EPROM相当,完全能满足 CPU要求。
写 E2PROM时,
速度很慢,因此,不能将 E2PROM当作一般
RAM使用。 每写入一个(页)字节,要延时
10mS以上,使用时应予以注意。
⑵ 将 E2PROM同时用作外 ROM和外 RAM
【 例 7.1】 试将 E2PROM中以 Addr为首址的 32个存储单元改写为内 RAM中以 30H为首址的 32字节的内容。 解:编程如下:
WROMl,MOV R0,#30H ;置源数据区首址
MOV DPTR,#Addr ;置 E2PROM擦写单元首址
LOP1,MOV A,@R0 ;取改写数据
MOVX @DPTR,A ;改写
INC R0 ;修改源数据区地址
INC DPTR ;修改写入单元地址
CJNE R0,#40H,LOP1 ;1~ 16字节未页写完毕,继续
DEC DPL ;页写完毕,指向最后一个数据
MOV B,A ;暂存最后一个数据
WALT,CLR A ;
MOVC A,@A+DPTR ;读最后一个数据
XRL A,B ;异或核对
JB Acc.7,WAIT ; Acc.7=1,页存储未完,Ace.7=0,页存储完毕
INC DPL ;恢复指向下一写入单元地址
LOP2,MOV A,@R0 ;取改写数据
MOVX @DPTR,A ;改写
INC R0 ;修改源数据区地址
INC DPTR ;修改写入单元地址
CJNE R0,#50H,LOP2 ;17~ 32字节未页写完毕,继续
RET
【 例 7.2】 按图 7.10,将 2864A中 1000H为首地址的 16个数据读出取反后写入原存储单元。
解:编程如下:
WROM2,MOV R2,#10H ; 置数据长度
MOV DPTR,#1000H ;置 E2PROM数据区首址
LOP2,MOVX A,@DPTR ;读 E2PROM数据
CPL A ;取反
MOVX @DPTR,A ;写入 E2PROM原存储单元
INC DPTR ;指向下一数据地址
DJNZ R2,LOP2 ;判操作完成否?未完循环
RET ;完成操作,返回。
② 数据存储器 RAM 的扩展:
有时需要扩展 外部数据存储器 RAM方能工作 (如数据采集系统数据量较大,需要专设 RAM或 Flash
RAM)。最常用的 RAM器件是 SRAM。
如,6116(2K)/6264(8K)/62128(16K)/628128(128K) ……
存储器的扩展 (RAM)
A7 Vcc
A6 A8
A5 A9
A4 WE
A3 OE
A2 A10
A1 CE
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
6116
Vpp Vcc
A12 WE
A7 CE2
A6 A8
A5 A9
A4 A11
A3 OE
A2 A10
A1 CE1
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
6264
Vpp Vcc
A12 WE
A7 A13
A6 A8
A5 A9
A4 A11
A3 OE
A2 A10
A1 CE
A0 D7
D0 D6
D1 D5
D2 D4
GND D3
62128
§ 1-1 并行扩展外 RAM
1,80C51扩展外 RAM时典型连接电路
⑴ 地址线、数据线 仍按 80C51一般扩展 ROM时方式连接,高位地址线视 RAM芯片容量,6116需 3
根,6264需 5根。
⑵ 片选线 一般由 80C51高位地址线控制,并决定
RAM的口地址。
6264有 2个片选端只须用其一个,一般用 CE1,
CE2直接接 Vcc。
按图 7-12,6116的地址范围是 7800H~ 7FFFH;
按图 7-13,6264的地址范围是 6000H~ 7FFFH
(无关位为 1)。
⑶ 读写控制线 由 80C51的 RD,WR分别与 RAM芯片的 OE,WE相接。
【 例 7-3】 按图 7.13,试编制程序,将外 IRAM 7020H为首址的
16个数据读出并写入外 RAM 7040H为首址的存储单元。
解:编程如下:
RWRAM,MOV R2,#10H ;置读写数据长度
MOV R3,#20H ;置读出数据区低 8位首址
MOV R4,#40H ;置写入数女匠辱低 8位首址
MOV DPTR,#7020H;置读出数据区首址
LOP3,MOVX A,@DPTR ;读数据
MOV DPL,R4 ;置写入数据区低 8位地址
MOVX @DPTR,A ;写数据
INC R3 ;修改读数据区地址
INC R4 ;修改写数据区地址
MOV DPL,R3 ;置读出数据区低 8位地址
DJNZ R2,LOP3 ;判读写结束否?未结束继续循环
RET ;
2,80C51同时扩展 外 ROM和 外 RAM时典型连接电路
⑴ 地址线,数据线仍按 80C51一般扩展外 ROM时方式连接。
⑵ 片选线,因外 ROM只有一片,无需片选。 2764
CE直接接地,始终有效。外 RAM虽然也只有一片,但系统可能还要扩展 I/O口,而 I/O口与外
RAM是统一编址的,因此一般需要片选,6264
CE1接 P2.5,CE2直接接 Vcc,这样 6264的地址范围为 C000H~ DFFFH,P2.6,P2.7可留给扩展
I/O口片选用。
⑶ 读写控制线,读外 ROM执行 MOVC指令,由 PSEN
控制 2764 OE,读写外 RAM 执行 MOVX指令,由
RD控制 6264 OE,WR控制 6264 WE。
§ 7-4 用 74系列芯片并行扩展 I/O口扩展 I/O口分类,并行扩展和串行扩展;
可编程和不可编程。
80C51并行扩展 I/O口是将 I/O口看作外 RAM的一个存储单元,与外 RAM统一编址,操作时 执行
MOVX指令 和 使用 RD﹑WR 控制信号 。从理论上讲,
扩展 I/O口最多可扩展 64000个 I/O口。
构成 输出口时,接口芯片 应具有锁存功能 ;
构成 输入口时,接口芯片应 具有三态缓冲和锁存功能。
7.4.2,74373扩展输入口 (是 8D三态同相锁存器 )
74373是 8D三态同相锁存器,内部有 8个相同的 D触发器,D0~ D7为其 D输人端; Q0~ Q7为其 Q输出端; G为门控端; OE为输出允许端;加上电源端 Vcc和接地端 GND,
共 20个引脚。
输入 输出
OE G D Q
L H H H
L H L L
L L × 不变
H × × 高阻
DIP封装引脚图和功能表一,典型应用电路
G接高电平,门控始终有效;从 D0~ D7输入的信号能直达 Q0~ Q7输出缓冲器待命;由 80C51的 RD和 P2.7(一般用
P2.0~ P2.7为宜)经过或门与 74373 OE端相连。
用 74373扩展 80C51输入口的优点,
线路简单、价格低廉、编程方便。
IND,MOV DPTR,#7FFFH ;置 373口地址
MOV R0,#30H ;置内 RAM数据存储区首址
IND0,MOVX A,@DPTR ;输入数据
MOV @R0,A ;存数据
INC R0 ;指向下一存储单元
LCALL DLY1s ;调用 1s延时子程序
CJNE R0,#40H,IND0 ;判 16个数据读完否?未完继续
RET ;
【 例 7-4】 按图 7-16,试编制程序,从 373外部每隔
1秒读入一个数据,共 16个数据,存入以 30H为首址的内 RAM。
解:编程如下:
7.4.2,74377扩展输出口
74377为带有 输出允许控制的 8D触发器 。 D0~ D7为 8个 D
触发器的 D输人端; Q0~ Q7是 8个 D触发器的 Q输出端;时钟脉冲输入端 CLK,上升沿触发,8D共用; OE为输出允许端,
低电平有效。当 74377 OE端为低电平,且 CLK端有正脉冲时,
在正脉冲的上升沿,D端信号被 锁存,从相应的 Q端输出。
输入 输出
OE CLK D Q
L × × 不变
L 1 l
L 0 0
× 0 × 不变二,典型应用电路
80C51单片机的 WR和 P2.5分别与 74377 CLK端和输出允许端 OE相接。 P2.5决定 74377地址为 DFFFH。
解:编程如下:
OUTD,MOV DPTR,#0DFFFH ;置 377口地址
MOV R0,#30H ;置内 RAM数据存储区首址
MOV R2,#10H ;置数据长度
OUT1,MOV A,@R0 ;读数据
MOVX @DPTR,A ;输出数据
INC R0 ;指向下一存储单元
DJNZ R2,OUT1 ;判 16个数据输出完否?未完继续
RET ;
【 例 7-5】 按图 7-18,试编制程序,从 74377连续输出 16个数据,输出数据区首址 30H。
7.4.3 扩展总线驱动能力当 P0口总线负载达到或超出 P0口最大负载能力 8个 TTL
门时,必须接入总线驱动器。因 P0口传送数据是双向的,
因此要扩展的数据总线驱动器也必须具有 双向三态功能 。
除双向数据总线外,80C51有可能扩展的还有控制总线中的 WR,RD,PSEN,ALE和 P2口高 8位地址总线,属单向总线。
1.双向总线扩展
(1)74245芯片介绍图 7-19为 74245 DIP封装引脚图、逻辑图和功能表。
74245是 8同相三态双向总线收发器,可双向传输,当片选端 CE低电平有效时,DIR=1,信号从 A B; DIR=0,
信号从 B A。当 CE为高电平时,A,B端均成高阻态。
控制信号 传输方向
CE DIR
L L B A
L H A B
H × 高阻
74245引脚图、逻辑图和功能表
(2)典型应用电路图 7-20为 74245与 80C51连接的典型应用电路。控制 DIR
可用 RD或 WR,片选端 CE直接接地,始终有效。
图 7-20a用 RD控制 DIR,A0~ A7接 P0口,B0~B7接外
RAM或外设。当 RD有效时,DIR=0,数据从 B A,RD无效时,DIR=1,数据从 A B;
图 7-20b用 WR控制 DIR,B0~B7接 P0口,A0~ A7接外
RAM或外设。当 WR有效时,DIR=0,数据从 B A; WR
无效时,DIR=1,数据从 A B。
图 7-20a 图 7-20b扩展 P0口总线
2.单向总线扩展除扩展双向数据总线 P0口外,若需扩展 P2口 (高 8位地址总线,单向 )或 WR,RD,PSEN,ALE等单向控制总线,就不必用 74245,可用 74244。
(1)74LS244芯片介绍图 7.21为 74244 DIP封装引脚图、逻辑图和功能表。 74244是
8同相三态缓冲/驱动器 。片内有二组三态缓冲器,每组 4个,
分别由一个门控端控制。即,第一组:输入,1A1~1A4,输出 1Y1~1Y4;门控端 1 G;第二组:输入 2A1~ 2A4,输出
2Y1~ 2Y4,门控端 2 G。 门控端低电平有效时,输入端信号从输出端输出,门控端信号无效时,输出端呈高阻态。
输入 输出
1G 2G A Y
L L L L
L L H H
H H × 高阻
(2)典型应用电路图 7-22为 74244与 80C51连接的典型应用电路。因这些地址信号或控制信号是单向传输,且不允许锁存,1G,2G
接地始终有效。
a)扩展控制总线 b)扩展 P2口综上所述:
扩展输入口时,用 74373为宜;
扩展输出口时,用 74377为宜;
扩展双向总线时,用 74245为宜;
扩展单向总线时,用 74244为宜;推荐采用
74HC系列芯片。
尚有其 他芯片能起到同样的功能,因价格、使用相对不便等因素不予介绍。
OVER !