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

上传人:sccc 文档编号:4966103 上传时间:2023-05-26 格式: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)地址总线(A

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

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

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

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

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

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

8、配给各个芯片?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空间就重叠了。那么,这32KB空间利用74LS138译码器可划分为8个4KB空间。如果把P2.7通过一个非门与7

9、4LS138译码器的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-9,74LS373功能如表8-3所示。,表8-3 74LS373功能表OE*GDQ0111010000不变1高阻态,2锁存器74L

10、S573 输入的D端和输出的Q端依次排在芯片的两侧,为绘制印刷电路板时的布线提供了方便。,图8-10,74LS573的各引脚说明如下:D7D0:8位数据输入线。Q7Q0:8位数据输出线。G:数据输入锁存选通信号,该引脚与74LS373的G端功能相同。OE*:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。,8.3 程序存储器EPROM的扩展 采用只读存储器,非易失性。(1)掩膜ROM在制造过程中编程。成本较高,因此只适合于大批量生产。(2)可编程ROM(PROM)用独立的编程器写入。但PROM只能写入一次,且不能再

11、修改。(3)EPROM电信号编程,紫外线擦除的只读存储器芯片。(4)E2PROM(EEPROM)电信号编程,电信号擦除的ROM芯片。读写操作与RAM几乎没有什么差别,只是写入的速度慢一些。但断电后能够保存信息。(5)Flash ROM又称闪烁存储器,简称闪存。大有取代E2PROM的趋势。,目前许多公司生产的以8051为内核的单片机,在芯片内部大多集成了数量不等的Flash ROM。例如,美国ATMEL公司生产的与51系列单片机兼容的产品89C2051/89C51/89C52/89C55,片内分别有2KB/4KB/8KB/20KB的Flash ROM,来作为EPROM使用。对于这类单片机,在片内

12、的Flash ROM满足要求的情况下,扩展外部程序存储器的工作就可省去。,8.3.1 常用EPROM芯片典型芯片是27系列产品,例如,2764(8KB8)、27128(16KB8)、27256(32KB8)、27512(64KB8)。“27”后面的数字表示其位存储容量。随着大规模集成电路技术的发展,大容量存储器芯片的产量剧增,售价不断下降,其性价比明显增高,而且由于有些厂家已停止生产小容量的芯片,使市场上某些小容量芯片的价格反而比大容量芯片还贵。所以,在扩展程序存储器设计时,应尽量采用大容量芯片。,1.常用的EPROM芯片27系列EPROM芯片的引脚如图8-11所示,参数见表8-4(P143,

13、略)。图8-11中的引脚功能如下:A0A15:地址线引脚。数目决定存储容量来定,用来进行单元选择。D7D0:数据线引脚CE*:片选输入端OE*:输出允许控制端PGM*:编程时,加编程脉冲的输入端,Vpp:编程时,编程电压(+12V或+25V)输入端Vcc:+5V,芯片的工作电压。GND:数字地。NC:无用端 表8-4所示为27系列EPROM芯片的技术参数,其中VCC是芯片供电电压,Vpp是编程电压,Im为最大静态电流,Is为维持电流,TRM为最大读出时间。,图8-11,2.EPROM芯片的工作方式5种工作方式如表8-5所示。(1)读出方式 片选控制线为低,同时输出允许控制线为低,Vpp为+5V

14、,指定地址单元的内容从D7D0上读出。(2)未选中方式 片选控制线为高电平。(3)编程方式 Vpp端加上规定高压,CE*和OE*端加合适电平(不同的芯片要求不同),就能将数据线上的数据写入到指定的地址单元。(4)编程校验方式,(5)编程禁止方式 输出呈高阻状态,不写入程序。,8.3.2 程序存储器的操作时序1.访问程序存储器的控制信号(1)ALE(2)PSEN*(3)EA*如果指令是从片外EPROM中读取,ALE用于低8位地址锁存,PSEN*接外扩EPROM的OE*脚。P0口:分时低8位地址总线和数据总线,P2口:高8位地址线。2.操作时序,(1)应用系统中无片外RAM,图8-12(a),(2

15、)应用系统中接有片外RAM,图8-12(b),由图8-12(b)可看出:(1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个脉冲。(2)只有在执行MOVX指令时的第二个机器周期期间,地址总线才由数据存储器使用。8.3.3 AT89C51与EPROM的接口电路设计 1.硬件接口电路 设计时,由于EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制脚,只有读出控制脚,记为OE*,它与89C51单片机的PSEN*相连,地址线、数据线分别与89C51的地址线、数据线相连,片选端的控制可采用线选法或译码法。图8-13为外扩一片27128的接口电路图。,图8-13,3.使用

16、多片EPROM的扩展电路AT89C51扩展4片27128。,图8-14,图8-14中的片选控制信号由译码器产生。4片27128各自所占的地址空间,请读者自己分析。8.4 静态数据存储器的扩展在单片机应用系统中,外扩的数据存储器都采用静态数据存储器(SRAM),所以只讨论SRAM与89C51的接口。所扩展的数据存储器空间地址由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。片外数据存储器RAM的读和写由89C51的RD*(P3.7)和WR*(P3.6)信号控制,而片外程序存储器EPROM的输出允许端(OE*)由89C51的程序存储器读选通信号PSEN*控制。尽管与EPROM的地

17、址空间范围都是相同的,但由于控制信号不同,故不会发生总线冲突。,8.4.1 常用的静态RAM(SRAM)芯片典型型号有:6116、6264、62128、62256。+5V电源供电,双列直插封装,6116为24引脚封装,6264、62128、62256为28引脚封装,引脚如图8-15。各引脚功能:A0A14:地址输入线。D0D7:双向三态数据线。CE*:片选信号输入。对于6264芯片,当26脚(CS)为高电平时,且CE*为低电平时才选中该片。OE*:读选通信号输入线。WE*:写允许信号输入线,低电平有效。,图8-15,Vcc:工作电源+5VGND:地工作方式有读出、写入、维持三种,这些工作方式的

18、操作控制如表8-6(P148)。,8.4.2 外扩数据存储器的读写操作时序1.读片外RAM操作时序,图8-16,2.写片外RAM操作时序 写是CPU主动把数据送上P0口总线。故在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线。,图8-17,8.4.3 AT89C51与RAM的接口电路设计 图8-18为线选法扩展外部数据存储器的电路。,图8-18,地址线为A0A12,故8031剩余地址线为三根。用线选法可扩展3片6264。3片6264对应的存储器空间如表8-7。表8-7,译码选通法扩展,如图8-19所示。,图8-19,各62128芯片的地址分配见表8-8。例8-1

19、 编写程序将片外数据存储器中5000H50FFH单元全部清零,方法1:用DPTR作为数据区地址指针,同时使用字节计数器。MOV DPTR,#5000H;设置数据块指针的初值 MOV R7,#00H;设置块长度计数器初值 CLR ALOOP:MOVX DPTR,A;把某一单元清零 INC DPTR;地址指针加1 DJNZ R7,LOOP;数据块长度减1,若不为;0则继续清零HERE:SJMP HERE;执行完毕,原地踏步,方法2:用DPTR作为数据区地址指针,但不使用字节计数器,而是比较特征地址。MOV DPTR,#5000HCLR ALOOP:MOVX DPTR,AINC DPTRMOV R7

20、,DPLCJNE R7,#0,LOOP;与末地址+1比较HERE:SJMP HERE,8.5 EPROM和RAM的综合扩展8.5.1 综合扩展的硬件接口电路例8-2 采用线选法扩展2片8KB的RAM和2片8KB的EPROM。RAM选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

21、。同理IC1、IC3的地址范围为C000HDFFFH。4片存储器各自所占的地址空间如表8-9所示。,例8-3 采用译码器法扩展2片8KB EPROM,2片8KB RAM。EPROM选用2764,RAM选用6264。共扩展4片芯片。扩展接口电路见图8-21。,图8-21,各存储器地址范围如下:表8-9可见译码法进行地址分配,各芯片地址空间是连续的。,8.5.2 外扩存储器电路的工作原理及软件设计 1.单片机片外程序区读指令过程单片机上电复位后,PC=0000H,CPU就从0000H地址开始取指令,执行程序。在取指令期间,PC地址低8位送往P0口,经锁存器锁存输出作为A0A7地址线。PC高8位地址

22、送往P2口,直接由P2.0P2.4锁存到A8A12地址线上,P2.5P2.7输入给74LS139进行译码输出片选。这样,根据P2口、P0口状态则选中了第一个程序存储器芯片IC1(2764)的第一个单元地址0000H。然后当变为低电平时,把0000H中的指令代码经P0口读入内部RAM中进行译码,从而决定进行何种操作。,取出一个指令字节后PC自动加1,然后取第二个字节,依次类推当PC=1FFFH时,从IC1最后一个单元取指令,然后PC=2000H,CPU向P2口、P0口送出2000H地址时,则选中第二个程序存储器IC2,IC2的地址范围为2000H3FFFH,读指令过程同IC1,不再赘述。2.单片

23、机片外数据区读/写数据过程 例如,把片外6000H单元的数送到片内RAM 50H单元,程序如下:MOV DPTR,#6000HMOVX A,DPTRMOV 50H,A,例如,把片内50H单元的数据送到片外4000H单元中,程序如下:MOV A,50HMOV DPTR,#4000HMOVX DPTR,AAT89C51单片机读写片外数据存储器中的内容,除用MOVX A,DPTR和MOVX DPTR,A外,还可使用MOVX A,Ri和MOVX Ri,A。这时通过P0口输出Ri中的内容(低8位地址),而把P2口原有的内容作为高8位地址输出。例8-4 将程序存储器中以TAB为首址的32个单元的内容依次传

24、送到外部RAM以7000H为首地址的区域去。,DPTR指向标号TAB的首地址。R0既指示外部RAM的地址,又表示数据标号TAB的位移量。本程序的循环次数为32,R0的值:031,R0的值达到32就结束循环。程序如下:MOVP2,#70HMOVDPTR,#TABMOVR0,#0AGIN:MOVA,R0MOVCA,A+DPTRMOVXR0,AINCR0CJNER0,#32,AGINHERE:SJMPHERETAB:DB,8.6 ATMEL89C51/89C55单片机的片内闪烁存储器 AT89C51/89C52/89C55是低功耗、高性能的片内含有4KB/8KB/20KB闪烁可编程/擦除只读存储器,

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

26、同。AT89C51单片机的引脚与87C51的引脚也是完全兼容的。,AT89C51的I/O口P0、P1、P2和P3除具有与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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号