当前位置:文档之家› 存储器系统设计

存储器系统设计

8 P2 8031 1Q~8Q A0~A7 A8~A14 27256 Q0~Q8 8

ALE
CE
OE
A0~A7 A8~A14 62256 D0~D7
CE
OE
G 373 1D~8D 8
P0
PSEN
WR
RD
系统的EPROM(27256)0000~7FFFH(管理仿真系统的程序),系统的仿 真ROM和数据存储器为8000~FFFFH。当执行系统的管理程序时, 27256有效(尽管有效 PSEN ,但地址不对),62256无效,当执行自己 编的仿真程序时,系统转向62256中执行你输入的程序,当遇到MOVX
ALE
8
2764
2764
2764
P0
PSEN
P2.6 0 0 1 P2.5 0 1 0 /Y0 /Y1 /Y2 0 1 1 0000-1FFFH (8000H-9FFFH) 括号内 1 0 1 2000-3FFFH(A000H-BFFFH) 为重叠 1 1 0 4000-5FFFFH(C000H-DFFFH) 区!
74LS138的真值表
输出有效时,只有一个为低电平,其余为高电平,故用其来接被选的芯片时, 只有一个被选中。保持芯片之间地址的不重叠。(74LS139的介绍见书P158)
5.2.3 程序存储器扩展设计
(1)扩展16KB EPROM(线选法用单片机地址总线高位地址作为选择某 一存贮器的片选信号)。
;将最后一个字节数据取出 ;原始数据比较,陷入死循环! ;最高位不同,再查!
地址 输出
指令 输入
PCL 输出
指令 输入
PCL 输出
P2口输出程序存储器的高8位地址PCH(A15~A8),具有锁存功能。 P0口地址/数据复用线,在ALE上升为高电平时,P0口输出程序存储 器的低8位地址(A7~A0),在ALE的下降沿,把A7~A0锁存到外部地 址锁存器中,得到地址信号,接着,P0口由输出变为输入,高8位地 址不变(低8位已锁存),故已选定外部ROM的某一个地址,随即 PSEN 低电平有效,外部ROM通,对应地址单元中的指令字节出现在数据 总线上供CPU读取。
从P0口地址/数据复用线中分离出地址来。
地址译码器 为什么要用地址译码器:CPU给出一个地址,对应的存储器中有一个 存储器单元与其唯一的对应。通常存储器有多片组成,因此,要对存储器 芯片地址进行编址。 分两个层次:(1) 某个存储芯片的选择片选(8K/片8片64K) (2) 被选中的存储芯片内部存储单元的选择字选。 地址不能重叠,一般就要用译码器的功能。
第5章 存储器系统设计
5.1 MCS-51存储器系统配置
内部4K, 0000 ~ 0FFFH 8051 / 8751 外部64K0000 ~ FFFFH 程序存储器(ROM) 0000 ~ FFFFH , EA 0 8031外部64K,
EA 1内部 重叠部分由EA区分 EA 0 外部
00H ~ 7FH 内部128字节, 数据存储器(RAM) 0000 ~ FFFFH 外部 64K,
5.2 程序存储器扩展设计
外部程序存储器操作时序
S1
振荡周期 一个机器周期
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
H
PCH
PCH
PCL 输出
指令 输入
0000~0FFFH(4KB) 8000~9FFFH(8KB) 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH
写入16字节数据的子程序,入口参数:
DPTR:指向RAM数据区首址;
R7: 写入字节数(10H)
R0: E2PROM地址低8位
P2: E2PROM地址高8位
2.扩展24KB EPROM(部分地址译码)用译码对单片机的高位地址线 进行译码,以译码器的输出作为某一存储器的片选信号。
74LS139
B
A
Y2
Y1 Y0
P2.6 P2.5 P2.4~P2.0
5
8031
G 74LS373
A0~A7 A8~A12 Q0~Q7 / OE A0~A7 A8~A12 Q0~Q7 / OE A0~A7 A8~A12 Q0~Q7 / OE
EA
8051 P0 口
8 A7~A0 6116 8
G ALE
D0~D7
OE WE
6116 的 片 选端 CE 接地,为 常选状态, 地 址 为 0000~07F FH
RD
WR
• 2. 8031扩展32KB EPROM和32KB RAM
8 P2 7
8031
8 1Q~7Q ALE A0~A7 A8~A14 CE A0~A7 A8~A14 CE
第一个机器周期
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
PSEN
RD / WR
P2
PCH输出
DPH或P 输出 2
PCH
P0
PCL 输出
指令 输入
地址 输出
数据输出 (输入)
PCL 输出
第二周期:第一个ALE信号丢失,若执行的是读指令(MOVX A,@DPTR),P0口由输出变为输入,随即 RD为低电平有效。外部数据 存储器被选通。相应存储单元内容出现在P0口上供CPU读入累加器中, 若执行的是写指令(MOVX @DPTR,A),此时 W R为低电平有效。被写的 数据出现在P0口,并在 W R结束之前一直保持不变,写入相应的外部数 PSEN有效,读的内容丢弃。 据存储器单元。第二个ALE锁存的地址,
WR16:MOVX MOV MOVX INC INC CJNE INC NEXT: DJNZ DEC CNECK:MOVX XRL JB RET
A,@DPTR R4,A @R0,A DPTR R0 R0,#00H,NEXT P2 R7,WR16 R0 A,@ R0 A,R4 ACC.7,CHECK
2. 电可擦可编程只读存储器E2PROM 读写的操作同SRAM,掉电后,数据保存,不会丢失。注意 它不是做程序存储器用!
5.3.3 数据存储器扩展设计
1. 8051扩展2KB静态RAM,8051内部有ROM,用地址线扩展2KB RAM。
5V Vcc P2 3 373 1D~8D 1Q~8Q
CE A10~A8
W E, RD有效。 之类的指令时,
4. 8051扩展8KBE2PROM(ROM和RAM合并)
P2.7 5V

P2 P0
5
A12~A8 373
A0~A7
CE
2864
ALE
I/O0~I/O7
PSEN RD WR
OE WE
内部ROM: 外部ROM,RAM: 重叠区: 10 1010 1100 1110
G 373
1D~7D
27256
Q0~Q7
OE
WE
62256
D0~D7
OE
P0
PSEN
8
WR
RD
程序存储器 CE 接地,常选0000~7FFFH, PSEN 有效,数据存 W E, 储器0000~7FFFH, RD 有效,地址重叠,但不会冲突。
3. 程序存储器空间和数据存储器空间的合并(哈佛结构:两个存储器在逻 辑上完全独立,是由于执行不同的指令时,由硬件产生不同的选信号, 从而选通两个不同的逻辑空间)。单片机仿真系统就是采用这种合并 后的一维线性空间,因为程序存放在EPROM中,就无法对EPROM中 的程序进行在线修改,如果把程序存放在RAM中,一面调试一面修改, 方便。 P2.7
P 如果 CE 接地,系统 只能接1片 ROM P2.7 6
CE
P2
8031 P0 74LS373
A13~A8 27128 8
A7~ A0
Q0~Q7
OE
ALE
PSEN
27128128/8=16K2102414根地址线A0~A13,片内地址由P2.5~P2.0, P0.7~P0.0决定。该片由P2.7选中,存在重叠区域4000~7FFFH(但芯片内地址 不存在,但无关紧要),而且存在地址禁区!(0000~3FFFH)不可能扩展2块。
3. 扩展64KB EPROM(全地址译码)
P2.7 (A15) 0 0 P2.6 (A14) 0 0 P2.5 (A13) 0 1 0000~1FFFH 2000~3FFFH 地址空间
0
0 1 1 1 1
1
1 0 0 1 1
0
1 0 1 0 1
4000~5FFFH
6000~7FFFH 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH
64KB/8=8KB/根译码线。译码器的输出是互异的,每次只能选中一 个存储器芯片,不会出现地址竞争(地址竞争是几片同类型存储器占用同 一段地址,当CPU从该空间取数时,它们将同时向数据总线提供数据, 导致读取出错)。
5.3 数据存储器扩展设计
执行:MOVX A,@DPTR( 或MOVX @DPTR,A) MOVX A,@Ri (或MOVX @Ri,A) CPU访问外部数据存储器时,ALE信号少出现一次,地址数 据输出后经过悬浮(高阻)状态后,才能进入数据输入或输出状态! 第一周期:P2口输出地址的高8位,P2口输出地址的低8位。ALE下 降沿将低8位地址锁存到外部地址锁存器。随即 PSEN 低电平有效。P0口 由输出变为输入,对应选 中的存储单元中的指令出现在P0口,由CPU 读取。经CPU译码后,知道是对外部数据存储器的操作。随后,P2口输 出外部数据存储器地址的高8位,P0口输出外部数据存储器的低8位。由 PSEN 一直为高电平无效(PSEN ALE锁存,由于是与外部数据存储器打交道。 信号线接EPROM的 OE 端,选通的是程序存储器!)
相关主题