第8章 AT89S51单片机外部存储器的扩展.ppt

上传人:创****公 文档编号:75398430 上传时间:2023-03-03 格式:PPT 页数:78 大小:2.30MB
返回 下载 相关 举报
第8章 AT89S51单片机外部存储器的扩展.ppt_第1页
第1页 / 共78页
第8章 AT89S51单片机外部存储器的扩展.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《第8章 AT89S51单片机外部存储器的扩展.ppt》由会员分享,可在线阅读,更多相关《第8章 AT89S51单片机外部存储器的扩展.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1第第8 8章章 AT89S52AT89S52单片机外部单片机外部 存储器的扩展存储器的扩展12 2第第8章章 AT89S52单片机外部存储器的并行扩展单片机外部存储器的并行扩展8.1 系统并行扩展结构系统并行扩展结构8.2 地址空间分配和外部地址锁存器地址空间分配和外部地址锁存器 8.2.1 存储器地址空间分配存储器地址空间分配 8.2.2 外部地址锁存器外部地址锁存器8.3 静态数据存储器静态数据存储器RAM的并行扩展的并行扩展 8.3.1 常用的静态常用的静态RAM(SRAM)芯片)芯片 8.3.2 外扩数据存储器的读写操作时序外扩数据存储器的读写操作时序 8.3.3 AT89S52单片

2、机与单片机与RAM的接口设计与软件编程的接口设计与软件编程8.4 片内片内Flash存储器的编程存储器的编程 8.4.1 使用通用编程器的程序写入使用通用编程器的程序写入 8.4.2 使用下载线的使用下载线的ISP编程编程38.5 E2PROM的并行扩展的并行扩展 8.5.1 并行并行E2PROM芯片简介芯片简介 8.5.2 E2PROM的工作方式的工作方式 8.5.3 AT89S52单片机扩展单片机扩展E2PROM AT2864的设计的设计4【内容概要】【内容概要】当当AT89S52单单片片机机片片内内的的数数据据存存储储器器与与程程序序存存储储器器(Flash存存储储器器)的的容容量量不不

3、能能满满足足需需要要的的情情况况下下,需需要要进进行行扩扩展展。存存储储器器的的扩扩展展分分为为并并行行扩扩展展和和串串行行扩扩展展,本本章章介介绍绍并并行行扩扩展展存存储储器器的的基基本本方方法法,首首先先介介绍绍了了系系统统并并行行扩扩展展的的基基本本结结构构,还还介介绍绍了了片片外外存存储储器器地地址址空空间间分分配配的的的的两两种种方方法法:线线选选法法和和译译码码法法,以以及及外外部部地地址址锁锁存存器器的的选选择择。对对于于片片内内Flash程程序序存存储储器器,重重点点介介绍绍了了程程序序的的写写入入,而而对对片片外外数数据据存存储储器器以以及及E2PROM的的并并行行扩扩展则进

4、行了较为详细的阐述。展则进行了较为详细的阐述。58.1 系统扩展结构系统扩展结构 AT89S52单片机采用总线结构,使扩展易于实现,单片机采用总线结构,使扩展易于实现,AT89S52单片机系统扩展结构如单片机系统扩展结构如图图8-1所示。所示。5图图8-1 AT89S52单片机的系统扩展结构单片机的系统扩展结构6 由由图图8-18-1可以看出,可以看出,系统扩展系统扩展主要包括主要包括存储器扩展存储器扩展和和I/OI/O接口部件扩展接口部件扩展。AT89S52 AT89S52单片机的存储器扩展即包括单片机的存储器扩展即包括程序存储器扩展程序存储器扩展又包又包括括数据存储器扩展数据存储器扩展。A

5、T89S52AT89S52单片机采用程序存储器空间和单片机采用程序存储器空间和数据存储器空间截然分开的数据存储器空间截然分开的哈佛结构哈佛结构。扩展后,系统形成了。扩展后,系统形成了两个并行的外部存储器空间两个并行的外部存储器空间。系统扩展是以系统扩展是以AT89S52AT89S52为核心,通过总线把单片机与各扩为核心,通过总线把单片机与各扩展部件连接起来。因此,要进行系统扩展展部件连接起来。因此,要进行系统扩展首先要构造首先要构造系统总系统总线线。系统总线按功能通常分为系统总线按功能通常分为3 3组,如组,如图图8-18-1所示。所示。67 (1)地址总线)地址总线(Address Bus,

6、AB):用于传送单片机):用于传送单片机发发出的地址信号出的地址信号,以便进行存储单元和,以便进行存储单元和I/O接口芯片中的寄存器单接口芯片中的寄存器单元的选择。元的选择。(2)数据总线)数据总线(Data Bus,DB):用于单片机与外部存储):用于单片机与外部存储器之间或与器之间或与I/O接口之间传送数据,数据总线是接口之间传送数据,数据总线是双向的双向的。(3)控制总线)控制总线(Control Bus,CB):控制总线是单片机):控制总线是单片机发出的各种控制信号线。发出的各种控制信号线。8如何来构造系统的三总线。如何来构造系统的三总线。1 1P0P0口作为低口作为低8 8位地址位地

7、址/数据总线数据总线AT89S51AT89S51受引脚数目限制,受引脚数目限制,P0P0口口既用作低既用作低8 8位地址总线,又用位地址总线,又用作数据总线(分时复用),因此需作数据总线(分时复用),因此需增加一个增加一个8 8位地址锁存器位地址锁存器。AT89S51AT89S51访问外部扩展的存储器单元或访问外部扩展的存储器单元或I/OI/O接口寄存器时,接口寄存器时,先发先发出低出低8 8位地址位地址送地址锁存器锁存,锁存器输出作为系统的低送地址锁存器锁存,锁存器输出作为系统的低8 8位位地址(地址(A7A7 A0A0)。随后,)。随后,P0P0口口又作为数据总线口又作为数据总线口(D7D

8、7 D0D0),如),如图图8-28-2所示。所示。2 2P2P2口的口线作为高位地址线口的口线作为高位地址线P2P2口用作系统的口用作系统的高高8 8位地址线位地址线,再加上地址锁存器提供的低,再加上地址锁存器提供的低8 8位地址,便形成了系统完整的位地址,便形成了系统完整的1616位地址总线。位地址总线。89使单片机系统的寻址范围达到使单片机系统的寻址范围达到64KB。9 图图8-2 单片机扩展的片外三总线单片机扩展的片外三总线 103控制信号线控制信号线 除地址线和数据线外,还要有系统的控制总线。这些信除地址线和数据线外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有

9、的则是号有的就是单片机引脚的第一功能信号,有的则是P3口第二口第二功能信号。包括:功能信号。包括:(1)PSEN*作为作为外扩程序存储器外扩程序存储器的的读选通读选通控制信号。控制信号。(2)RD*和和WR*为为外扩数据存储器外扩数据存储器和和I/O的读、写选通控制的读、写选通控制信号。信号。(3)ALE作为作为P0口发出的低口发出的低8位地址锁存控制信号。位地址锁存控制信号。(4)EA*为片内、片外程序存储器的选择控制信号。为片内、片外程序存储器的选择控制信号。可见,可见,AT89S51的的4个并行个并行I/O口,由于系统扩展的需要,口,由于系统扩展的需要,真正作为数字真正作为数字I/O用,

10、就剩下用,就剩下P1和和P3的部分口线的部分口线。10118.2 地址空间分配和外部地址锁存器地址空间分配和外部地址锁存器 本节讨论本节讨论如何进行存储器空间的如何进行存储器空间的地址分配地址分配,并介绍用于输,并介绍用于输出低出低8位地址的常用的位地址的常用的地址锁存器地址锁存器。8.2.1 存储器地址空间分配存储器地址空间分配 实际系统设计中,既需要扩展程序存储器,又需要扩展数实际系统设计中,既需要扩展程序存储器,又需要扩展数据存储器,据存储器,如何把片外的两个如何把片外的两个64KB地址空间分配给各个程序地址空间分配给各个程序存储器、数据存储器芯片,存储器、数据存储器芯片,使使一个存储单

11、元只对应一个地址一个存储单元只对应一个地址,避免单片机发出一个地址时,同时访问两个单元,发生数据冲避免单片机发出一个地址时,同时访问两个单元,发生数据冲突。这就是存储器突。这就是存储器地址空间分配问题地址空间分配问题。1112AT89S52单片机发出的单片机发出的地址码地址码用于选择某个存储器单元,外用于选择某个存储器单元,外扩多片存储器芯片中,单片机必须进行扩多片存储器芯片中,单片机必须进行两种选择两种选择:一是一是选中该存选中该存储器芯片,这称为储器芯片,这称为“片选片选”,未被选中的芯片不能被访问。未被选中的芯片不能被访问。二是二是在在“片选片选”的基础上再根据单片机发出的地址码来对的基

12、础上再根据单片机发出的地址码来对“选中选中”芯片的某一单元进行访问,即芯片的某一单元进行访问,即“单元选择单元选择”。为实现片选,存储器芯片都有为实现片选,存储器芯片都有片选引脚片选引脚。同时也都有多条。同时也都有多条地址地址线引脚线引脚,以便进行单元选择。,以便进行单元选择。注意,注意,“片选片选”和和“单元选择单元选择”都都是单片机通过地址线一次发出的地址信号来完成选择是单片机通过地址线一次发出的地址信号来完成选择。通常把单片机系统的地址线笼统地分为通常把单片机系统的地址线笼统地分为低位地址线低位地址线和和高位地高位地1213址线址线,“片选片选”都是使用都是使用高位地址线高位地址线。实际

13、上,。实际上,16条地址线条地址线中的高、低位地址线的数目并不是固定的,只是习惯上把用中的高、低位地址线的数目并不是固定的,只是习惯上把用于于“单元选择单元选择”的地址线,都称为低位地址线,其余的为的地址线,都称为低位地址线,其余的为高位地址线。高位地址线。常用的存储器地址空间常用的存储器地址空间分配方法有分配方法有两种两种:线性选择法线性选择法(简称线选法)和(简称线选法)和地址译码法地址译码法(简称译码法),下面介绍。(简称译码法),下面介绍。1线选法线选法 是直接利用系统的是直接利用系统的某一高位地址线某一高位地址线作为存储器芯片(或作为存储器芯片(或I/O接口芯片)的接口芯片)的“片选

14、片选”控制信号。为此,只需要把用到的控制信号。为此,只需要把用到的高位地址线与存储器芯片的高位地址线与存储器芯片的“片选片选”端直接连接端直接连接即可。即可。14 线选法优点线选法优点是电路简单,不需要另外增加地址译码器硬是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。件电路,体积小,成本低。缺点缺点是可寻址的是可寻址的芯片数目受到限芯片数目受到限制制。另外,。另外,地址空间不连续地址空间不连续,每个存储单元的地址不唯一,每个存储单元的地址不唯一,这会给程序设计带来不便,只这会给程序设计带来不便,只适用于外扩芯片数目不多的单适用于外扩芯片数目不多的单片机系统的存储器扩展片机系统的

15、存储器扩展。2译码法译码法 使用译码器对使用译码器对AT89S51单片机的单片机的高位地址进行译码高位地址进行译码,译译码输出码输出作为存储器芯片的作为存储器芯片的片选信号片选信号。这种方法能够。这种方法能够有效地利有效地利用存储器空间,用存储器空间,适用于适用于多芯片的存储器扩展多芯片的存储器扩展。常用的译码器常用的译码器芯片芯片有有74LS138(3线线-8线线译码器)、译码器)、74LS139(双(双2线线-4线线译码器)和译码器)和74LS154(4线线-16线线译码器)。译码器)。1415 若全部高位地址线都参加译码,称为若全部高位地址线都参加译码,称为全译码全译码;若仅部分;若仅部

16、分高位地址线参加译码,称为高位地址线参加译码,称为部分译码部分译码。部分译码存在着部分。部分译码存在着部分存储器地址空间相重叠的情况。存储器地址空间相重叠的情况。下面介绍下面介绍常用的译码器芯片常用的译码器芯片。(1)74LS138 3线线-8线线译码器,有译码器,有3个数据输入端个数据输入端,经,经译码产生译码产生8种状态种状态。引脚如引脚如图图8-3所示所示,真值表见,真值表见表表8-1。由。由表表8-1可可见,当译码器见,当译码器的输入为某一固定编码时,其的输入为某一固定编码时,其输出仅有一个固定的引脚输出输出仅有一个固定的引脚输出为低电平为低电平,其余的为高电平其余的为高电平。输出为低

17、电平的引脚就作为某。输出为低电平的引脚就作为某一存储器芯片的片选信号。一存储器芯片的片选信号。15161617(2)74LS139 双双2线线-4线线译码器译码器。这两个译码器完全独立,分别有各自。这两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚的数据输入端、译码状态输出端以及数据输入允许端,其引脚如如图图8-4所示所示,真值表见,真值表见表表8-2(只给出其中一组)。(只给出其中一组)。17图图8-3 74LS138引脚图引脚图 图图8-4 74LS139引脚图引脚图1819 以以74LS13874LS138为例为例,如何进行地址分配。,如何进行地址分配

18、。例如,例如,要要扩扩8 8片片8KB8KB的的RAM 6264RAM 6264,如何通过,如何通过74LS13874LS138把把64KB64KB空空间分配给各个芯片?间分配给各个芯片?由由74LS13874LS138真值表真值表可知,把可知,把G1G1接到接到+5V+5V,G2A*G2A*、G2B*G2B*接地,接地,P2.7P2.7、P2.6P2.6、P2.5P2.5(高(高3 3位地址线)分别接位地址线)分别接74LS13874LS138的的C C、B B、A A端,由于对高端,由于对高3 3位地址译码,这样译码器有位地址译码,这样译码器有8 8个输出个输出Y7*Y7*Y0*Y0*,分

19、别接到,分别接到8 8片片62646264的的各各“片选片选”端端,实现,实现8 8选选1 1的片选。的片选。低低1313位地址位地址(P2.4P2.4P2.0P2.0,P0.7P0.7P0.0P0.0)完成对选中的)完成对选中的62646264芯芯片中的各个存储单元的片中的各个存储单元的“单元选择单元选择”。这样就把。这样就把64KB64KB存储器空存储器空间分成间分成8 8个个8KB8KB空间了。空间了。1920 64KB地址空间分配地址空间分配如如图图8-5所示所示。这里采用这里采用全地址译码全地址译码方式。因此,方式。因此,AT89S51发出发出16位地址位地址时,每次只能选中某一芯片

20、及该芯片的一个存储单元时,每次只能选中某一芯片及该芯片的一个存储单元 20图图8-5 64KB地址空间划分成地址空间划分成8个个8KB空间空间21 如何用如何用74LS13874LS138把把64KB64KB空间全部划分为空间全部划分为4KB4KB的块的块呢?呢?4KB4KB空间空间需需1212条地址线,而译码器输入只有条地址线,而译码器输入只有3 3条地址线(条地址线(P2.6P2.6P2.4P2.4),),P2.7P2.7没有参加译码,没有参加译码,P2.7P2.7发出的发出的0 0或或1 1决定选择决定选择64KB64KB存储器空间存储器空间的的前前32KB32KB还是还是后后32KB3

21、2KB,由于,由于P2.7P2.7没有参加译码没有参加译码,就,就不是全译码不是全译码方式方式,前后两个,前后两个32KB32KB空间就重叠了。那么,空间就重叠了。那么,这这32KB32KB空间利用空间利用74LS13874LS138译码器可划分为译码器可划分为8 8个个4KB4KB空间空间。如果把如果把P2.7P2.7通过一个非门与通过一个非门与74LS13874LS138译码器译码器G1G1端连接起来,端连接起来,如如图图8-68-6所示,就不会发生两个所示,就不会发生两个32KB32KB空间重叠的问题了。这时,空间重叠的问题了。这时,选中的是选中的是64KB64KB空间的前空间的前32K

22、B32KB空间空间,地址范围为,地址范围为0000H0000H7FFFH7FFFH。2122 如果去掉如果去掉图图8-68-6中的非门,地址范围为中的非门,地址范围为8000H8000HFFFFHFFFFH。把译码。把译码器的输出连到各个器的输出连到各个4KB4KB存储器的片选端,这样就存储器的片选端,这样就把把32KB32KB空间划分空间划分为为8 8个个4KB4KB空间空间。P2.3P2.3P2.0P2.0,P0.7P0.7P0.0P0.0实现实现“单元选择单元选择”,P2.6P2.6P2.4P2.4通过通过74LS13874LS138译码实现对各存储器芯片的片选。译码实现对各存储器芯片的

23、片选。采用译码器划分的采用译码器划分的地址空间块都是地址空间块都是相等相等的,如果将地址空间的,如果将地址空间块划分为不等的块,可采用块划分为不等的块,可采用可编程逻辑器件可编程逻辑器件FPGAFPGA对其编程来代对其编程来代替译码器进行非线性译码。替译码器进行非线性译码。2323图图8-6 存储器空间被划分成每块存储器空间被划分成每块4KB248.2.2 外部地址锁存器外部地址锁存器 受引脚数的限制,受引脚数的限制,P0口兼用数据线和低口兼用数据线和低8位地址线,为了位地址线,为了将它们分离出来,需在单片机外部增加地址锁存器。目前,常将它们分离出来,需在单片机外部增加地址锁存器。目前,常用的

24、地址锁存器芯片有用的地址锁存器芯片有74LS373、74LS573等。等。1锁存器锁存器74LS373 是一种是一种带三态门带三态门的的8D锁存器锁存器,其引脚如,其引脚如图图8-7所示所示,内部,内部结构如结构如图图8-8所示所示。AT89S51与与74LS373锁存器的锁存器的连接连接如如图图8-9所示。所示。242525图图8-7 锁存器锁存器74LS373的引脚的引脚2626图图8-8 74LS373的内部结构的内部结构2727图图8-9 AT89S51单片机单片机P0口与口与74LS373的连接的连接28引脚说明:引脚说明:n D7D0:8位数据输入线,位数据输入线,n Q7Q0:8

25、位数据输出线。位数据输出线。n G:数据输入锁存选通信号。当加到该引脚的信号为高电平:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。器中。n OE*:数据输出允许信号,低电平有效。当该信号为低电平:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。为高电平时,输出线为高阻态。74LS373锁存器功能如锁存器功能如表表8-3。28292锁存器锁存器74

26、LS573 也是一种带有三态门的也是一种带有三态门的8D锁存器,功能及内部结构锁存器,功能及内部结构与与74LS373完全一样完全一样,只是其引脚排列与,只是其引脚排列与74LS373不同,不同,图图8-10为为74LS573引脚图。引脚图。由由图图8-10,与,与74LS373相比,相比,74LS573的的输入输入D端端和和输出输出Q端端依次排列在芯片两侧依次排列在芯片两侧,为绘制印制电路板提供方便,为绘制印制电路板提供方便引脚说明:引脚说明:n D7D0:8位数据输入线。位数据输入线。n Q7Q0:8位数据输出线。位数据输出线。n G:数据输入锁存选通信号,该引脚与数据输入锁存选通信号,该

27、引脚与74LS373的的G端功能相端功能相同。同。2930图图8-10 锁存器锁存器74LS573的引脚的引脚31n OE*:数据输出允许信号,低电平有效。当该信号为低电平:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。为高电平时,输出线为高阻态。328.3 8.3 静态数据存储器静态数据存储器RAMRAM的扩展的扩展 AT89S52AT89S52单片机片内有单片机片内有256B RAM256B RAM,往往不能满足实际需要,必,往往不能满足实际需要,必须片外

28、扩展数据存储器。数据存储器分为动态数据存储器与静须片外扩展数据存储器。数据存储器分为动态数据存储器与静态数据存储器。在单片机应用系统中,如果外部扩展动态数据态数据存储器。在单片机应用系统中,如果外部扩展动态数据存储器,还需要有对应的刷新电路,所以,在单片机的外部扩存储器,还需要有对应的刷新电路,所以,在单片机的外部扩展的数据存储器都采用静态数据存储器(展的数据存储器都采用静态数据存储器(SRAMSRAM)。)。对外部扩展的数据存储器空间访问,对外部扩展的数据存储器空间访问,P2P2口口提供高提供高8 8位地址,位地址,P0P0口口分时提供低分时提供低8 8位地址和位地址和8 8位双向数据总线。

29、位双向数据总线。片外数据存储器片外数据存储器RAMRAM的读和写的读和写由单片机的由单片机的RD*RD*(P3.7P3.7)和)和WR*WR*(P3.6P3.6)信号控制。)信号控制。32338.3.1 8.3.1 常用的静态常用的静态RAMRAM(SRAMSRAM)芯片)芯片 单片机系统中常用的单片机系统中常用的RAMRAM芯片的典型型号有芯片的典型型号有61166116(2KB2KB),),62646264(8KB8KB),),6212862128(16KB16KB),),6225662256(32KB32KB)。6116 6116为为2424脚脚封装,封装,62646264、621286

30、2128、6225662256为为2828脚脚封装。这些封装。这些RAMRAM芯片的引脚如芯片的引脚如图图8-118-11所示。所示。333434图图8-11 常用的常用的RAM引脚图引脚图35各引脚功能:各引脚功能:A0A14:地址输入线。地址输入线。D0D7:双向三态数据线。双向三态数据线。CE*:片选信号输入线。对片选信号输入线。对6264芯片,当芯片,当24脚(脚(CS)为高电平,)为高电平,且且 CE*为低电平时才选中该片。为低电平时才选中该片。OE*:读选通信号输入线,低电平有效。读选通信号输入线,低电平有效。WE*:写允许信号输入线,低电平有效。写允许信号输入线,低电平有效。VC

31、C 工作电源工作电源+5V。GND 地。地。RAM存储器有存储器有读出、写入、维持读出、写入、维持3种种工作方式,工作方式的控工作方式,工作方式的控制见制见表表8-4。35368.3.2 8.3.2 外扩数据存储器的读写操作时序外扩数据存储器的读写操作时序对片外对片外RAMRAM读和写读和写两种操作时序的基本过程相同。两种操作时序的基本过程相同。1 1读片外读片外RAMRAM操作时序操作时序若外扩一片若外扩一片RAMRAM,应将,应将WR*WR*脚与脚与RAMRAM的的WE*WE*脚连接,脚连接,RD*RD*脚与芯片脚与芯片OE*脚连接。脚连接。37单片机读片外单片机读片外RAM操作时序如操作

32、时序如图图8-12所示所示。在在第一个机器周期的第一个机器周期的S1状态状态,ALE信号由低变高(信号由低变高(处),处),读读RAM周期开始。在周期开始。在S2状态状态,CPU把低把低8位地址送到位地址送到P0口总线口总线上,把高上,把高8位地址送上位地址送上P2口(在执行口(在执行“MOVX A,DPTR”指令指令阶段才送高阶段才送高8位;若执行位;若执行“MOVX A,Ri”则不送高则不送高8位)。位)。ALE下降沿下降沿(处)用来把低处)用来把低8位地址信息锁存到外部锁存器位地址信息锁存到外部锁存器74LS373内。而高内。而高8位地址信息一直锁存在位地址信息一直锁存在P2口锁存器中(

33、口锁存器中(处)。处)。在在S3状态状态,P0口总线变成高阻悬浮状态口总线变成高阻悬浮状态。在。在S4状态,执状态,执行指令行指令“MOVX A,DPTR”(见(见处)处)后使后使RD*RD*信号信号变有效变有效373838图图8-12 8-12 单片机读片外单片机读片外RAMRAM操作时序图操作时序图39,RD*RD*信号使被寻址的片外信号使被寻址的片外RAM过片刻后把数据送上过片刻后把数据送上P0口总线口总线(处),当处),当RD*RD*回到高电平后(回到高电平后(处),处),P0总线变悬浮状态总线变悬浮状态(处)。处)。2写片外写片外RAM操作时序操作时序 向片外向片外RAM写数据,单片

34、机执行写数据,单片机执行“MOVX DPTR,A”指指令。令。指令执行后,单片机的指令执行后,单片机的WR*信号为低有效,此信号使信号为低有效,此信号使RAM的的WE*WE*端被选通。端被选通。写片外写片外RAM的时序如的时序如图图8-13所示所示。开始的过程与读过程类。开始的过程与读过程类似,但写的过程是似,但写的过程是CPU主动把数据送上主动把数据送上P0口总线口总线,故在时序上,故在时序上,CPU先向先向P0口总线上送完口总线上送完8位地址后,在位地址后,在S3状态就将数据送到状态就将数据送到P0口总线(口总线(处)。此间,处)。此间,P0总线上不会出现高阻悬浮现象。总线上不会出现高阻悬

35、浮现象。4040图图8-13 单片机写片外单片机写片外RAM操作时序图操作时序图41在在S4S4状态状态,写信号,写信号WR*WR*有效(有效(处),选通片外处),选通片外RAMRAM,稍过片刻,稍过片刻,P0P0口上的数据就写到口上的数据就写到RAMRAM内了,然后写信号内了,然后写信号WR*WR*变为无效(变为无效(处)处)。8.3.3 AT89S528.3.3 AT89S52单片机与单片机与RAMRAM的接口设计与软件编程的接口设计与软件编程 AT89S52 AT89S52对片外对片外RAMRAM的读和写由单片机的的读和写由单片机的RD*RD*(P3.7P3.7)和和WR*WR*(P3.

36、6P3.6)控制,片选端由译码器译码输出控制。因此设计控制,片选端由译码器译码输出控制。因此设计时,主要解决地址分配、数据线和控制信号线的连接问题。在时,主要解决地址分配、数据线和控制信号线的连接问题。在与高速单片机连接时,还要根据时序解决读与高速单片机连接时,还要根据时序解决读/写速度匹配问题。写速度匹配问题。图图8-148-14为用为用线选法线选法扩展扩展AT89S51AT89S51外部数据存储器电路。图外部数据存储器电路。图中数据存储器选用中数据存储器选用62646264,该芯片地址线为,该芯片地址线为A0A0A12A12,故单片机,故单片机剩余地址线为剩余地址线为3 3条。条。4142

37、42图图8-14 线选法扩展外部数据存储器电路图线选法扩展外部数据存储器电路图43用用线选线选可扩展可扩展3片片6264,对应的存储器空间见,对应的存储器空间见表表8-5。43 用用译码法译码法扩展外部数据存储器的接口电路如扩展外部数据存储器的接口电路如图图8-15所示。所示。数据存储器数据存储器62128,芯片地址线为,芯片地址线为A0A13,剩余地址线为两,剩余地址线为两条,若采用条,若采用2线线-4线译码器可扩展线译码器可扩展4片片62128。各片。各片62128芯片芯片地地址分配址分配如如表表8-6所示。所示。4444图图8-15 译码法扩展外部数据存储器电路图译码法扩展外部数据存储器

38、电路图4545 【例例8-1】编写程序将片外数据存储器中编写程序将片外数据存储器中5000H50FFH单全单全部清部清“0”。方法方法1 用用DPTR作为数据区地址指针,同时使用字节计数作为数据区地址指针,同时使用字节计数 器。参考程序如下:器。参考程序如下:4646 方法方法2 用用DPTR作为数据区地址指针,但不使用字节计数作为数据区地址指针,但不使用字节计数器,而是比较特征地址。参考程序如下:器,而是比较特征地址。参考程序如下:4747482单片机片外数据区读单片机片外数据区读/写数据过程写数据过程 当程序运行中,执行当程序运行中,执行“MOV”类指令时,表示与片内类指令时,表示与片内R

39、AM交换数据;当遇到交换数据;当遇到“MOVX”类指令时,表示对片外数据类指令时,表示对片外数据存储器区寻址。片外数据存储器区只能间接寻址。存储器区寻址。片外数据存储器区只能间接寻址。例如,例如,把把片外片外6000H单元单元的数据送到的数据送到片内片内RAM 50H单单元元中,程序如下:中,程序如下:4849先先把把寻寻址址地地址址6000H6000H送送到到数数据据指指针针寄寄存存器器DPTRDPTR中中,当当执执行行“MOVX MOVX A A,DPTRDPTR”时时,DPTRDPTR的的低低8 8位位(00H00H)经经P0P0口口输输出出并并锁锁存存,高高8 8位位(60H60H)经

40、经 P2P2口口 直直 接接 输输 出出,根根 据据 P0P0口口、P2P2口口 状状 态态 选选 中中IC4IC4(62646264)的的6000H6000H单单元元。当当读读选选通通信信号号为为低低电电平平时时,片片外外6000H6000H单单元元的的数数据据经经P0P0口口送送往往累累加加器器A A。当当执执行行指指令令“MOV MOV 50H50H,A A”时,则把该数据存入片内时,则把该数据存入片内50H50H单元。单元。向片外数据区写数据的过程与读数据的过程类似。向片外数据区写数据的过程与读数据的过程类似。例如,例如,把把片内片内50H50H单元的数据送到片外单元的数据送到片外40

41、00H4000H单元单元中,程序中,程序如下:如下:50 执执行行第第1 1条条指指令令,先先把把片片内内RAM RAM 50H50H单单元元的的数数据据送送到到A A中中,第第2 2条条指指令令把把寻寻址址地地址址4000H4000H送送到到数数据据指指针针寄寄存存器器DPTRDPTR中中,当当执执行行“MOVX MOVX DPTRDPTR,A A”时时,DPTRDPTR的的低低8 8位位(00H00H)由由P0P0口口输输出出并并锁锁存存,高高8 8位位(40H40H)由由P2P2口口直直接接输输出出,根根据据P0P0口口、P2P2口口状状态态选选中中IC3IC3(62646264)的的4

42、000H4000H单单元元。当当写写选选通通信信号号WR*WR*有有效效时时,A A中中的的内内容送往片外容送往片外4000H4000H单元。单元。单片机读写片外数据存储器中内容,除了用单片机读写片外数据存储器中内容,除了用“MOVX A,DPTR”和和“MOVX DPTR,A”外,还可用指令外,还可用指令“MOVX A,Ri”和和“MOVX Ri,A”。这时。这时P0口装入口装入Ri中内容(低中内容(低8位地位地址),而把址),而把P2口原有的内容作为高口原有的内容作为高8位地址输出。位地址输出。【例例8-4】是是采用采用“MOVX Ri,A”指令的例子。指令的例子。51 【例例8-48-4

43、】编程,将编程,将程序存储器中以程序存储器中以TABTAB为首址的为首址的3232个个单元内容单元内容依次传送到依次传送到外部外部RAMRAM以以4000H4000H为首址的区域。为首址的区域。DPTR DPTR指向标号指向标号TABTAB首地址。首地址。R0R0既指示外部既指示外部RAMRAM的地址,又表示数的地址,又表示数据标号据标号TABTAB的位移量。程序为一循环程序,的位移量。程序为一循环程序,循环次数为循环次数为3232,R0R0的的值达到值达到3232就结束循环。就结束循环。参考程序参考程序:515252538.4 片内片内Flash存储器的编程存储器的编程 目前许多公司生产的目

44、前许多公司生产的8051内核单片机,在芯片内部大多集内核单片机,在芯片内部大多集成了数量不等的成了数量不等的Flash ROM,例如,美国例如,美国ATMEL公司生产的公司生产的AT89S5x系列单片机,片内分别有不同容量的系列单片机,片内分别有不同容量的Flash ROM,作为片内程序存储器使用,见作为片内程序存储器使用,见表表8-7。此时,在片内的。此时,在片内的Flash ROM满足要求的情况下,扩展外满足要求的情况下,扩展外部程序存储器的工作就可省部程序存储器的工作就可省去,只需讨论如何向片内的去,只需讨论如何向片内的Flash ROM写入程序问题。写入程序问题。程序存储器为只读存储器

45、,因为这种存储器在电源关断后,程序存储器为只读存储器,因为这种存储器在电源关断后,仍能保存程序(称此特性为非易失性的),在系统上电后,仍能保存程序(称此特性为非易失性的),在系统上电后,CPU可取出这些指令重新执行。可取出这些指令重新执行。5455只读存储器简称只读存储器简称ROM(Read Only Memory)。)。ROM中的信息中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称为只读存储器。入新的内容,故称为只读存储器。常见的只读存储器有以下几种。常见的只读存储器有以下几种。(1)EPROM。EPROM是

46、用电信号编程,用紫外线擦除的只是用电信号编程,用紫外线擦除的只读存储器芯片。在芯片外壳的中间位置有一个圆形窗口,通过读存储器芯片。在芯片外壳的中间位置有一个圆形窗口,通过该窗口照射紫外线就可擦除原有的信息。使用编程器可将调试该窗口照射紫外线就可擦除原有的信息。使用编程器可将调试完毕的程序写入。完毕的程序写入。(2)E2PROM(EEPROM)。)。E2PROM这是一种用电信号编这是一种用电信号编程,也用电信号擦除的程,也用电信号擦除的ROM芯片。对芯片。对E2PROM的读写操作与的读写操作与RAM存储器几乎没有什么差别,只是写入的速度慢一些,存储器几乎没有什么差别,只是写入的速度慢一些,56但

47、断电后仍能保存信息。但断电后仍能保存信息。(3)Flash ROM。Flash ROM又称闪烁存储器(简称闪存),又称闪烁存储器(简称闪存),Flash ROM是在是在EPROM、E2PROM的基础上发展起来的一种的基础上发展起来的一种电擦除型只读存储器。其特点是可快速在线修改其存储单元中电擦除型只读存储器。其特点是可快速在线修改其存储单元中的数据,最大改写次数可达的数据,最大改写次数可达1万次,其读写速度很快,存取时间万次,其读写速度很快,存取时间可达可达70ns,成本却比普通,成本却比普通E2PROM低得多。低得多。美国美国ATMEL公司的公司的AT89S5x系列单片机,在片内系列单片机,

48、在片内Flash ROM满满足要求的情况下,外部程序存储器的扩展工作即可省去。本节足要求的情况下,外部程序存储器的扩展工作即可省去。本节只讨论如何把已调试完毕的程序代码写入到只讨论如何把已调试完毕的程序代码写入到AT89S52的片内的片内Flash存储器中,即存储器中,即Flash存储器的编程问题。存储器的编程问题。57AT89S52AT89S52单片机片内单片机片内8KB Flash8KB Flash存储器的基本特性如下:存储器的基本特性如下:(1 1)可循环写入)可循环写入/擦除擦除1 1000000次;次;(2 2)存储器数据保存时间为)存储器数据保存时间为1010年;年;单片机芯片出厂

49、时,单片机芯片出厂时,FlashFlash存储器处于全部空白状态(各单元均存储器处于全部空白状态(各单元均为为FFHFFH),可直接进行编程写入。若),可直接进行编程写入。若FlashFlash存储器不全为空白状存储器不全为空白状态(即单元中有不是态(即单元中有不是FFHFFH的),应该首先将芯片擦除(即各个单的),应该首先将芯片擦除(即各个单元均为元均为FFHFFH)后,才可向其写入调试通过的程序代码。)后,才可向其写入调试通过的程序代码。58AT89S52片内的片内的Flash存储器有存储器有3个可编程的加密位,定义了个可编程的加密位,定义了3个加密级别,用户只要对个加密级别,用户只要对3

50、个加密位:个加密位:LB1、LB2、LB3进行编进行编程即可实现程即可实现3个不同级别的加密。经过上述的加密处理,使解密个不同级别的加密。经过上述的加密处理,使解密的难度加大,但还是可以解密。现在还有一种非恢复性加密的难度加大,但还是可以解密。现在还有一种非恢复性加密(OTP加密)方法,就是将加密)方法,就是将AT89S52的第的第31脚(脚)烧断或某脚(脚)烧断或某些数据线烧断,经过上述处理后的芯片仍然正常工作,但不再些数据线烧断,经过上述处理后的芯片仍然正常工作,但不再具有读取、擦除、重复烧写等功能。这是一种较强的加密手段,具有读取、擦除、重复烧写等功能。这是一种较强的加密手段,某些型号的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 事务文书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁