第8章89C51单片机扩展存储器的设计.ppt

上传人:本田雅阁 文档编号:3435436 上传时间:2019-08-25 格式:PPT 页数:64 大小:2.25MB
返回 下载 相关 举报
第8章89C51单片机扩展存储器的设计.ppt_第1页
第1页 / 共64页
第8章89C51单片机扩展存储器的设计.ppt_第2页
第2页 / 共64页
第8章89C51单片机扩展存储器的设计.ppt_第3页
第3页 / 共64页
第8章89C51单片机扩展存储器的设计.ppt_第4页
第4页 / 共64页
第8章89C51单片机扩展存储器的设计.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第8章89C51单片机扩展存储器的设计.ppt》由会员分享,可在线阅读,更多相关《第8章89C51单片机扩展存储器的设计.ppt(64页珍藏版)》请在三一文库上搜索。

1、第8章 89C51单片机扩展存储器的设计 8.1 系统扩展结构 AT89C51系统并行扩展结构如图8-1所示。,图8-1,由图8-1可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。 外部存储器扩展又包括程序存储器扩展和数据存储器扩展。AT89C51采用的是哈佛结构。扩展后,系统形成了两个并行的外部存储器空间。 89C51单片机采用并行总线结构,大大增加了系统的灵活性,使扩展易于实现,各扩展部件只要符合总线规范,就能很方便地接入系统。 由于系统扩展是通过总线把AT89C51与各扩展部件连接起来。因此,要进行系统扩展首先要构造系统总线。,系统总线按功能分为三组,如图8-1所示。 (1)地

2、址总线(Adress Bus,AB) 地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器选择。地址总线是单向传输的。 (2)数据总线(Data Bus,DB) 数据总线用于在单片机与存储器之间或与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的传送。 (3)控制总线(Control Bus,CB) 控制总线实际上就是单片机发出的各种控制信号线。 下面讨论如何构造系统三总线,1以P0口作为低8位地址/数据总线 AT89C51由于受引脚数目的限制,数据线和低8位地址线复用。 为了将它们分离出来,需要外加地址锁存器,从而构成与一般CPU相类似的片外三总线,见

3、图8-2。,图8-2,2. 以P2口的口线作为高位地址线 P2口的全部8位口线用作高位地址线,再加上P0口经地址锁存器提供的低8位地址,便形成了完整的16位地址总线(见图8-2),使寻址范围达到64KB。 3控制信号线 除了地址线和数据线之外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。其中包括: (1)PSEN*信号作为外扩程序存储器的读选通控制信号。,(2)RD*和WR*信号作为外扩数据存储器和I/O接口的读、写选通控制信号。 (3)ALE信号作为低8位地址的锁存控制信号。 (4)EA*信号作为内、外程序存储器的选择控制信号。 可看出,尽管8

4、9C51单片机有4个并行的I/O口,共32条口线,但由于系统扩展的需要,真正作为数字I/O使用的,就剩下P1口和P3口的部分口线了。 8.2 地址空间分配和外部地址锁存器 8.2.1 存储器地址空间分配,如何把外部各自的64KB空间分配给各个程序存储器、数据存储器芯片,并且使程序存储器的各个芯片之间,数据存储器各芯片之间,为避免发生数据冲突,一个存储器单元对应一个地址,这就是存储器的地址空间的分配问题。 在外扩的多片存储器芯片中,AT89C51要完成这种功能,必须进行两种选择: 一是必须选中该存储器芯片(或I/O接口芯片),这称为“片选”,只有被“选中”的存储器芯片才能被AT89C51读出或写

5、入数据。为了片选的需要,每个存储器芯片都有片选信号引脚, 二是在“片选”的基础上再选择该芯片的某一单元,称为“单元选择”。,常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面分别介绍。 1线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。 缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,不,能充分有效地利用存储空间,这会给程序设计带来一些不便

6、,只适用于外扩芯片数目不多的单片机系统的存储器扩展。 2译码法 使用译码器对89C51的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。是最常用的地址空间分配的方法,它能有效地利用存储器空间,适用于多芯片的存储器扩展。 常用的译码器芯片有74LS138(3-8译码器)74LS139(双2-4译码器)74LS154(4-16译码器)。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称,为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。 两种常用的译码器芯片。 (1)74LS138 74LS138是3-8译码器,有3个数据输入端,经译码产生8种状态。其引脚

7、如图8-3所示,真值表如表8-1所示。 由表8-1可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。而输出为低电平的引脚就作为某一存储器芯片的片选端的控制信号。,图8-3,表8-1 74LS138译码器真值表 输 入 输 出 G1 G2A* G2B* C B A Y7* Y6* Y5* Y4* Y3* Y2* Y1* Y0*,(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端。其引脚如图8-4所示,真值表如表8-2所示(见P138)。,图8-4,下面以74LS138为例,介

8、绍如何进行地址分配。 例 要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分配给各个芯片? 64KB地址空间的分配如图8-5所示。,图8-5,采用全地址译码方式,单片机发地址码时,每次只能选中一个存储单元。同类存储器间不会产生地址重叠的问题。 如果用74LS138把64K空间全部划分为每块4KB,如何划分呢?由于4KB空间需要12条地址线进行“单元选择”,而译码器的输入有3条地址线(P2.6P2.4),P2.7没有参加译码,P2.7发出的0或1决定了选择64KB存储器空间的前32KB还是后32KB,由于P2.7没有参加译码,就不是全译码方式,这样前后两个32KB空间就重叠

9、了。 那么,这32KB空间利用74LS138译码器可划分为8个4KB空间。如果把P2.7通过一个非门与74LS138译码器的G1端连接起来,如图8-6所示,就不会发生两个32KB空间重叠的问题了。,8.2.2 外部地址锁存器 地址锁存器芯片: 74LS373、8282、74LS573等。 1. 锁存器74LS373 带有三态门的8D锁存器,其引脚及内部结构如图8-7和图8-8。 89C51与74LS373的连接如图8-9所示。,图8-6,引脚说明如下: D7D0: 8位数据输入线。 Q7Q0: 8位数据输出线。 G: 数据输入锁存选通信号,图8-7,图8-8,OE*: 数据输出允许信号,图8-

10、9,74LS373功能如表8-3所示。,表8-3 74LS373功能表 OE* G D Q 0 1 1 1 0 1 0 0 0 0 不变 1 高阻态,2锁存器74LS573 输入的D端和输出的Q端依次排在芯片的两侧,为绘制印刷电路板时的布线提供了方便。,图8-10,74LS573的各引脚说明如下: D7D0:8位数据输入线。 Q7Q0:8位数据输出线。 G :数据输入锁存选通信号,该引脚与74LS373的G端功能相同。 OE*:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。,8.3 程序存储器EPROM的扩展 采

11、用只读存储器,非易失性。 (1)掩膜ROM 在制造过程中编程。成本较高,因此只适合于大批量生产。 (2)可编程ROM(PROM) 用独立的编程器写入。但PROM只能写入一次,且不能再修改。 (3)EPROM 电信号编程,紫外线擦除的只读存储器芯片。 (4)E2PROM( EEPROM) 电信号编程,电信号擦除的ROM芯片。读写操作与RAM几乎没有什么差别,只是写入的速度慢一些。但断电后能够保存信息。 (5)Flash ROM 又称闪烁存储器,简称闪存。大有取代E2PROM的趋势。,目前许多公司生产的以8051为内核的单片机,在芯片内部大多集成了数量不等的Flash ROM。 例如,美国ATME

12、L公司生产的与51系列单片机兼容的产品89C2051/89C51/89C52/89C55,片内分别有2KB/4KB/8KB/20KB的Flash ROM,来作为EPROM使用。 对于这类单片机,在片内的Flash ROM满足要求的情况下,扩展外部程序存储器的工作就可省去。,8.3.1 常用EPROM芯片 典型芯片是27系列产品,例如, 2764(8KB8)、27128(16KB8)、27256(32KB8)、27512(64KB8)。 “27”后面的数字表示其位存储容量。 随着大规模集成电路技术的发展,大容量存储器芯片的产量剧增,售价不断下降,其性价比明显增高,而且由于有些厂家已停止生产小容量

13、的芯片,使市场上某些小容量芯片的价格反而比大容量芯片还贵。 所以,在扩展程序存储器设计时,应尽量采用大容量芯片。,1.常用的EPROM芯片 27系列EPROM芯片的引脚如图8-11所示,参数见表8-4(P143,略)。 图8-11中的引脚功能如下: A0A15:地址线引脚。数目决定存储容量来定,用来进行单元选择。 D7D0:数据线引脚 CE*:片选输入端 OE* :输出允许控制端 PGM*:编程时,加编程脉冲的输入端,Vpp:编程时,编程电压(+12V或+25V)输入端 Vcc:+5V,芯片的工作电压。 GND:数字地。 NC:无用端 表8-4所示为27系列EPROM芯片的技术参数,其中VCC

14、是芯片供电电压,Vpp是编程电压,Im为最大静态电流,Is为维持电流,TRM为最大读出时间。,图8-11,2. EPROM芯片的工作方式 5种工作方式如表8-5所示。 (1)读出方式 片选控制线为低,同时输出允许控制线为低,Vpp为+5V,指定地址单元的内容从D7D0上读出。 (2)未选中方式 片选控制线为高电平。 (3)编程方式 Vpp端加上规定高压, CE*和OE*端加合适电平(不同的芯片要求不同),就能将数据线上的数据写入到指定的地址单元。 (4)编程校验方式,(5)编程禁止方式 输出呈高阻状态,不写入程序。,8.3.2 程序存储器的操作时序 1. 访问程序存储器的控制信号 (1)ALE

15、 (2)PSEN* (3)EA* 如果指令是从片外EPROM中读取,ALE用于低8位地址锁存,PSEN*接外扩EPROM的OE*脚。 P0口:分时低8位地址总线和数据总线,P2口:高8位地址线。 2. 操作时序,(1) 应用系统中无片外RAM,图8-12(a),(2) 应用系统中接有片外RAM,图8-12(b),由图8-12(b)可看出: (1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个脉冲。 (2)只有在执行MOVX指令时的第二个机器周期期间,地址总线才由数据存储器使用。 8.3.3 AT89C51与EPROM的接口电路设计 1. 硬件接口电路 设计时,由于EPROM在正常

16、使用中只能读出,不能写入,故EPROM芯片没有写入控制脚,只有读出控制脚,记为OE*,它与89C51单片机的PSEN*相连,地址线、数据线分别与89C51的地址线、数据线相连,片选端的控制可采用线选法或译码法。图8-13为外扩一片27128的接口电路图 。,图8-13,3. 使用多片EPROM的扩展电路 AT89C51扩展4片27128。,图8-14,图8-14中的片选控制信号由译码器产生。4片27128各自所占的地址空间,请读者自己分析。 8.4 静态数据存储器的扩展 在单片机应用系统中,外扩的数据存储器都采用静态数据存储器(SRAM),所以只讨论SRAM与89C51的接口。 所扩展的数据存

17、储器空间地址由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。片外数据存储器RAM的读和写由89C51的RD*(P3.7)和WR*(P3.6)信号控制,而片外程序存储器EPROM的输出允许端(OE*)由89C51的程序存储器读选通信号PSEN*控制。 尽管与EPROM的地址空间范围都是相同的,但由于控制信号不同,故不会发生总线冲突。,8.4.1 常用的静态RAM(SRAM)芯片 典型型号有:6116、6264、62128、62256。+5V电源供电,双列直插封装,6116为24引脚封装,6264、62128、62256为28引脚封装,引脚如图8-15。 各引脚功能: A0A1

18、4:地址输入线。 D0D7:双向三态数据线。 CE*:片选信号输入。对于6264芯片,当26脚(CS)为高电平时,且CE*为低电平时才选中该片。 OE*:读选通信号输入线。 WE*:写允许信号输入线,低电平有效。,图8-15,Vcc:工作电源+5V GND:地 工作方式有读出、写入、维持三种,这些工作方式的操作控制如表8-6(P148)。,8.4.2 外扩数据存储器的读写操作时序 1.读片外RAM操作时序,图8-16,2. 写片外RAM操作时序 写是CPU主动把数据送上P0口总线。故在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线。,图8-17,8.4.3 AT

19、89C51与RAM的接口电路设计 图8-18为线选法扩展外部数据存储器的电路。,图8-18,地址线为A0A12,故8031剩余地址线为三根。用线选法可扩展3片6264。3片6264对应的存储器空间如表8-7。 表8-7,译码选通法扩展,如图8-19所示。,图8-19,各62128芯片的地址分配见表8-8。 例8-1 编写程序将片外数据存储器中5000H50FFH单元全部清零,方法1: 用DPTR作为数据区地址指针,同时使用字节计数器。 MOV DPTR,#5000H ;设置数据块指针的初值 MOV R7,#00H ;设置块长度计数器初值 CLR A LOOP: MOVX DPTR,A ;把某一

20、单元清零 INC DPTR ;地址指针加1 DJNZ R7,LOOP ;数据块长度减1,若不为 ;0则继续清零 HERE: SJMP HERE ;执行完毕,原地踏步,方法2: 用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址。 MOV DPTR,#5000H CLR A LOOP: MOVX DPTR,A INC DPTR MOV R7,DPL CJNE R7,#0,LOOP ;与末地址+1比较 HERE: SJMP HERE,8.5 EPROM和RAM的综合扩展 8.5.1 综合扩展的硬件接口电路 例8-2 采用线选法扩展2片8KB的RAM和2片8KB的EPROM。RAM选

21、6264,EPROM选2764。扩展接口电路见图8-20。,图8-20,(1)控制信号及片选信号 IC2和IC4占用地址空间为2000H3FFFH共8KB。同理IC1、IC3地址范围4000H5FFFH(P2.6=1、P2.5=0、P2.7=0)。线选法地址不连续,地址空间利用不充分。 (2)各芯片地址空间分配,IC2和IC4占用的地址空间为A000HBFFFH共8KB。 同理IC1、IC3的地址范围为C000HDFFFH。4片存储器各自所占的地址空间如表8-9所示。,例8-3 采用译码器法扩展2片8KB EPROM,2片8KB RAM。EPROM选用2764,RAM选用6264。共扩展4片芯

22、片。扩展接口电路见图8-21。,图8-21,各存储器地址范围如下: 表8-9 可见译码法进行地址分配,各芯片地址空间是连续的。,8.5.2 外扩存储器电路的工作原理及软件设计 1. 单片机片外程序区读指令过程 单片机上电复位后,PC = 0000H,CPU就从0000H地址开始取指令,执行程序。 在取指令期间,PC地址低8位送往P0口,经锁存器锁存输出作为A0A7地址线。PC高8位地址送往P2口,直接由P2.0P2.4锁存到A8A12地址线上,P2.5P2.7输入给74LS139进行译码输出片选。这样,根据P2口、P0口状态则选中了第一个程序存储器芯片IC1(2764)的第一个单元地址0000

23、H。 然后当变为低电平时,把0000H中的指令代码经P0口读入内部RAM中进行译码,从而决定进行何种操作。,取出一个指令字节后PC自动加1,然后取第二个字节,依次类推当PC = 1FFFH时,从IC1最后一个单元取指令,然后PC = 2000H,CPU向P2口、P0口送出2000H地址时,则选中第二个程序存储器IC2,IC2的地址范围为2000H3FFFH,读指令过程同IC1,不再赘述。 2. 单片机片外数据区读/写数据过程 例如,把片外6000H单元的数送到片内RAM 50H单元,程序如下: MOV DPTR,#6000H MOVX A,DPTR MOV 50H,A,例如,把片内50H单元的

24、数据送到片外4000H单元中,程序如下: MOV A,50H MOV DPTR,#4000H MOVX DPTR,A AT89C51单片机读写片外数据存储器中的内容,除用MOVX A,DPTR和MOVX DPTR,A外,还可使用MOVX A,Ri和MOVX Ri,A。这时通过P0口输出Ri中的内容(低8位地址),而把P2口原有的内容作为高8位地址输出。 例8-4 将程序存储器中以TAB为首址的32个单元的内容依次传送到外部RAM以7000H为首地址的区域去。,DPTR指向标号TAB的首地址。R0既指示外部RAM的地址,又表示数据标号TAB的位移量。本程序的循环次数为32,R0的值:031,R0

25、的值达到32就结束循环。程序如下: MOV P2,#70H MOV DPTR,#TAB MOV R0,#0 AGIN: MOV A,R0 MOVC A,A+DPTR MOVX R0,A INC R0 CJNE R0,#32,AGIN HERE: SJMP HERE TAB: DB ,8.6 ATMEL89C51/89C55单片机的片内闪烁存储器 AT89C51/89C52/89C55是低功耗、高性能的片内含有4KB/8KB/20KB闪烁可编程/擦除只读存储器,芯片内的闪存允许在线编程或采用通用的编程器对其重复编程。 8.6.1 89C51的性能及片内闪烁存储器 89C51的主要性能 (1)片内

26、有4KB可在线重复编程的闪烁存储器(Flash Memory) (2)存储器可循环写入/擦除1000次。 (3)存储器数据保存时间为10年。 (4)宽工作电压范围:Vcc可为+2.76V。,(5)全静态工作:可从0Hz16MHz。 (6)程序存储器具有3级加密保护。 (7)空闲状态维持低功耗和掉电状态保存存储器内容。 下面介绍AT89C51单片机片内闪烁存储器的主要性能及其编程方法。 AT89C51单片机的片内程序存储器除由闪烁存储器取代了87C51的EPROM外,其余部分完全相同。AT89C51单片机的引脚与87C51的引脚也是完全兼容的。,AT89C51的I/O口P0、P1、P2和P3除具

27、有与8031相同的一些性能和用途外,在对Flash编程时,P0口还可接收代码字节,但在程序校验时需要外加上拉负载电阻。 在Flash编程和程序校验期间,P1口接收低位地址字节,P2口接收高位地址位和一些控制信号,P3口也接收Flash编程和校验用的控制信号。此时,ALE/PROG*引脚是编程脉冲输入(PROG* )端。,该芯片内有三个加密位,其状态可以是编程(P)或不编程(U),各状态提供的功能见表8-11。 如果加密位LB1被编程,则EA*脚的电平在复位时被采样并锁存。若器件在加电时不进行复位,那么该锁存器初始化为一随机值,并在复位有效前始终保持该值。 为使器件工作正常,EA*的锁存值必须与引脚的当前逻辑电平一致。 AT89C51的三个加密位可以不被编程(U)或被编程(P),以获得表8-11所示的特性。,表8-11 对89C51片内的Flash存储器编程,设计者只需在市场上购买相应的编程器。一种是购买单片机仿真开发系统时就带有编程器,另一种是单独购买编程器。 开发者可按照编程器的说明进行操作,如想对写入的内容加密,只需按照编程器的菜单,选择加密功能选项即可。,编程器,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1