程序存储器扩展_第1页
程序存储器扩展_第2页
程序存储器扩展_第3页
程序存储器扩展_第4页
程序存储器扩展_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.3存储器扩展一、

存储器概述2/6/20231青岛大学机电学院单片机内部集成了计算机的基本功能部件,因而一块单片机(如8051/8751)往往就是一个最小微机系统。MCS-51系列单片机具有很强的系统扩展能力,可以扩展64KB的程序存储器和64KB的数据存储器或输入输出口。2/6/20232青岛大学机电学院单片机是集CPU、RAM、ROM、定时器/计数器和I/O接口电路于一片集成电路的微型计算机。对于简单的应用场合,可以在MCS-51系列单片机中选择一个合适的产品构成一个具有最简单配置的系统,即最小系统。MCS-51系列中含有片内程序存储器的单片机如8051/8751仅一块芯片就可构成最小系统,而无片内存储器的单片机如8031必须外部扩展程序存储器才能构成最小系统。2/6/20233青岛大学机电学院单片机型号片内程序存储器类型容量/B8031

—8051

ROM4K8751

EPROM

4K8951

Flash

4K2/6/20234青岛大学机电学院1、单片机最小系统无ROM芯片:8031必须扩展ROM,复位、晶振电路有ROM芯片:89c51等,不必扩展ROM,只要有复位、晶振电路使单片机能运行的最少器件构成的系统。2/6/20235青岛大学机电学院图8051/8751最小应用系统2/6/20236青岛大学机电学院2.8031最小应用系统

8031是片内无程序存储器的单片机芯片,因此,其最小应用系统应在片外扩展EPROM。图6-2为用8031外接程序存储器构成的最小系统。2/6/20237青岛大学机电学院图8031最小应用系统返回本节2/6/20238青岛大学机电学院当单片机最小应用系统不能满足实际应用系统要求时,需要在单片机外部连接相应的外围芯片以满足应用系统要求。MCS-51系列单片机有很强的外部扩展功能,大部分常规芯片可用于其外围扩展电路中。扩展的内容主要有总线、程序存储器、数据存储器、I/O口扩展等。2、MCS-51三总线的扩展2/6/20239青岛大学机电学院地址总线:P0-低8位

P2-高8位数据总线:P0控制总线:RD、WR、ALE、PSEN

(读、写、地址锁存允许、外程序存储器读选通)扩展使用的三总线2/6/202310青岛大学机电学院扩展总线的产生。一般的CPU,像INTEL8086/8088、Z80等,都有单独的地址总线、数据总线和控制总线,而MCS-51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构。2/6/202311青岛大学机电学院1.地址总线(AB)

MCS-51系列单片机地址总线宽为16位,所以可寻址范围为216=64KB。

16位地址总线由P0口提供低8位A0-A7,P2口提供高8位A8-A15。由于P0口还要作数据总线,只能分时用作低8位地址线,所以P0输出的低8位地址必须用锁存器锁存。锁存器的锁存控制信号为ALE输出信号。P2口具有输出锁存功能,所以不需外加锁存器。2/6/202312青岛大学机电学院2.数据总线(DB)

数据总线由P0口提供,其宽度为8位,用于单片机与外部存储器和I/O设备之间传送数据。P0口为三态双向口,可以进行两个方向的数据传送。3.控制总线(CB)

由P3口提供。2/6/202313青岛大学机电学院MCS-51单片机的总线结构P2口作地址高8位A0~A7A8~A15DB地址锁存器P2ALEP0PSEN(P3.6)WR(P3.7)RDEA80C51CBABPSEN是片外程序存储器读选通信号;RD、WR是片外数据存储器读、写信号;EA用来选择片内/片外程序存储器。P0口作地址/数据线,分时复用,ALE控制锁存器锁存地址信号。2/6/202314青岛大学机电学院8051的扩展三总线2/6/202315青岛大学机电学院地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCCP0.0P0.1P0.2P0.3P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2图

MCS-51片外总线结构示意图2/6/202316青岛大学机电学院扩展程序存储器地址范围的确定。单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64KB(0000H~FFFFH)。决定存储器芯片地址范围的因素有两个:一个是片选端的连接方法,一个是存储器芯片的地址线与单片机地址线的连接。在确定地址范围时,必须保证片选端为低电平。本例中,2732的片选端总是接地,因此第一个条件总是满足的,另外,2732有12条地址线,与8031的低12位地址相连,编码结果如下:2/6/202317青岛大学机电学院 EPROM的使用。存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。2/6/202318青岛大学机电学院三

程序存储器扩展2/6/202319青岛大学机电学院工作时,ROM中的信息只能读出,要用特殊方式写入(固化信息),失电后可保持信息不丢失。1)掩膜ROM:不可改写ROM

由生产芯片的厂家固化信息。在最后一道工序用掩膜工艺写入信息,用户只可读。2)PROM:可编程ROM

用户可进行一次编程。存储单元电路由熔丝相连,当加入写脉冲,某些存储单元熔丝熔断,信息永久写入,不可再次改写。3)EPROM:可光擦除PROM

用户可以多次编程。编程加写脉冲后,某些存储单元的PN结表面形成浮动栅,阻挡通路,实现信息写入。用紫外线照射可驱散浮动栅,原有信息全部擦除,便可再次改写。4.EEPROM:可电擦除PROM

既可全片擦除也可字节擦除,可在线擦除信息,又能失电保存信息,具备RAM、ROM的优点。但写入时间较长。2/6/202320青岛大学机电学院1EPROM顶部开有一个圆形的石英窗口,用于紫外线透过擦除原有信息一般使用专门的编程器(烧写器)进行编程编程后,应该贴上不透光封条出厂未编程前,每个基本存储单元都是信息1编程就是将某些单元写入信息02/6/202321青岛大学机电学院单片机型号片内程序存储器类型容量/B8031

—8051

ROM4K8751

EPROM

4K8951

Flash

4K2/6/202322青岛大学机电学院

对于没有内部ROM的单片机或者当程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。MCS-51单片机片外有16条地址线,即P0口和P2口,因此最大寻址范围为64KB(0000H~FFFFH)。这里要注意的是,MCS-51单片机有一个管脚——跟程序存储器的扩展有关。如果接高电平,那么片内存储器地址范围是0000H~0FFFH(4KB),片外程序存储器地址范围是1000H~FFFFH(60KB)。如果接低电平,不使用片内程序存储器,片外程序存储器地址范围为0000H~FFFFH(64KB)。2/6/202323青岛大学机电学院

8031单片机没有片内程序存储器,因此管脚总是接低电平。扩展程序存储器常用的芯片是EPROM(ErasableProgrammableReadOnlyMemory)型(紫外线可擦除型),如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。另外,还有+5V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。如果程序总量不超过4KB,一般选用具有内部ROM的单片机。8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用,因此选用8751、8951的用户较多。如果程序超过4KB,用户一般不会选用8751、8951,而是直接选用8031,利用外部扩展存储器来存放程序。2/6/202324青岛大学机电学院扩展程序存储器时,应尽量用大容量的芯片。1.常用的EPROM芯片引脚如下图。引脚功能如下:A0~A15:地址线引脚。数目决定存储容量来定,用来进行单元选择。D7~D0:数据线引脚CE*:片选输入端OE*

:输出允许控制端PGM*:编程时,加编程脉冲的输入端Vpp:编程时,编程电压(+12V或+25V)输入端Vcc:+5V,芯片的工作电压。

GND:数字地。2/6/202325青岛大学机电学院2/6/202326青岛大学机电学院EPROM芯片2716存储容量为2K×824个引脚:11根地址线A10~A08根数据线DO7~DO0片选/编程CE*/PGM读写OE*编程电压VPP功能VDDA8A9VPPOE*A10CE*/PGMDO7DO6DO5DO4DO3123456789101112242322212019181716151413A7A6A5A4A3A2A1A0DO0DO1DO2Vss2/6/202327青岛大学机电学院EPROM芯片2764存储容量为8K×828个引脚:13根地址线A12~A08根数据线D7~D0片选CE*编程PGM*读写OE*编程电压VPP功能VppA12A7A6A5A4A3A2A1A0D0D1D2GNDVccPGM*NCA8A9A11OE*A10CE*D7D6D5D4D3123456789101112131428272625242322212019181716152/6/202328青岛大学机电学院EPROM芯片2725612345678910111213141516171819202122232425262728VppA12A7A6A5A4A3A2A1A0D0D1D2GNDD3D4D5D6D7CEA10OEA11A9A8A13A14Vcc27256引脚图A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0CEOED7D6D5D4D3D2D1D027256逻辑图2/6/202329青岛大学机电学院27xx的引脚2/6/202330青岛大学机电学院2.EPROM芯片的工作方式(1)读出方式片选控制线为低,同时输出允许控制线为低,Vpp为+5V,指定地址单元的内容从D7~D0上读出。

(2)未选中方式片选控制线为高电平。(3)编程方式

Vpp端加上规定高压,CE*和OE*端加合适电平(不同的芯片要求不同),就能将数据线上的数据写入到指定的地址单元。(4)编程校验方式

(5)编程禁止方式输出呈高阻状态,不写入程序。2/6/202331青岛大学机电学院EPROM的工作方式2/6/202332青岛大学机电学院2764----8KEPROM2764引脚功能A0~A12地址线CE选片OE读D0~D7数据线VPPA12A7A6A5A4A3A2A1A0D0D1D2GNDVccPGMN.CA8A9A11OEA10CED7D6D5D4D32764.扩展时所用芯片1编程脉冲输入PGM编程电源

Vpp2/6/202333青岛大学机电学院D7D6D5D4D3D2D1D0G74LS373GND+5VEQ7Q6Q5Q4Q3Q2Q1Q0.扩展时所用芯片2

373引脚功能D0~D6数据输入E输出允许G数据输出Q0~Q7使能端当E=0,G=1时,

输出Q=输入D(透明);当E=0,G=0时,输出Q端不变(锁存)当E=1,输出高阻态2/6/202334青岛大学机电学院地址锁存器带三态缓冲输出的8D锁存器74LS373/74HC373

P0A0~A7ALE输出允许数据锁存端,下降沿锁存2/6/202335青岛大学机电学院4.2.18D锁存器74LS373图4.374LS373结构示意图

2/6/202336青岛大学机电学院图4.474LS373用作地址锁存器2/6/202337青岛大学机电学院锁存器8282功能及内部结构与74LS373完全一样,只是其引脚的排列与74LS373不同,8282的引脚如下图。

2/6/202338青岛大学机电学院2/6/202339青岛大学机电学院图

单片机扩展2732EPROM电路

2/6/202340青岛大学机电学院芯片说明。

①74LS373。74LS373是带三态缓冲输出的8D锁存器,由于片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。②EPROM2732。EPROM2732的容量为4K×8位。4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。2732采用单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。2732的封装形式为DIP24,管脚如图7.3所示。

2/6/202341青岛大学机电学院其中,A0~A11为地址线;O0~O7为数据线;为片选线;

/VPP为输出允许/编程高压。除了12条地址线和8条数据线之外,为片选线,低电平有效。也就是说,只有当为低电平时,2732才被选中,否则,2732不工作。/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有所不同。当我们把它作为程序存储器使用时,不必关心其编程电压。2/6/202342青岛大学机电学院连线说明:①地址线。单片机扩展片外存储器时,地址是由P0和P2口提供的。图7.2中,2732的12条地址线(A0~A11)中,低8位A0~A7通过锁存器74LS373与P0口连接,高4位A8~A11直接与P2口的P2.0~P2.3连接,P2口本身有锁存功能。注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。2/6/202343青岛大学机电学院②数据线。2732的8位数据线直接与单片机的P0口相连。因此,P0口是一个分时复用的地址/数据线。③控制线。CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。注意,CPU对EPROM只能进行读操作,不能进行写操作。CPU对2732的读操作控制都是通过控制线实现的。2732控制线的连接有以下几条::直接接地。由于系统中只扩展了一个程序存储器芯片,因此,2732的片选端直接接地,表示2732一直被选中。若同时扩展多片,需通过译码器来完成片选工作。 :接8031的读选通信号端。在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。2/6/202344青岛大学机电学院程序存储器的操作时序

1.访问程序存储器的控制信号(1)ALE(2)PSEN*(3)EA*如果指令是从片外EPROM中读取,ALE用于低8位地址锁存,PSEN*接外扩EPROM的OE*脚。P0口:分时低8位地址总线和数据总线,P2口:高8位地址线。2.操作时序

2/6/202345青岛大学机电学院(1)应用系统中无片外RAM

2/6/202346青岛大学机电学院(2)应用系统中接有片外RAM2/6/202347青岛大学机电学院由图(b)可看出:(1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个脉冲。(2)只有在执行MOVX指令时的第二个机器周期期间,地址总线才由数据存储器使用。典型的EPROM接口电路1.使用单片EPROM的扩展电路

2716、2732EPROM价格贵,容量小,且难以买到。仅介绍2764、27128、27256、27512芯片的接口电路。

下图为外扩16K字节的EPROM27128的接口电路图。2/6/202348青岛大学机电学院2/6/202349青岛大学机电学院MCS-51外扩单片32K字节的EPROM27256的接口。

2/6/202350青岛大学机电学院EEPROM扩展实例电擦除可编程只读存储器EEPROM是一种可用电气方法在线擦除和再编程的只读存储器,它既有RAM可读可改写的特性,又具有非易失性存储器ROM在掉电后仍能保持所存储数据的优点。因此,EEPROM在单片机存储器扩展中,可以用作程序存储器,也可以用作数据存储器,至于具体做什么使用,由硬件电路确定。

EEPROM作为程序存储器使用时,CPU读取EEPROM数据同读取一般EPROM操作相同;但EEPROM的写入时间较长,必须用软件或硬件来检测写入周期。2/6/202351青岛大学机电学院例

在8031单片机上扩展2KBEEPROM。

(1)选择芯片。

2816A和2817A均属于5V电擦除可编程只读存储器,其容量都是2K×8位。2816A与2817A的不同之处在于:2816A的写入时间为9~15ms,完全由软件延时控制,与硬件电路无关;2817A利用硬件引脚来检测写操作是否完成。

在此,我们选用2817A芯片来完成扩展2KBEEPROM,2817A的封装是DIP28,采用单一+5V供电,最大工作电流为150mA,维持电流为55mA,读出时间最大为250ns。片内设有编程所需的高压脉冲产生电路,无需外加编程电源和写入脉冲即可工作。2/6/202352青岛大学机电学院

2817A在写入一个字节的指令码或数据之前,自动地对所要写入的单元进行擦除,因而无需进行专门的字节/芯片擦除操作。2817A的管脚如图7.4所示。其中,A0~A10为地址线;I/O0~I/O7为读写数据线;为片选线;为读允许线,低电平有效;为写允许线,低电平有效;为低电平时,表示2817A正在写操作,处于忙状态,高电平时,表示写操作完毕;VCC为+5V电源;GND为接地端。

2817A的读操作与普通EPROM的读出相同,所不同的只是可以在线进行字节的写入。2/6/202353青岛大学机电学院图8.42817A的管脚

2/6/202354青岛大学机电学院

2817A的写入过程如下:CPU向2817A发出字节写入命令后,2817A便锁存地址、数据及控制信号,从而启动一次写操作。2817A的写入时间大约为16ms左右,在此期间,2817A的脚呈低电平,表示2817A正在进行写操作,此时它的数据总线呈高阻状态,因而允许CPU在此期间执行其它的任务。当一次字节写入操作完毕,2817A便将线置高,由此来通知CPU。

(2)硬件电路图。单片机扩展2817A的硬件电路图如图8.5所示。2/6/202355青岛大学机电学院图

单片机扩展2817AEEPROM电路

2/6/202356青岛大学机电学院

(3)连线说明:①地址线。图7.5中,2817A的11条地址线(A0~A10,容量为2K×8位,211=2×1024=2K)中的低8位A0~A7通过锁存器74LS373与P0口连接,高3位A8~A10直接与P2口的P2.0~P2.2连接。②数据线。2817A的8位数据线直接与单片机的P0口相连。③控制线。单片机与2817A的控制线连接采用了将外部数据存储器空间和程序存储器空间合并的方法,使得2817A既可以作为程序存储器使用,又可以作为数据存储器使用。单片机中用于控制存储器的管脚有以三个:2/6/202357青岛大学机电学院

——控制程序存储器的读操作,执行指令的取指阶段和执行MOVCA,@A+DPTR指令时有效;

——控制数据存储器的读操作,执行MOVX@DPTR,A和MOVX@Ri,A时有效;

——控制数据存储器的写操作,执行MOVXA,@DPTR和MOVXA,@Ri时有效。在图7.5中,2817A控制线的连线方法如下::直接接地。由于系统中只扩展了一个程序存储器芯片,因此片选端直接接地,表示2817A一直被选中。2/6/202358青岛大学机电学院:8031的程序存储器读选通信号和数据存储器读信号经过“与”操作后,与2817A的读允许信号相连。这样,只要、中有一个有效,就可以对2817A进行读操作了。也就是说,对2817A既可以看作程序存储器取指令,也可以看作数据存储器读出数据。:与8031的数据存储器写信号相连,只要执行数据存储器写操作指令,就可以往2817A中写入数据。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论