第8章 STC89C52单片机存储器扩展
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tankertanker Design
扩展的片外RAM 的最大容量也为64KB,地址为0000H ~FFFFH。但由于STC89C52采用不同的控制信号和指令( CPU对ROM的读操作由PSEN控制,指令用MOVC类;CPU对RAM 读、写操作分别用 RD 和 WR 控制,指令用MOVX),所以, 尽管ROM与RAM的地址是重叠的,也不会发生混乱。
Tankertanker Design
第八章 STC89C52单片机存储器的扩展
8.1 系统扩展结构 8.2 地址锁存与地址空间分配 8.3 程序存储器的扩展 8.4 数据存储器的扩展 8.5 EPROM和RAM的综合扩展
Tankertanker Design
8.1 系统扩展结构
为减少连接线,简化组成结构,可把具有共性的连线归并成 一组公共连线,即总线——传送信息的公共通道(BUS)。
Tankertanker Design
•
本书讲解时把单片机系统的地址线笼统地分为低位地 址线和高位地址线,片选都是使用高位地址线。实际上, 16条地址线中的高、低位地址线的数目并不是固定的,只 是习惯上把用于 “单元选择”的地址线,都称为低位地 址线,其余的为高位地址线。
Tankertanker Design
STC89C52单片机的存储器扩展即包括程序存储 器扩展又包括数据存储器扩展。AT89S51单片 机采用程序存储器空间和数据存储器空间截然 分开的哈佛结构。扩展后,系统形成了两个并 行的外部存储器空间。
Tankertanker Design
数据总线——P0口 地址总线——P0+P2 控制总线——P3口+控制引脚
Tankertanker Design
8.3 程序存储器的扩展 外部程序存储器的种类单一,常采用只读存储器。只 读存储器简称ROM(Read Only Memory)。ROM中的信息一 旦写入,就不能随意更改,特别是不能在程序运行过程中 写入新的内容。ROM在电源关断后,仍能保存程序(我们 称此特性为非易失性的),在系统上电后,CPU可取出这 些指令重新执行。 向ROM中写入信息称为ROM编程。根据编程方式不同 ,分为以下几种。
总线方式
总线方式——采用片外RAM 指令访问外设
例如:MOVX A, @DPTR (片外RAM 0~0FFFFH)
I/O口方式(wenku.baidu.com总线方式 )
I/O口方式——采用片内RAM 指令访问外设
例如:MOV A,P0
STC89C52单片机没有专用总线引脚,而是采用了I/O引脚兼 作总线引脚的方案。
Tankertanker Design
Tankertanker Design
(1)掩模ROM。在制造过程中编程,是以掩模工艺实现的,因此称为掩 模ROM。这种芯片存储结构简单,集成度高,但由于掩模工艺成本较 高,因此只适合于大批量生产。 (2)可编程ROM(PROM)。芯片出厂时没有任何程序信息,用独立的编 程器写入。但PROM只能写一次,写入内容后,就不能再修改。 (3)EPROM。用紫外线擦除,用电信号编程。在芯片外壳的中间位置有 一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息。使用编程 器可将调试完毕的程序写入。 (4)E2PROM(EEPROM)。一种用电信号编程,也用电信号擦除的ROM芯 片。对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入 的速度慢一些,但断电后仍能保存信息。
Tankertanker Design
STC89C52单片机P0口与74LS373的连接
Tankertanker Design
2.锁存器74LS573 是一种带有三态门的 8D锁存器,功能及内部结 构与74LS373完全一样,只 是其引脚排列与74LS373不 同。与74LS373相比, 74LS573的输入D端和输出Q 端依次排列在芯片两侧, 为绘制印制电路板提供方 便。
Tankertanker Design
•
由于超大规模集成电路制造工艺的发展,芯片集成 度愈来愈高,扩展程序存储器时使用的ROM芯片数量越来 越少,因此芯片的选择多采用线选法,而地址译码法用的 渐少。并且目前许多单片机生产厂家生产的8051内核的单 片机,在芯片内部集成了数量不等的Flash ROM,如 STC89C51RC/RD+系列单片机内部集成了8KB~64KB的Flash ROM,能满足绝大多数用户的需要,性价比高。
Tankertanker Design
2.译码法---适合于多芯片扩展. 使用译码器对AT89S51单片机的高位地址进行译码,译 码输出作为存储器芯片的片选信号。 译码法的优点是能够有效地利用存储器空间. 常用的译码器芯片有74LS138、74LS139和74LS154。若 全部高位地址线都参加译码,称为全译码;若仅部分高位 地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。 (1)74LS138 3线-8线译码器,有3个数据输入端,经译码产生8种 状态。
•
在片内集成的Flash ROM满足要求的情况下 ,用户没有必要再扩展外部程序存储器。
Tankertanker Design
8.3.1 外扩程序存储器的操作时序 STC89C52单片机访问片外扩展的程序存储器时,所用 的控制信号有以下3种。 1.ALE :用于低8位地址锁存控制。 2.PSEN :片外程序存储器“读选通”控制信号。它接 外扩EPROM的引脚。 3. EA :片内、片外程序存储器访问的控制信号。当 EA =1时,在单片机发出的地址小于片内程序存储器最大地址 时,访问片内程序存储器;当 EA=0时,只访问片外程序 存储器。
Tankertanker Design
(5)Flash ROM。 又称闪速存储器(简称闪存),是在
EPROM、E2PROM的基础上发展起来的一种电擦除型只读存
储器。特点是可快速在线修改其存储单元中的数据,改写 次数可达1万次,其读写速度很快,存取时间可达70ns,
而成本比E2PROM低得多,大有取代E2PROM的趋势。
Tankertanker Design
当一个选通端为G1为高电平,且 另外两个选通端 G2A和 G2B 为低电平时, 可将输入端C、B、A的二进制编码在一 个对应的引脚输出端以低电平译出,其 余引脚输出均为高电平。此时,可将输 出为低电平的引脚作为某一存储器芯片 的片选信号。
138真值表
Tankertanker Design
Tankertanker Design
•
Y7 在本例中,如果将 接到一片6116,芯片容量只有 2KB,那么E000H~E7FFH,E800H~EFFFH,F000H~F7FFH ,F800H~FFFFH这4个2KB空间都对应6116芯片,也就是 说,即使采用全地址译码法,也仍然会有地址重叠现象 。 采用译码器划分的地址空间块都是相等的,如果将地 址空间块划分为不等的块,可采用可编程逻辑器件FPGA 对其编程来代替译码器进行非线性译码。
EA
使用的控制信号如下: PSEN作为外扩程序存储器的 读选通控制信号。 WR 和 RD为外扩数据存储器和 I/O的读、写选通控制信号。 ALE作为P0口发出的低8位地址 锁存控制信号。 EA 为片内外程序存储器的选择 控制信号。
STC89C52为减少引脚数量,采用了复用P0口方案,即P0口兼作数据 线和低8位地址线,为了将地址和数据信息区分开来,需要在P0口外 部增加地址锁存器,即将地址信息的低8位锁存后输出。
Tankertanker Design
8.2.2 地址空间分配 实际系统设计中,既需要扩展程序存储器,又需要 扩展数据存储器,如何把片外的两个64KB地址空间分配 给各个程序存储器、数据存储器芯片,使一个存储单元 只对应一个地址,避免单片机发出一个地址时,同时访 问两个单元,发生数据冲突。这就是存储器地址空间分 配问题。 STC89C52单片机发出的地址码用于选择某个存储 器单元,在这个过程中单片机必须进行两种选择:一是 选中该存储器芯片,称为“片选”,未被选中的芯片不 能被访问。二是在“片选”的基础上再根据单片机发出 的地址码来对“选中” 芯片的某一单元进行访问,即 “单元选择”。为实现片选,存储器芯片都有片选引脚。 同时也都有多条地址线引脚,以便进行单元选择。注意, “片选”和“单元选择”都是单片机通过地址线一次发 出的地址信号来完成选择的。
常用的存储器地址空间分配方法有两种:线性选择法
(简称线选法)和地址译码法(简称译码法)。 1.线选法----一般只适用于外扩少量的片外存储器和 I/O接口芯片。 线选法是指直接利用单片机系统的某一高位地址线 作为存储器芯片(或I/O接口芯片)的“片选”控制信 号。为此,只需要把用到的高位地址线与存储器芯片 的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译 码器硬件电路,体积小,成本低。缺点是可寻址的芯 片数目受到限制,芯片之间地址不连续,地址空间没 有充分利用。
Tankertanker Design
STC89C52RC的4个并行I/O口,由于系 统扩展的需要,能够真正作为数字I/O使用 ,就剩下P1和P3的部分口线了。
Tankertanker Design
8.2 地址锁存与地址空间分配 8.2.1 地址锁存 目前,常用的地址锁存器芯片有74LS373、 74HC373,74LS573等。在每个机器周期,ALE两次有效, 可以利用地址锁存器在ALE的下降沿将P0口输出的地址信 息锁存,当ALE转为低电平时,P0输出8位数据信息。 1.锁存器74LS373----带有三态输出门的8D触发器
跳变时,数据锁存到锁存器中。
74LS373的引脚 373功能表
• OE :数据输出允许信号,低电平 有效。当该信号为低电平时,三 态门打开,锁存器中数据输出到 数据输出线。当该信号为高电平 时,输出线为高阻态。
Tankertanker Design
373的工作过程: 1、P0口先将低8位地址信号锁 存在373中; 2、373的输出端与输入端(P0 口)隔离; 3、P0口输出8位数据信号+ P2口输出高8位地址信号+ 373输出低8位地址信号 →同时产生16位地址信号 +8位数据信号
STC89C52单片机属于总线型结构,片内各功能部件都是 按总线关系设计并集成为整体的。 三总线:地址总线(AB) 、数据总线(DB)、控制总线(CB). 单片机系统扩展主要包括存储器扩展和I/O接口部件扩展。
Tankertanker Design
第8章 单片机接口技术
STC89C52单片机与外部设备连接有两种方式:
(2)74LS139 双2线-4线译码器。这两个译码器完全独立,分别有各自的 数据输入端、译码状态输出端以及数据输入允许。
Tankertanker Design
例:若需外扩8片8KB的RAM 6264,如何通过74LS138把64KB 全地址译码, 空间分配给各个芯片? 地址有重叠吗?
P2.7、P2.6、P2.5(高3位地址线)分别接74LS138的C、B、A端,由 于对高3位地址译码,这样译码器有8个输出分别接到8片6264的各 “片选” 端,实现8选1的片选。 低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的6264芯片中的 各个存储单元的“单元选择”。
Tankertanker Design
STC89C52对片外ROM的操作时序分两种,即执行非MOVX指 令的时序和执行MOVX指令的时序。 1.应用系统无片外RAM P0口作为地址/数据复用的双向总线,用于输入指令或 输出程序存储器的低8位地址PCL。 P2口专门用于输出程序存储器的高8位地址PCH。P0口分 时复用,故首先要将P0口输出的低8位地址PCL锁存在锁存器 中,然后P0口再作为数据口。在每个机器周期中,允许地址 锁存两次有效,ALE在下降沿时,将P0口的低8位地址PCL锁 存在锁存器中。
Tankertanker Design
导通 锁存 隔离
结构:内部由8路D触发器和8个三态缓冲器组成。 原理:/OE端为低电平时,D端信号在 G端正脉冲作用下实 现“接通-锁存-隔离”功能。
引脚说明:
Tankertanker Design
• D7~D0:8位数据输入线, • Q7~Q0:8位数据输出线。 • G:数据输入锁存选通信号。当 加到该引脚的信号为高电平时, 外部数据选通到内部锁存器,负