单片机原理与应用设计张毅刚等编著电子教案第8章_第1页
单片机原理与应用设计张毅刚等编著电子教案第8章_第2页
单片机原理与应用设计张毅刚等编著电子教案第8章_第3页
单片机原理与应用设计张毅刚等编著电子教案第8章_第4页
单片机原理与应用设计张毅刚等编著电子教案第8章_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用设计张毅刚等编著电子教案第8章第第8 8章章 89C51 89C51单片机扩展存储器的设计单片机扩展存储器的设计8.1 8.1 系统扩展结构系统扩展结构 89C5189C51系统扩展结构如系统扩展结构如图图8-18-1所示。所示。 图图8-18-1由图由图8-18-1可以看出,系统扩展主要包括可以看出,系统扩展主要包括存储器扩展存储器扩展和和I/OI/O接接口部件扩展口部件扩展。外部存储器扩展外部存储器扩展又包括又包括程序存储器扩展程序存储器扩展和和数据存储器扩展数据存储器扩展。89C5189C51采用的是采用的是哈佛结构哈佛结构。扩展后,系统形成了扩展后,系统形成了两个并行两

2、个并行的外部存储器空间的外部存储器空间。89C5189C51单片机采用并行总线结构,大大增加了系统的灵活性,单片机采用并行总线结构,大大增加了系统的灵活性,使扩展易于实现,各扩展部件只要符合总线规范,就能使扩展易于实现,各扩展部件只要符合总线规范,就能很方便地接入系统。很方便地接入系统。由于系统扩展是以由于系统扩展是以89C5189C51单片机为核心,通过总线把单片机为核心,通过总线把89C5189C51与各扩展部件连接起来。因此,要进行系统扩展与各扩展部件连接起来。因此,要进行系统扩展首先要首先要构造系统总线构造系统总线。8.2 8.2 系统总线及总线构造系统总线及总线构造按功能通常把系统总

3、线分为三组,如按功能通常把系统总线分为三组,如图图8-18-1所示。所示。 1 1地址总线(地址总线(Adress BusAdress Bus,ABAB)地址总线用于传送单片机发出的地址信号,以便进行存储单元地址总线用于传送单片机发出的地址信号,以便进行存储单元和和I/OI/O接口芯片中的寄存器选择。地址总线是接口芯片中的寄存器选择。地址总线是单向传输单向传输的。的。2 2数据总线数据总线(Data Bus(Data Bus,DB)DB)数据总线用于在单片机与存储器之间或与数据总线用于在单片机与存储器之间或与I/OI/O端口之间传送数端口之间传送数据。数据总线是双向的,可以进行两个方向的传送。

4、据。数据总线是双向的,可以进行两个方向的传送。3 3控制总线(控制总线(Control BusControl Bus,CBCB)控制总线实际上就是单片机发出的各种控制信号线。控制总线实际上就是单片机发出的各种控制信号线。 8.2.1 8.2.1 构造系统总线构造系统总线 系统扩展的首要问题系统扩展的首要问题: : 构造系统总线。构造系统总线。系统总线上系统总线上“挂挂”存储器芯片或存储器芯片或I/OI/O接口芯片,接口芯片,“挂挂”存储器芯存储器芯片就是存储器扩展,片就是存储器扩展,“挂挂”I/O”I/O接口芯片就是接口芯片就是I/OI/O扩展。扩展。1 1以以P0P0口作为低口作为低8 8位

5、地址位地址/ /数据总线数据总线89C5189C51由于受引脚数目的限制,数据线和低由于受引脚数目的限制,数据线和低8 8位地址线复用。位地址线复用。为了将它们分离出来,需要为了将它们分离出来,需要外加地址锁存器外加地址锁存器,从而构成与一般,从而构成与一般CPUCPU相类似的片外三总线,见相类似的片外三总线,见图图8-28-2。 图图8-28-22. 2. 以以P2P2口的口线作为高位地址线口的口线作为高位地址线P2P2口的全部口的全部8 8位口线用作高位地址线,再加上位口线用作高位地址线,再加上P0P0口经地址锁存口经地址锁存器提供的低器提供的低8 8位地址,便形成了位地址,便形成了完整的

6、完整的1616位地址总线位地址总线(见图(见图8-28-2),使),使寻址范围达到寻址范围达到64KB64KB。3 3控制信号线控制信号线除了地址线和数据线之外,还要有系统的控制总线。这些信号除了地址线和数据线之外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是有的就是单片机引脚的第一功能信号,有的则是P3P3口第二功口第二功能信号。其中包括:能信号。其中包括:(1 1)PSENPSEN* *信号作为外扩程序存储器的读选通控制信号。信号作为外扩程序存储器的读选通控制信号。(2 2)RDRD* *和和WRWR* *信号作为外扩数据存储器和信号作为外扩数据存储器和I/OI

7、/O接口的读、写选接口的读、写选通控制信号。通控制信号。(3 3)ALEALE信号作为低信号作为低8 8位地址的锁存控制信号。位地址的锁存控制信号。(4 4)EAEA* *信号作为内、外程序存储器的选择控制信号。信号作为内、外程序存储器的选择控制信号。可看出,尽管可看出,尽管89C5189C51单片机有单片机有4 4个并行的个并行的I/OI/O口,共口,共3232条口线,条口线,但由于系统扩展的需要,但由于系统扩展的需要,真正作为数字真正作为数字I/OI/O使用的,就剩使用的,就剩下下P1P1口和口和P3P3口的部分口线了。口的部分口线了。8.2 8.2 地址空间分配和外部地址锁存器地址空间分

8、配和外部地址锁存器8.2.1 8.2.1 存储器地址空间分配存储器地址空间分配 如何把外部各自的如何把外部各自的64KB64KB空间分配给各个程序存储器、数据存储空间分配给各个程序存储器、数据存储器芯片,并且使程序存储器的各个芯片之间,数据存储器各器芯片,并且使程序存储器的各个芯片之间,数据存储器各芯片之间,为避免发生数据冲突,芯片之间,为避免发生数据冲突,一个存储器单元对应一个一个存储器单元对应一个地址地址,这就是存储器的地址空间的分配问题。,这就是存储器的地址空间的分配问题。在外扩的多片存储器芯片中,在外扩的多片存储器芯片中,89C5189C51要完成这种功能,必须进要完成这种功能,必须进

9、行行两种选择两种选择:一是必须选中该存储器芯片一是必须选中该存储器芯片(或(或I/OI/O接口芯片),这称为接口芯片),这称为“片片选选”,只有被只有被“选中选中”的存储器芯片才能被的存储器芯片才能被89C5189C51读出或写读出或写入数据。为了片选的需要,每个存储器芯片都有片选信号引入数据。为了片选的需要,每个存储器芯片都有片选信号引脚,脚,二是在二是在“片选片选”的基础上再选择该芯片的某一单元,称为的基础上再选择该芯片的某一单元,称为“单单元选择元选择”。常用的存储器地址空间分配方法有两种:常用的存储器地址空间分配方法有两种:线性选择法线性选择法(简(简称线选法)和称线选法)和地址译码法

10、地址译码法(简称译码法),下面分别介(简称译码法),下面分别介绍。绍。1 1线选法线选法直接利用系统的直接利用系统的高位地址线高位地址线作为存储器芯片(或作为存储器芯片(或I/OI/O接口芯接口芯片)的片)的“片选片选”控制信号控制信号。为此,只需要把用到的高位。为此,只需要把用到的高位地址线与存储器芯片的地址线与存储器芯片的“片选片选”端直接连接即可。端直接连接即可。线选法的线选法的优点优点是电路简单,不需要另外增加地址译码器硬是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。件电路,体积小,成本低。缺点缺点是可寻址的芯片数目受到限制。是可寻址的芯片数目受到限制。另外另外,地址空

11、间不连续,每个存储单元的地址不唯一,不,地址空间不连续,每个存储单元的地址不唯一,不能充分有效地利用存储空间,这会给程序设计带来一些不便,能充分有效地利用存储空间,这会给程序设计带来一些不便,只适用于外扩芯片数目不多的单片机系统的存储器扩展。只适用于外扩芯片数目不多的单片机系统的存储器扩展。2 2译码法译码法使用译码器对使用译码器对89C5189C51的高位地址进行译码,将的高位地址进行译码,将译码器的译码输译码器的译码输出作为存储器芯片的片选信号。出作为存储器芯片的片选信号。是最常用的地址空间分配是最常用的地址空间分配的方法,它能有效地利用存储器空间,适用于多芯片的存的方法,它能有效地利用存

12、储器空间,适用于多芯片的存储器扩展。储器扩展。常用的译码器芯片常用的译码器芯片有有74LS13874LS138(3-83-8译码器)译码器)74LS13974LS139(双(双2-42-4译码器)译码器)74LS15474LS154(4-164-16译码器)。若全部高位地址线都参译码器)。若全部高位地址线都参加译码,称为加译码,称为全译码全译码;若仅部分高位地址线参加译码,称;若仅部分高位地址线参加译码,称为为部分译码部分译码。部分译码存在着部分存储器地址空间相重叠的。部分译码存在着部分存储器地址空间相重叠的情况。情况。两种常用的译码器芯片。两种常用的译码器芯片。(1 1)74LS13874L

13、S13874LS13874LS138是是3-83-8译码器译码器,有,有3 3个数据输入端个数据输入端, ,经译码产生经译码产生8 8种状态。种状态。其引脚如其引脚如图图8-38-3所示,真值表如所示,真值表如表表8-18-1所示。所示。由由表表8-18-1可见,当译码器的输入为某一固定编码时,其可见,当译码器的输入为某一固定编码时,其输出仅输出仅有一个固定的引脚输出为低电平有一个固定的引脚输出为低电平,其余的为高电平其余的为高电平。而输。而输出为低电平的引脚就作为某一存储器芯片的片选端的控制出为低电平的引脚就作为某一存储器芯片的片选端的控制信号。信号。图图8-38-3 表表8-18-1 74

14、LS138 74LS138译码器真值表译码器真值表 输输 入入 输输 出出 G1 G2AG1 G2A* * G2B G2B* * C B A Y7 C B A Y7* * Y6Y6* * Y5Y5* * Y4Y4* * Y3Y3* * Y2Y2* * Y1Y1* * Y0Y0* * (2 2)74LS13974LS13974LS13974LS139是是双双2-42-4译码器译码器。两个译码器完全独立,分别有各自的。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端。其引脚数据输入端、译码状态输出端以及数据输入允许端。其引脚如如图图8-48-4所示,真值表如所示,真值表

15、如表表8-28-2所示(见所示(见P138P138)。)。图图8-48-4下面下面以以74LS13874LS138为例,介绍如何进行地址分配。为例,介绍如何进行地址分配。例例 要扩要扩8 8片片8KB8KB的的RAM 6264RAM 6264,如何通过,如何通过74LS13874LS138把把64KB64KB空间分空间分配给各个芯片?配给各个芯片? 64KB 64KB地址空间的分配如地址空间的分配如图图8-58-5所示。所示。图图8-58-5采用采用全地址译码方式全地址译码方式,单片机发地址码时,每次只能选中一个,单片机发地址码时,每次只能选中一个存储单元。同类存储器间不会产生地址重叠的问题。

16、存储单元。同类存储器间不会产生地址重叠的问题。如果如果用用74LS13874LS138把把64K64K空间全部划分为每块空间全部划分为每块4KB4KB,如何划分呢?,如何划分呢?由于由于4KB4KB空间需要空间需要1212条地址线进行条地址线进行“单元选择单元选择”,而译码器而译码器的输入有的输入有3 3条地址线(条地址线(P2.6P2.6P2.4P2.4),),P2.7P2.7没有参加译码,没有参加译码,P2.7P2.7发出的发出的0 0或或1 1决定了选择决定了选择64KB64KB存储器空间的前存储器空间的前32KB32KB还是后还是后32KB32KB,由于,由于P2.7P2.7没有参加译

17、码,就没有参加译码,就不是全译码方式不是全译码方式,这样前,这样前后两个后两个32KB32KB空间就重叠了。空间就重叠了。那么,那么,这这32KB32KB空间利用空间利用74LS13874LS138译码器可划分为译码器可划分为8 8个个4KB4KB空间空间。如果把如果把P2.7P2.7通过一个非门与通过一个非门与74LS13874LS138译码器的译码器的G1G1端连接起来,端连接起来,如如图图8-68-6所示,就不会发生两个所示,就不会发生两个32KB32KB空间重叠的问题了。空间重叠的问题了。 8.2.2 8.2.2 外部地址锁存器外部地址锁存器地址锁存器芯片地址锁存器芯片: 74LS37

18、3: 74LS373、82828282、74LS57374LS573等。等。1. 1. 锁存器锁存器74LS37374LS373带有三态门的带有三态门的8D8D锁存器锁存器, ,其引脚及内部结构如其引脚及内部结构如图图8-78-7和和图图8-88-8。 89C5189C51与与74LS37374LS373的连接如的连接如图图8-98-9所示。所示。 图图8-68-6引脚说明如下引脚说明如下: :D7D7D0:D0: 8 8位数据输入线。位数据输入线。Q7Q7Q0:Q0: 8 8位数据输出线。位数据输出线。G:G: 数据输入锁存选通信号数据输入锁存选通信号, , 图图8-78-7图图8-88-8

19、OEOE* *: : 数据输出允许信号数据输出允许信号图图8-98-974LS373功能如功能如表表8-3所示。所示。表表8-3 74LS3738-3 74LS373功能表功能表OEOE* * G GD DQ Q0 01 11 11 10 01 10 00 00 00 0不变不变1 1高阻态高阻态2 2锁存器锁存器74LS57374LS573 输入的输入的D D端和输出的端和输出的Q Q端依次排在芯片的两侧,端依次排在芯片的两侧,为绘制印刷电为绘制印刷电路板时的布线提供了方便。路板时的布线提供了方便。图图8-108-1074LS57374LS573的各的各引脚说明引脚说明如下如下: :D7D7

20、D0D0:8 8位数据输入线。位数据输入线。Q7Q7Q0Q0:8 8位数据输出线。位数据输出线。G G :数据输入锁存选通信号,该引脚与数据输入锁存选通信号,该引脚与74LS37374LS373的的G G端功能相端功能相同。同。OEOE* *:数据输出允许信号,低电平有效。当该信号为低电平时,数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。为高电平时,输出线为高阻态。8.3 8.3 程序存储器程序存储器EPROMEPROM的扩展的扩展 采用只读存储器,非易失性。采用

21、只读存储器,非易失性。(1 1)掩膜)掩膜ROMROM在制造过程中编程。成本较高,因此只适合于大批量生产。在制造过程中编程。成本较高,因此只适合于大批量生产。(2 2)可编程)可编程ROMROM(PROMPROM)用独立的编程器写入。但用独立的编程器写入。但PROMPROM只能写入一次,且不能再修改。只能写入一次,且不能再修改。(3 3)EPROMEPROM电信号编程,紫外线擦除的只读存储器芯片。电信号编程,紫外线擦除的只读存储器芯片。(4 4)E E2 2PROMPROM( EEPROM EEPROM)电信号编程,电信号擦除的电信号编程,电信号擦除的ROMROM芯片。读写操作与芯片。读写操作

22、与RAMRAM几乎没有几乎没有什么差别,只是写入的速度慢一些。但断电后能够保存信息。什么差别,只是写入的速度慢一些。但断电后能够保存信息。(5 5)Flash ROMFlash ROM又称闪烁存储器,简称闪存。又称闪烁存储器,简称闪存。大有取代大有取代E E2 2PROMPROM的趋势。的趋势。目前许多公司生产的以目前许多公司生产的以80518051为内核的单片机,在芯片内部大为内核的单片机,在芯片内部大多集成了数量不等的多集成了数量不等的Flash ROMFlash ROM。例如例如,美国美国ATMELATMEL公司公司生产的与生产的与5151系列单片机兼容的产品系列单片机兼容的产品89C2

23、051/89C51/89C52/89C5589C2051/89C51/89C52/89C55,片内分别有,片内分别有2KB/4KB/8KB/20KB2KB/4KB/8KB/20KB的的Flash ROMFlash ROM,来作为,来作为EPROMEPROM使用。使用。对于这类单片机,在片内的对于这类单片机,在片内的Flash ROMFlash ROM满足要求的情况下,扩满足要求的情况下,扩展外部程序存储器的工作就可省去。展外部程序存储器的工作就可省去。8.3.1 8.3.1 常用常用EPROMEPROM芯片介绍芯片介绍典型芯片是典型芯片是2727系系列列产品,例如,产品,例如, 2764276

24、4(8KB8KB8 8)、)、2712827128(16KB16KB8 8)、)、2725627256(32KB32KB8 8)、)、2751227512(64KB64KB8 8)。)。 “27”“27”后面的数字表示其位存储容量。后面的数字表示其位存储容量。随着大规模集成电路技术的发展,大容量存储器芯片的产量剧随着大规模集成电路技术的发展,大容量存储器芯片的产量剧增,售价不断下降,其性价比明显增高,而且由于有些厂家增,售价不断下降,其性价比明显增高,而且由于有些厂家已停止生产小容量的芯片,使市场上某些小容量芯片的价格已停止生产小容量的芯片,使市场上某些小容量芯片的价格反而比大容量芯片还贵。反

25、而比大容量芯片还贵。所以,所以,在扩展程序存储器设计时,应尽量采用在扩展程序存储器设计时,应尽量采用大容量大容量芯片。芯片。2727系列系列EPROMEPROM芯片的引脚如芯片的引脚如图图8-118-11所示,参数见所示,参数见表表8-48-4(P143P143,略)。略)。图图8-118-11中的中的引脚功能如下:引脚功能如下:A0A0A15A15:地址线引脚。数目决定存储容量来定,用来进行单元地址线引脚。数目决定存储容量来定,用来进行单元选择。选择。D7D7D0D0:数据线引脚数据线引脚CECE* *:片选输入端片选输入端OEOE* * :输出允许控制端:输出允许控制端PGMPGM* *:

26、编程时,加编程脉冲的输入端编程时,加编程脉冲的输入端VppVpp:编程时,编程电压(编程时,编程电压(+12V+12V或或+25V+25V)输入端)输入端VccVcc:+5V+5V,芯片的,芯片的工作工作电压。电压。 GNDGND:数字地。数字地。NCNC:无用端无用端 图图8-118-112. EPROM2. EPROM芯片的工作方式芯片的工作方式5 5种工作方式如种工作方式如表表8-58-5所示。所示。(1 1)读出方式)读出方式 片选控制线为低片选控制线为低, ,同时输出允许控制线为低,同时输出允许控制线为低,VppVpp为为+5V+5V,指定地址单元的内容从指定地址单元的内容从D7D7

27、D0D0上读出。上读出。 (2 2)未选中方式)未选中方式 片选控制线为高电平。片选控制线为高电平。(3 3)编程方式)编程方式 Vpp Vpp端加上规定高压端加上规定高压, CE, CE* *和和OEOE* *端加合适电平端加合适电平( (不同的芯片不同的芯片要求不同要求不同) ),就能将数据线上的数据写入到指定的地址单,就能将数据线上的数据写入到指定的地址单元。元。 (4 4)编程校验方式)编程校验方式 (5 5)编程禁止方式)编程禁止方式 输出呈高阻状态,不写入程序。输出呈高阻状态,不写入程序。8.3.2 8.3.2 程序存储器的操作时序程序存储器的操作时序1. 1. 访问程序存储器的控

28、制信号访问程序存储器的控制信号(1 1)ALE ALE (2 2)PSENPSEN* *(3 3)EAEA* *如果指令是从片外如果指令是从片外EPROMEPROM中读取,中读取,ALEALE用于低用于低8 8位地址锁存,位地址锁存,PSENPSEN* *接外扩接外扩EPROMEPROM的的OEOE* *脚。脚。P0P0口口: :分时低分时低8 8位地址总线和数据总线,位地址总线和数据总线,P2P2口口: :高高8 8位地址线。位地址线。 2. 2. 操作时序操作时序 (1) (1) 应用系统中无片外应用系统中无片外RAM RAM 图图8-12(a)8-12(a)(2) (2) 应用系统中接有

29、片外应用系统中接有片外RAM RAM 图图8-12(b)8-12(b)由图由图8-12(b)8-12(b)可看出:可看出:(1 1)将)将ALEALE用作定时脉冲输出时,用作定时脉冲输出时,执行一次执行一次MOVXMOVX指令就会丢失指令就会丢失一个脉冲一个脉冲。(2 2)只有在执行)只有在执行MOVXMOVX指令时的第二个机器周期期间,地址总线指令时的第二个机器周期期间,地址总线才由数据存储器使用。才由数据存储器使用。8.3.3 89C518.3.3 89C51与与EPROMEPROM的接口电路设计的接口电路设计 1. 1. 硬件接口电路硬件接口电路 设计时,由于设计时,由于EPROMEPR

30、OM在正常使用中只能读出,不能写入,故在正常使用中只能读出,不能写入,故EPROMEPROM芯片没有写入控制脚,只有读出控制脚,记为芯片没有写入控制脚,只有读出控制脚,记为OEOE* *,它,它与与89C5189C51单片机的单片机的PSENPSEN* *相连,地址线、数据线分别与相连,地址线、数据线分别与89C5189C51的的地址线、数据线相连,片选端的控制可采用线选法或译码法。地址线、数据线相连,片选端的控制可采用线选法或译码法。图图8-138-13为为外扩一片外扩一片2712827128的接口电路图的接口电路图 。图图8-138-133. 3. 使用多片使用多片EPROMEPROM的扩

31、展电路的扩展电路89C5189C51扩展扩展4 4片片2712827128。 图图8-148-14图图8-148-14中的片选控制信号由译码器产生。中的片选控制信号由译码器产生。4 4片片2712827128各自所占的各自所占的地址空间,请读者自己分析。地址空间,请读者自己分析。 8.4 8.4 静态数据存储器的扩展静态数据存储器的扩展在单片机应用系统中,外扩的数据存储器都采用静态数据存储在单片机应用系统中,外扩的数据存储器都采用静态数据存储器(器(SRAMSRAM),所以),所以只讨论只讨论SRAMSRAM与与89C5189C51的接口的接口。所扩展的数据存储器空间地址由所扩展的数据存储器空

32、间地址由P2P2口提供高口提供高8 8位地址,位地址,P0P0口分时口分时提供低提供低8 8位地址和位地址和8 8位双向数据总线。片外数据存储器位双向数据总线。片外数据存储器RAMRAM的的读读和和写写由由89C5189C51的的RDRD* *(P3.7P3.7)和)和WRWR* *(P3.6P3.6)信号控制,而片外)信号控制,而片外程序存储器程序存储器EPROMEPROM的输出允许端(的输出允许端(OEOE* *)由)由89C5189C51的程序存储器的程序存储器读选通信号读选通信号PSENPSEN* *控制。控制。尽管与尽管与EPROMEPROM的地址空间范围都是相同的,但由于控制信号不

33、同,的地址空间范围都是相同的,但由于控制信号不同,故不会发生总线冲突。故不会发生总线冲突。8.4.1 8.4.1 常用的静态常用的静态RAMRAM(SRAMSRAM)芯片)芯片典型型号有典型型号有: :61166116、62646264、6212862128、6225662256。+5V+5V电源供电,双列电源供电,双列直插封装,直插封装,61166116为为2424引脚封装,引脚封装,62646264、6212862128、6225662256为为2828引引脚封装,引脚如脚封装,引脚如图图8-158-15。各引脚功能各引脚功能: : A0 A0A14A14:地址输入线。地址输入线。 D0

34、D0D7D7:双向三态数据线。双向三态数据线。 CE CE* *:片选信号输入。对于片选信号输入。对于62646264芯片,当芯片,当2626脚脚(CS)(CS)为高电平为高电平时时, ,且且CECE* *为低电平时才选中该片。为低电平时才选中该片。 OE OE* *:读选通信号输入线。:读选通信号输入线。 WE WE* *:写允许信号输入线,低电平有效。:写允许信号输入线,低电平有效。图图8-158-15VccVcc:工作电源工作电源+5V+5VGNDGND:地地工作方式有工作方式有读出、写入、维持读出、写入、维持三种,这些工作方式的操作控制三种,这些工作方式的操作控制如如表表8-68-6(

35、P148)(P148)。8.4.2 8.4.2 外扩数据存储器的读写操作时序外扩数据存储器的读写操作时序 图图8-168-162. 2. 写片外写片外RAMRAM操作时序操作时序 写是写是CPUCPU主动把数据送上主动把数据送上P0P0口总线。故在时序上,口总线。故在时序上,CPUCPU先向先向P0P0口口总线上送完总线上送完8 8位地址后,在位地址后,在S3S3状态就将数据送到状态就将数据送到P0P0口总线。口总线。 图图8-178-178.4.3 89C518.4.3 89C51与与RAMRAM的接口电路设计的接口电路设计 图图8-188-18为线选法扩展外部数据存储器的电路为线选法扩展外

36、部数据存储器的电路。 图图8-188-18地址线为地址线为A0A0A12A12,故,故80318031剩余地址线为三根。用线选法可扩剩余地址线为三根。用线选法可扩展展3 3片片62646264。3 3片片62646264对应的存储器空间如对应的存储器空间如表表8-78-7。表表8-78-7译码选通法扩展译码选通法扩展,如如图图8-19所示。所示。图图8-198-19各各6212862128芯片的地址分配见芯片的地址分配见表表8-98-9。 表表8-9 8-9 各片各片6212862128地址分配地址分配 P2.6 P2.7 P2.6 P2.7 译码输出译码输出 选中芯片选中芯片 地址范围地址范

37、围 存储容量存储容量 0 0 YO0 0 YO* * IC1 0000H-3FFFH 16K IC1 0000H-3FFFH 16K 0 1 Y1 0 1 Y1* * IC2 4000H-7FFFH 16K IC2 4000H-7FFFH 16K 1 0 Y2 1 0 Y2* * IC3 8000H-BFFFH 16K IC3 8000H-BFFFH 16K 1 1 Y3 1 1 Y3* * IC4 C000H-FFFFH 16K IC4 C000H-FFFFH 16K 例例8-18-1 编写程序将片外数据存储器中编写程序将片外数据存储器中5000H5000H50FFH50FFH单元全部单元全

38、部清零清零方法方法1 1:用用DPTRDPTR作为数据区地址指针,同时作为数据区地址指针,同时使用字节计数器使用字节计数器。 MOV DPTRMOV DPTR,#5000H#5000H;设置数据块指针的初值;设置数据块指针的初值 MOV R7 MOV R7,#00H#00H ;设置块长度计数器初值;设置块长度计数器初值 CLR A CLR ALOOPLOOP: MOVX DPTR MOVX DPTR,A A ;把某一单元清零;把某一单元清零 INC DPTR INC DPTR ;地址指针加;地址指针加1 1 DJNZ R7 DJNZ R7,LOOP LOOP ;数据块长度减;数据块长度减1 1

39、,若不为,若不为 ;0 0则继续清零则继续清零HEREHERE: SJMP HERE SJMP HERE ;执行完毕,原地踏步;执行完毕,原地踏步方法方法2 2:用用DPTRDPTR作为数据区地址指针,但不使用字节计数器,而是作为数据区地址指针,但不使用字节计数器,而是比比较特征地址较特征地址。 MOV DPTRMOV DPTR,#5000H#5000HCLR ACLR ALOOPLOOP:MOVX DPTRMOVX DPTR,A AINC DPTRINC DPTRMOV R7MOV R7,DPLDPLCJNE R7CJNE R7,#0#0,LOOP LOOP ;与末地址;与末地址+1+1比较

40、比较HEREHERE:SJMP HERESJMP HERE8.6 EPROM8.6 EPROM和和RAMRAM的综合扩展的综合扩展8.6.1 8.6.1 综合扩展的硬件接口电路综合扩展的硬件接口电路例例8-28-2 采用采用线选法线选法扩展扩展2 2片片8KB8KB的的RAMRAM和和2 2片片8KB8KB的的EPROMEPROM。RAMRAM选选62646264,EPROMEPROM选选27642764。扩展接口电路见。扩展接口电路见图图8-208-20。 图图8-208-20(1 1)控制信号及片选信号)控制信号及片选信号IC2IC2和和IC4IC4占用地址空间为占用地址空间为2000H2

41、000H3FFFH3FFFH共共8KB8KB。同理。同理IC1IC1、IC3IC3地址范围地址范围4000H4000H5FFFH5FFFH(P2.6=1P2.6=1、P2.5=0P2.5=0、P2.7=0P2.7=0)。)。线选法地址不连续,地址空间利用不充分。线选法地址不连续,地址空间利用不充分。(2 2)各芯片地址空间分配)各芯片地址空间分配IC2IC2和和IC4IC4占用的地址空间为占用的地址空间为A000HA000HBFFFHBFFFH共共8KB8KB。同理同理IC1IC1、IC3IC3的地址范围为的地址范围为C000HC000HDFFFHDFFFH。4 4片存储器各自所片存储器各自所

42、占的地址空间如占的地址空间如表表8-98-9所示。所示。 例例8-38-3 采用采用译码器法译码器法扩展扩展2 2片片8KB EPROM8KB EPROM,2 2片片8KB RAM8KB RAM。EPROMEPROM选选用用27642764,RAMRAM选用选用62646264。共扩展。共扩展4 4片芯片。扩展接口电路见片芯片。扩展接口电路见图图8-218-21。 图图8-218-21各存储器地址范围如下:各存储器地址范围如下:表表8-98-9可见译码法进行地址分配,各芯片地址空间是连续的。可见译码法进行地址分配,各芯片地址空间是连续的。8.5.2 8.5.2 外扩存储器电路的工作原理及软件设

43、计外扩存储器电路的工作原理及软件设计 1. 1. 单片机片外程序区读指令过程单片机片外程序区读指令过程 2. 2. 单片机片外数据区读单片机片外数据区读/ /写数据过程写数据过程 例如,例如,把片外把片外6000H6000H单元的数送到片内单元的数送到片内RAM 50HRAM 50H单元,程序如下:单元,程序如下:MOV DPTRMOV DPTR,#6000H#6000HMOVX AMOVX A,DPTRDPTRMOV 50HMOV 50H,A A 例如,例如,把片内把片内50H50H单元的数据送到片外单元的数据送到片外4000H4000H单元中,程序如下:单元中,程序如下:MOV A,50H

44、MOV A,50HMOV DPTR,#4000HMOV DPTR,#4000HMOVX MOVX DPTR,ADPTR,A89C5189C51单片机读写片外数据存储器中的内容,除用单片机读写片外数据存储器中的内容,除用MOVX MOVX A,DPTRA,DPTR和和MOVX DPTR,AMOVX DPTR,A外,还可使用外,还可使用MOVX A,RiMOVX A,Ri和和MOVX MOVX Ri,ARi,A。这时通过这时通过P0P0口输出口输出RiRi中的内容(低中的内容(低8 8位地址),而把位地址),而把P2P2口原有的内容作为高口原有的内容作为高8 8位地址输出。位地址输出。例例8-48

45、-4 将程序存储器中以将程序存储器中以TABTAB为首址的为首址的3232个单元的内容依次传个单元的内容依次传送到外部送到外部RAMRAM以以7000H7000H为首地址的区域去。为首地址的区域去。DPTRDPTR指向标号指向标号TABTAB的首地址。的首地址。R0R0既指示外部既指示外部RAMRAM的地址,又表示的地址,又表示数据标号数据标号TABTAB的位移量。本程序的循环次数为的位移量。本程序的循环次数为3232,R0R0的值:的值:0 03131,R0R0的值达到的值达到3232就结束循环。程序如下:就结束循环。程序如下:MOVMOVP2,#70HP2,#70HMOVMOVDPTR,#

46、TABDPTR,#TABMOVMOVR0,#0R0,#0AGIN:AGIN:MOVMOVA,R0A,R0MOVCMOVCA,A+DPTRA,A+DPTRMOVXMOVXR0,AR0,AINCINCR0R0CJNECJNER0,#32,AGINR0,#32,AGINHERE:HERE:SJMPSJMPHEREHERETAB:TAB:DB DB 8.6 ATMEL89C51/89C558.6 ATMEL89C51/89C55单片机的片内闪烁存储器单片机的片内闪烁存储器 AT89C51/89C52/89C55AT89C51/89C52/89C55是低功耗、高性能的是低功耗、高性能的片内含有片内含有4

47、KB/8KB/20KB4KB/8KB/20KB闪烁可编程闪烁可编程/ /擦除只读存储器,芯片内的闪存擦除只读存储器,芯片内的闪存允许在线编程或采用通用的编程器对其重复编程。允许在线编程或采用通用的编程器对其重复编程。8.6.1 89C518.6.1 89C51的性能及片内闪烁存储器的性能及片内闪烁存储器89C5189C51的主要性能的主要性能(1 1)与)与MCS-51MCS-51微控制器系列产品兼容。微控制器系列产品兼容。(2 2)片内有)片内有4KB4KB可在线重复编程的闪烁存储器可在线重复编程的闪烁存储器(Flash MemoryFlash Memory)(3 3)存储器可循环写入)存储器可循环写入/ /擦除擦除1000010000次次。(4 4)存储器)存储器数据保存时间数据保存时间为为1010年年。(5 5)宽工作电压范围:)宽工作电压范围:VccVcc可为可为+2.7+2.76V6V。 (6 6)全静态工作:可从)全静态工作:可从0Hz0Hz16MHz16MHz。(7 7)程序存储器具有)程序存储器具有3 3级加密保护。级加密保护。

温馨提示

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

评论

0/150

提交评论