第6章 存储器接口 6.1 存储器概述 6.2 半导体存储器 6.3 MCS-51单片机存储器扩展
6.1 存储器概述 返回 1、存储器定义 在微机系统中凡能存储程序和数据的部件统称为存储器。 2、存储器分类 6.1 存储器概述 1、存储器定义 在微机系统中凡能存储程序和数据的部件统称为存储器。 2、存储器分类 微机系统中的存储器分为内存和外存两类。 3、内存储器的组成 微机系统中的存储器由半导体存储器芯片组成。 单片机内部有存储器,当单片机内部的存储器不够用时,可以外扩存储器。外扩的存储器就是由半导体存储器芯片组成的。 当用半导体存储器芯片组成内存时必须满足个要求: ①每个存储单元一定要有8个位。 ②存储单元的个数满足系统要求。 注意:内存的容量是指它所含存储单元的个数(每个存储单元一定要有8个位,可以存储8位二进制信息)。 外存的存储容量大,存取速度慢;它不能直接与CPU交换信息,必须经过内存实现;常用的有硬盘、软盘和光盘。 内存的存储容量有限,存放将要运行的程序和数据,存取速度快,可以直接与CPU交换信息。 返回
6.2 半导体存储器 由于集成工艺水平的限制,一个半导体存储器芯片上所集成的单元个数和每个单元的位数有限,用它构成内存时必须满足:内存容量和一个存储单元有8个位的要求,因此内存常常由多个半导体存储器芯片构成。 半导体存储器芯片的存储容量是指其上所含的基本存储电路的个数,用单元个数×位数表示。 掌握: ① 已知内存容量和半导体存储器芯片的容量,求用半导体存储器芯片构成内存时需要的芯片个数。 ② 内存的容量=末地址—首地址+1 半导体存储器芯片分成ROM和RAM两类。 6.2.1 ROM芯片 6.2.2 RAM芯片 例 例 返回
已知内存容量和半导体存储器芯片的容量,求用半导体存储器芯片构成内存时需要的芯片个数。 由 返回
内存的容量=末地址—首地址+1 由 返回
6.2.1 ROM芯片 1、ROM简介 ROM是只读存储器,ROM中的信息是用写录器写入的,一旦写入,其上的信息就不能随意更改,其内的信息可以由CPU读出,但不能由CPU通过指令写入。 2、ROM特性 ROM具有非易失性,即掉电后其上的信息不消失,常常用于存储程序和固定的数据表格。 3、ROM分类: ①掩膜ROM——其上的程序由厂家用特殊工艺写入,结构简单,集成度高,但成本也高,适用于大批量产生。 ②PROM——出厂时,其上未存任何信息;用户可以用编程器写入,一旦写入其上的程序就不能再更改。 ③EPROM——出厂时,其上未存任何信息;用户可以用编程器写入,也可以用紫外线整片擦除。 ④E2PROM——出厂时,其上未存任何信息;用户可以用编程器写入,也可以用电信号整字节擦除。 4、典型ROM芯片 返回 2764
2764 返回 Intel2764的容量为8K×8,有28个引脚。 各引脚的功能如下: • Al2~A0:地址信号输入引脚,可寻址芯片的8K个存储单元。 • O7~O0: 双向数据信号输入输出引脚。 • CE:片选信号输入引脚,低电平有效,只有当该引脚转入低电平时,才能对相应的芯片进行操作。 • OE:数据输出允许控制信号引脚,输入,低电平有效,用以允许数据输出。 • VPP:+25v电源,用于在专用装置上进行写操作。 • PGM:编程脉冲输入。低电平有效 • Vcc:+5v电源。 • GND:地。 A0 D0 A1 D1 A2 D2 A3 D3 A4 D4 A5 D5 A6 D6 A7 D7 已知芯片容量求芯片数据线和地址线条数。若半导体存储器芯片的容量为a×b,则其数据线条数为b条,地址线条数满足如下关系: 2n=a A8 A9 A10 A11 A12 2764 CE OE VPP PGM 返回
6.2.2 RAM芯片 1、RAM简介 RAM是随机读写存储器,其中的信息由CPU通过指令读写(movx @dptr,a ,movx a,@dptr)。 2、RAM特性 RAM具有易失性,即掉电后其上的信息消失,故用于存储临时性数据。 3、RAM分类: RAM分为2类:双极型和MOS型(MOS型RAM因其集成度高,功耗低,价格便宜而得到广泛应用)。 MOS型RAM又分为SRAM和DRAM。 4、典型RAM芯片 SRAM用MOS型双稳态触发器存储信息,集成度低,接口简单。 DRAM用电容存储信息,集成度高,接口复杂,因为电容上的电荷容易泄漏,所以必须定时充电。 6264 返回
6264 返回 Intel6264的容量为8K×8,有28个引脚。 各引脚的功能如下: • Al2~A0:地址信号输入引脚,可寻址芯片的8K个存储单元。 • D7~D0: 双向数据信号输入输出引脚。 • OE:数据输出允许控制信号引脚,输入,低电平有效,用以允许数据输出。 • WE:数据输入允许控制信号引脚,输入,低电平有效,用以允许数据输入。 • CS1:片选信号输入引脚,低电平有效,只有当该引脚转入低电平时,才能对相应的芯片进行操作。 • CS2:片选信号输入引脚,高电平有效,只有当该引脚转入高电平时,才能对相应的芯片进行操作。 • Vcc:+5v电源,用于在线的读操作。 • GND:地。 A0 D0 A1 D1 A2 D2 A3 D3 A4 D4 A5 D5 A6 D6 A7 D7 A8 A9 A10 A11 A12 6264 WE OE CS1 CS2 返回
6.3 MCS-51单片机存储器扩展 6.3.1 ROM芯片的扩展 6.3.2 RAM芯片的扩展 返回 在微机系统中存储器是必不可少。MCS51系列单片机内部的存储器不够用时需要外扩半导体存储器芯片,外扩的半导体存储器芯片与MCS51系列单片机通过三总线交换信息。二者连接时必须考虑如下问题: 1.二者地址线、数据线、控制线的连接。 2.工作速度的匹配。CPU在取指令和存储器读或写操作时,是有固定时序的,用户要根据这些来确定对存储器存取速度的要求,或在存储器已经确定的情况下,考虑是否需要Tw周期,以及如何实现。 3.片选信号的产生。目前生产的存储器芯片,单片的容量仍然是有限的,通常总是要由许多片才能组成一个存储器,这里就有一个如何产生片选信号的问题。 4.CPU的驱动能力 。在设计CPU芯片时,一般考虑其输出线的直流负载能力,为带一个TTL负载。现在的存储器一般都为MOS电路,直流负载很小,主要的负载是电容负载,故在小型系统中,CPU是可以直接与存储器相连的,而较大的系统中,若CPU的负载能力不能满足要求,可以(就要考虑CPU能否带得动,需要时就要加上缓冲器,)由缓冲器的输出再带负载。 6.3.1 ROM芯片的扩展 6.3.2 RAM芯片的扩展 返回
例1 某微机系统只有一片2764,试将其与8051进行连接。 例2 用2764构成16K的存储系统,试将它们与8051进行连接。 6.3.1 ROM芯片的扩展 在MCS-51单片机应用系统中,如果单片机内部程序存储器不够用时,特别是对片内无ROM的8031单片机,外扩程序存储器是必不可少的工作。程序存储器容量的扩展可根据实际需要在64KB范围内选择。 单片机扩展用程序存储器有紫外光可擦除型(EPROM)、电擦除型(EEPROM)和闪速存储器FLASH等。EPROM价格低廉,性能稳定可靠,所以,一般程序存储器的扩展均采用之。 在进行程序存储器扩展时,首先应根据应用系统的要求,选择使用何种类型的芯片作程序存储器芯片;其次,在存储器容量选择时,应尽量选择大容量的芯片,即使用一片存储器芯片能够满足要求的,尽量不使用多片,从而减少芯片的组合数量。当必须选用多芯片时,也应选择集成度相同的芯片,以便简化系统的应用电路。 例1 某微机系统只有一片2764,试将其与8051进行连接。 例2 用2764构成16K的存储系统,试将它们与8051进行连接。 返回
例1 某微机系统只有一片2764,试将其与8051进行连接。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 P2.2 AB0 P2.3 P2.4 AB12 P2.5 P2.6 P2.7 CB AB15 PSEN WR RD ①将芯片的13位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低13位。 ②将芯片的8位数据线依次接至系统数据总线的O0-O7。 ③芯片的OE端接至系统控制总线的存储器读信号(PSEN) ④因为系统中只有1片2764,所以2764的CE可以接地。 ~ ~ O7 ~ O0 A12 ~ A0 CE OE 2764 VPP PGM 地址码的计算 返回
DB AB CB 返回 0000H---1FFFH 地址码的计算 AB0 AB12 AB0 AB12 AB15 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 P2.2 AB0 P2.3 P2.4 AB12 P2.5 P2.6 P2.7 CB AB15 PSEN WR 89C51从2764中读取信息的过程: ①89C51发地址码 P00—P07------AB-----2764的A0—A7 ALE=1 P20—P27------AB------2764的A8—A12 ②89C51发读ROM信号 PSEN=0—CB----2764的OE ③2764将选中单元的内容送出----DB---89C051的P00---P07 RD ~ ~ O7 ~ O0 A12 ~ A0 CE OE 2764 VPP PGM 计算2764每个单元的地址(8051送出何种地址码时选中该单元) P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 * * * 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ * * * 1 1 1 1 1 1 1 1 1 1 1 1 1 0000H---1FFFH 返回
例2 用2764构成16K的存储系统,试将它们与8051进行连接。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 AB0 AB0 P2.3 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD 2764的容量是8K*8,1片2764上有8K个存储单元,每个存储单元有8个基本存储电路,能存放8位二进制信息,可以满足位数的要求,但是1片2764上有8K个存储单元,为了满足内存的容量的要求,需要2片2764串联使用,即2片2764不能同时被选中。因为2片2764的的数据线都接在8位DB上,当二者同时被选中时,会出现争占DB的现象。这时,需要考虑片选问题。 ~ ~ ~ ~ O7 ~ O0 A12 ~ A0 CE OE O7 ~ O0 A12 ~ A0 CE OE 2764 2764 VPP PGM VPP PGM 返回
片选信号的产生方法有3种:线选法、部分译码法和全译码法。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 AB0 AB0 P2.3 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD ~ ~ ~ ~ O7 ~ O0 A12 ~ A0 CE OE O7 ~ O0 A12 ~ A0 CE OE 2764 2764 VPP PGM VPP PGM 返回
线选法 DB AB CB 返回 0400H---5FFFH 8000H---9FFFH 线选法就是用剩余的高位地址线作片选信号。 线选法有2个缺点:其一是各芯片的地址不连续,其二是有一些地址不能使用,否则会造成片选的混乱(有地址重叠现象,即一个存储单元有多个地址码)。 DB P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 0 1 * 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ 0 1 * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 * 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 * 1 1 1 1 1 1 1 1 1 1 1 1 1 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 P2.3 AB0 AB0 P2.4 AB12 P2.5 AB14 P2.6 AB15 CB P2.7 AB15 PSEN WR RD ~ ~ ~ ~ O7 ~ O0 A12 ~ A0 CE OE O7 ~ O0 A12 ~ A0 CE OE 2764 2764 VPP PGM VPP PGM 返回 0400H---5FFFH 8000H---9FFFH
全译码法 返回 DB AB CB 0000H---1FFFH 2000H---3FFFH 全译码法就是剩余的全部地址线都参与译码,译码器的输出作为片选信号。因为译码器在某一时刻只有1条输出线有效,保证了在某一时刻只有1个芯片被选中的要求。 全译码法则没有地址重叠现象,即各存储单元的地址码唯一。 DB P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 74LS373 AB0 74LS138 74LS139 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 P2.3 AB0 AB0 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD +5V 74LS138 G1 Y0 ~ ~ ~ ~ Y1 G2A O7 ~ O0 A12 ~ A0 CE OE O7 ~ O0 A12 ~ A0 CE OE Y2 G2B Y3 2764 2764 Y4 AB15 Y5 VPP PGM VPP PGM C Y6 AB14 B Y7 AB13 A 0000H---1FFFH 2000H---3FFFH
74LS138 74LSl38具有三个输入选择端,能够组合成8种输入状态,对应8种输出,可产生8个片选信号,低电平有效。也就是说,每种输入状态,仅允许一个输出端输出低电平,其余输出端全部为高电平。同时,74LS138还具有3个使能端G1、G2A、G2B,3个使能端必须同时输入有效电平,译码器才能正常工作,即仅当G1、G2A、G2B=100时,才能选通译码器,否则译码器输出全无效。 73LS138译码器的逻辑功能真值表 输 入 输 出 使 能 选 择 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B CBA 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 X X X 1 X X X 1 X X X 74LS138 G1 Y0 Y1 G2A Y2 G2B Y3 Y4 Y5 C Y6 B Y7 A 返回
例1 某微机系统只有一片6264,试将其与8051进行连接。 例2 用6264构成16K的存储系统,试将它们与8051进行连接。 6.3.2 RAM芯片的扩展 由于8051单片机芯片内部仅有128B的RAM,需要作为工作寄存器、堆栈和数据缓冲器使用,当控制系统需要暂存的数据量较大时,片内RAM往往不够用,因此需要进行片外数据存储器的扩展。MCS-51系列单片机数据存储器的扩展能力最大可达64KB。 在一般的数据存储器扩展中,常选用静态数据存储器芯片(SRAM)作为外扩数据存储器使用,SRAM具有存取速度快、使用方便、不需要刷新电路,接口简单等特点,但系统一旦掉电,内部所存数据便会丢失。 例1 某微机系统只有一片6264,试将其与8051进行连接。 例2 用6264构成16K的存储系统,试将它们与8051进行连接。 例3 某微机系统有一片6264、一片2764,试将它们与8051进行连接。 返回
例1 某微机系统只有一片6264,试将其与8051进行连接。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 P2.2 AB0 P2.3 P2.4 AB12 P2.5 P2.6 P2.7 CB AB15 PSEN WR RD ①将芯片的13位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低13位。 ②将芯片的8位数据线依次接至系统数据总线的D0-D7。 ③芯片的OE端接至系统控制总线的存储器读信号(RD) ④芯片的WE端接至系统控制总线的存储器写信号(WR) ⑤因为系统中只有1片6264,所以6264的CS1可以接地。 ~ ~ D7 ~ D0 A12 ~ A0 CS1 OE WE 6264 CS2 +5V 地址码的计算 返回
DB AB CB 返回 0000H---1FFFH 地址码的计算 AB0 89C51向6264中写入信息的过程: 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 89C51向6264中写入信息的过程: ①89C51发地址码 P00—P07------AB-----2764的A0—A7 ALE=1 P20—P27------AB------2764的A8—A12 ②89C51发写RAM信号 WR=0—CB----6264的WE ③89C51送出数据----DB-----6264将选中单元 ALE LE OE P2.0 P2.1 AB12 P2.2 AB0 P2.3 P2.4 AB12 P2.5 P2.6 P2.7 CB AB15 PSEN WR 89C51从6264中读取信息的过程: ①89C51发地址码 P00—P07------AB-----2764的A0—A7 ALE=1 P20—P27------AB------2764的A8—A12 ②89C51发读RAM信号 RD=0—CB----6264的OE ③6264将选中单元的内容送出----DB---89C051的P00---P07 RD ~ ~ D7 ~ D0 A12 ~ A0 CS1 OE WE 6264 CS2 计算6264每个单元的地址(8051送出何种地址码时选中该单元) P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 * * * 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ * * * 1 1 1 1 1 1 1 1 1 1 1 1 1 +5V 0000H---1FFFH 返回
例2 用6264构成16K的存储系统,试将它们与8051进行连接。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 AB0 AB0 P2.3 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD 6264的容量是8K*8,1片6264上有8K个存储单元,每个存储单元有8个基本存储电路,能存放8位二进制信息,可以满足位数的要求,但是1片6264上有8K个存储单元,为了满足内存的容量的要求,需要2片6264串联使用,即2片6264不能同时被选中。因为2片6264的的数据线都接在8位DB上,当二者同时被选中时,会出现争占DB的现象。这时,需要考虑片选问题。 ~ ~ ~ ~ D7 ~ D0 A12 ~ A0 CS OE WE D7 ~ D0 A12 ~ A0 CS OE WE 6264 6264 CS2 CS2 +5V +5V 返回
片选信号的产生方法有3种:线选法、部分译码法和全译码法。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 AB0 AB0 P2.3 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD ~ ~ ~ ~ D7 ~ D0 A12 ~ A0 CS OE WE D7 ~ D0 A12 ~ A0 CS OE WE 6264 6264 CS2 CS2 返回 +5V +5V
线选法 DB AB CB 返回 0400H---5FFFH 8000H---9FFFH 线选法就是用剩余的高位地址线作片选信号。 线选法有2个缺点:其一是各芯片的地址不连续,其二是有一些地址不能使用,否则会造成片选的混乱(有地址重叠现象,即一个存储单元有多个地址码)。 DB P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 0 1 * 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ 0 1 * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 * 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 * 1 1 1 1 1 1 1 1 1 1 1 1 1 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 P2.3 AB0 AB0 P2.4 AB12 P2.5 AB14 P2.6 AB15 CB P2.7 AB15 PSEN WR RD ~ ~ ~ ~ D7 ~ D0 A12 ~ A0 CS OE WE D7 ~ D0 A12 ~ A0 CS OE WE 6264 6264 CS2 CS2 返回 +5V 0400H---5FFFH +5V 8000H---9FFFH
全译码法 返回 DB AB CB 0000H---1FFFH 2000H---3FFFH 全译码法就是剩余的全部地址线都参与译码,译码器的输出作为片选信号。因为译码器在某一时刻只有1条输出线有效,保证了在某一时刻只有1个芯片被选中的要求。 全译码法则没有地址重叠现象,即各存储单元的地址码唯一。 DB P27 P26 P25 P24 P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 AB15AB14 AB13 AB12 AB11 AB10 AB9 AB8 AB7 AB6 AB5 AB4 AB3 AB2 AB1 AB0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 P2.3 AB0 AB0 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD +5V 74LS138 G1 Y0 ~ ~ ~ ~ Y1 G2A D7 ~ D0 A12 ~ A0 CS OE WE D7 ~ D0 A12 ~ A0 CS OE WE Y2 G2B Y3 6264 6264 Y4 Y5 CS2 CS2 AB15 C Y6 AB14 B Y7 AB13 A +5V 0000H---1FFFH +5V 2000H---3FFFH
例3 某微机系统有一片6264、一片2764,试将它们与8051进行连接。 例3 某微机系统有一片6264、一片2764,试将它们与8051进行连接。 DB 74LS373 AB0 P0.0 D0 A0 P0.1 D1 A1 P0.2 D2 A2 P0.3 D3 A3 P0.4 D4 A4 P0.5 D5 A5 P0.6 D6 A6 P0.7 D7 A7 AB 89C51 ALE LE OE P2.0 P2.1 AB12 AB12 P2.2 AB0 AB0 P2.3 P2.4 AB12 P2.5 P2.6 CB P2.7 AB15 PSEN WR RD ~ ~ ~ ~ D7 ~ D0 A12 ~ A0 CE OE D7 ~ D0 A12 ~ A0 CS OE WE 因为8051通过控制线区分ROM和RAM ,所以二者可以同时被选中,地址可以重叠。该系统中的2764和6264的片选可以不受控,直接接地。 注意:在访问程序存储器时,所用的指令为MOVC,产生PSEN信号。访问外扩数据存储器时,所用的指令为MOVX,产生WR或RD信号!! 2764 6264 CS2 +5V 返回
单片机三总线形成示意图 DB ALE 锁 存 器 P0 AB P2 CB PSEN RD WR 存储器 I/O口 P1 外设 返回