第11章 MCS51单片机系统扩展第2部分1.docx
《第11章 MCS51单片机系统扩展第2部分1.docx》由会员分享,可在线阅读,更多相关《第11章 MCS51单片机系统扩展第2部分1.docx(22页珍藏版)》请在冰豆网上搜索。
第11章MCS51单片机系统扩展第2部分1
【作业1:
画出扩展一片27256(32K)的电路连接图】
【作业2:
写出上图中的IC1~IC4的地址范围】
【作业3:
画出扩展2片27256的电路连接图,并写出2个芯片的地址范围】
【作业4:
自己选中一个例题进行改编,用74LS139译码器的输出进行片选】
【注:
74LS28为2输入或非门】【已通过74LS273】
【XBYTE[0xfdff]=num;//P21=0,/WR=0,CLK为0,然后/WR=1,CLK=1,产生正跳变,这样和真值表的内容一致】
【MOVX指令的写端口时序
【
#include
#include
#definex273_addXBYTE[0xfdff]
voiddelay(unsignedintcount)
{unsignedchari;
while(count--)
for(i=0;i<120;i++);
}
voidmain()
{unsignedintnum=1;
while
(1)
{x273_add=~num;//XBYTE[0xfdff]=~num;
delay(500);
num=num*2;//num=num<<1;
if(num==256)num=1;
}
}
【例题】
【MOVX指令的读端口时序
】
【已通过74LS244】
#include
#include
voidmain()
{unsignedcharnum;
while
(1)
{num=XBYTE[0xfeff];//P20=0,/RD=0,->/OE=0
P1=num;//从P1口输出开关状态
}
}
11.5存储器扩展
11.5.1存储器扩展概述
一、80C51单片机的存储器扩展
80C51单片机地址总线宽度为16位(P0口为低8位,P2口为高8位),片外可扩展的存储器最大容量为64KB,地址为0000H~FFFFH。
因为程序存储器和数据存储器是通过不同的控制信号和指令进行访问【程序存储器用单片机的
引脚,数据存储器用
和
引脚】,允许两者的地址空间重叠(或相同)。
所以片外可扩展的程序存储器与数据存储器分别都为64KB。
【类似于串行的SBUF,地址都为99H,一个只能输出,一个只能输入;例如用74LS244和74LS273的例题,对输入和输出,也是用的相同地址】
二、存储器扩展的一般方法
不论何种存储器芯片,其引脚都是用三总线结构(AB、DB、CB)和单片机连接都是三总线对接。
存储器编址分两个层次:
(1)存储芯片的选择(用高位地址线进行片选[线选或译码输出]);
(2)芯片内部存储单元的选择(用低位地址线)。
如下图,如果存储器芯片容量为2KB,则需要地址线为11根,芯片的引脚可以与地址总线的低11位A0~A10相连,用于选择芯片内的具体字节单元。
如果用地址总线的A14、A13、A12、A11四根地址线参加译码来选择芯片【例如用74LS154,4—16】,如果选定这四根地址总线的状态为0010时选中该芯片。
由于地址总线A15不参加译码,所以当地址总线A15为0、1两种状态都可以选中该存储器芯片。
当A15=0时,芯片占用的地址是:
0001000000000000~0001011111111111,即1000H~17FFH。
【0001000000000000~0001011111111111】
当A15=1时,芯片占用的地址是:
1001000000000000~1001011111111111,即9000H~97FFH。
【1001000000000000~1001011111111111】
11.5.2程序存储器的扩展
单片机系统在关掉电源后,程序存储器仍能保存其中的内容(程序、常数、表格数据),单片机运行时,程序存储器中的信息只能读出,要用特殊方式写入(固化信息),断电后可保持信息不丢失。
向程序存储器中“写入”信息称为程序存储器编程。
根据编程方式不同,分为以下几种。
(1)ROM。
(ReadOnlyMemory)在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。
由生产芯片的厂家固化信息。
在最后一道工序用掩膜工艺写入信息,用户只能读。
这种芯片存储结构简单,集成度高,但由于掩模工艺成本较高,因此只适合于大批量生产。
【计算机中的BIOS芯片采用】
(2)可编程ROM(PROM)。
芯片出厂时没有任何程序信息,用户可进行一次编程。
存储单元电路由熔丝相连,当加入写脉冲,某些存储单元熔丝熔断,信息永久写入,不能再次改写。
(3)EPROM。
使用专用的编程器将调试完毕的程序写入。
如果要改写其中的程序,必须用紫外线照射芯片外壳的中间位置的圆形窗口【大约需要几分钟时间】,清除掉其中的程序后(二进制代码),可再次写入。
程序写入后,要在圆形窗口上贴上挡光贴片,以防紫外线照射。
【医院的紫外线灯,太阳下照射】
(4)E2PROM(EEPROM)。
既可全片擦除也可字节擦除,可在线擦除信息,又能失电保存信息,具备RAM、ROM的优点,但写入时间较长。
对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入的速度慢一些,但断电后仍能保存信息,对数据的保存期为10年。
(5)FlashROM。
又称闪速存储器(简称闪存),是在EPROM、E2PROM的基础上发展起来的一种电擦除型只读存储器。
特点是可快速在线修改其存储单元中的数据,改写次数可达1万次,其读写速度很快,存取时间可达70ns,而成本比E2PROM低得多,大有取代E2PROM的趋势。
【如果空间没有利用完,可以用不同的单元进行改写,这样可延长芯片的寿命】
目前许多公司生产的8051内核的单片机,在芯片内部大多集成了数量不等的FlashROM。
例如,美国ATMEL公司产品AT89C5x/AT89S5x,片内有不同容量的FlashROM。
在片内的FlashROM满足要求下,扩展外部程序存储器可省去。
11.5.3常用的EPROM芯片
使用较多的是并行EPROM,EPROM的典型芯片是27系列产品,例如,2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。
型号“27”后面的数字表示其位存储容量。
如果换算成字节容量,只需将该数字除以8即可。
例如,“27128”中的“27”后的数字“128”,128/8 =16KB
随着大规模集成电路技术的发展,大容量存储器芯片产量剧增,售价不断下降,性价比明显增高,且由于小容量芯片停止生产,使市场某些小容量芯片价格反而比大容量芯片还贵。
所以,应尽量采用大容量芯片。
1.常用EPROM芯片引脚
27系列EPROM芯片的引脚如图11-12所示。
芯片引脚功能为:
A0~A15:
地址线引脚。
用于进行单元选择。
芯片的存储容量决定需要利用A0~A15中的多少根引脚。
D7~D0:
8根数据线。
:
片选控制端。
【低电平有效,由线选或译码器输出选择】
:
输出允许控制端。
【低电平有效,和单片机的
相连】
:
编程时,编程脉冲的输入端。
图11-12常用EPROM芯片引脚
VPP:
编程时,编程电压(+12.5V或+21V)输入端。
VCC:
+5V,芯片的工作电压。
GND:
数字地。
NC:
无用端。
【不用,可以不连接】
表11-4为27系列EPROM芯片的技术参数,其中VCC是芯片供电电压,VPP是编程电压,Im为最大静态电流,Is为维持电流,TRM为最大读出时间。
表11-4常用EPROM芯片参数表
2.EPROM芯片的工作方式
5种工作方式,由
、
、
信号的组合确定。
如表11-5。
表11-5EPROM的5种工作方式
方式
D7~D0
读出
低
低
+5V
程序、数据读出
未选中
高
×
+5V
高阻
编程
正脉冲
高
+21V(或+12.5)
程序写入
程序校验
低
低
+21V(或+12.5)
程序读出
编程禁止
低
高
+21V(或+12.5)
高阻
(1)读出方式:
工作在该方式的条件是:
使片选控制线
为低电平,同时让输出允许控制线
为低电平,VPP为+5V,就可把指定地址单元的内容从D7~D0上读出。
(2)未选中方式:
当片选控制线
为高电平时,芯片未选中方式,数据输出为高阻抗悬浮状态,不占用数据总线【相当于断开】。
EPROM处于低功耗的维持状态。
(3)编程方式。
在VPP端加上规定好的高压,
和
端加上合适的电平(不同芯片要求不同),能将数据写入到指定地址单元。
编程地址和编程数据分别由系统的A15~A0和D7~D0提供。
(4)编程校验方式。
VPP端保持相应的编程电压(高压),再按读出方式操作,读出固化好的内容,校验写入内容是否正确。
(5)编程禁止方式。
11.5.4程序存储器的操作时序
1.访问程序存储器的控制信号
80C51单片机访问片外扩展的程序存储器时,所用的控制信号有以下3种。
(1)ALE:
用于低8位地址锁存控制,一般都接74LS373的G端。
(2)
:
片外程序存储器“读选通”控制信号。
它接外扩EPROM的
引脚。
(3)
:
片内、片外程序存储器访问的控制信号。
当
=1时,在单片机发出的地址小于片内程序存储器最大地址时,访问片内程序存储器;当
=0时,只访问片外程序存储器。
如果指令是从片外EPROM中读取的,除了ALE用于低8位地址锁存信号之外,控制信号还有
接外扩EPROM的
脚。
此外,P0口分时用作低8位地址总线和数据总线,P2口用作高8位地址线。
2.操作时序
80C51对片外程序存储器的操作时序分两种,即执行非MOVX指令的时序和执行MOVX指令的时序,如图11-12所示。
(1)应用系统中无片外RAM
在系统无片外RAM(或I/O)时,不用执行MOVX指令。
在执行非MOVX指令时,时序如图11-12(a)所示。
P0口作为地址/数据复用的双向总线,用于输入指令或输出程序存储器的低8位地址PCL。
P2口专门用于输出程序存储器的高8位地址PCH。
P0口分时复用,故首先要将P0口输出的低8位地址PCL锁存在锁存器中,然后P0口再作为数据口。
在每个机器周期中,允许地址锁存两次有效,ALE在下降沿时,将P0口的低8位地址PCL锁存在锁存器中。
图11-12执行非MOVX指令的时序
同时,
也是每个机器周期中两次有效,用于选通片外程序存储器,将指令读入片内。
系统无片外RAM(或I/O)时,此ALE信号以振荡器频率的1/6出现在引脚上,它可用作外部时钟或定时脉冲信号。
(2)应用系统中接有片外RAM
在执行访问片外RAM(或I/O)的MOVX指令时,16位地址应转而指向数据存储器,时序如图11-12(b)。
在指令输入以前,P2口输出的地址PCH、PCL指向程序存储器;在指令输入并判定是MOVX指令后,ALE在该机器周期S5状态锁存的是P0口发出的片外RAM(或I/O)低8位地址。
若执行的是“MOVX A,@DPTR”或“MOVX @DPTR,A”指令,则此地址就是DPL(数据指针低8位);同时,在P2口上出现的是DPH(数据指针的高8位)。
若执行的是“MOVXA,@Ri”或“MOVX@Ri,A”指令,则Ri的内容为低8位地址,而P2口线上将是P2口锁存器的内容。
在同一机器周期中将不再出现有效取指信号,下一个机器周期中ALE的有效锁存信号也不再出现;当
/
有效时,P0口将读/写数据存储器中的数据。
判定是MOVX指令后,ALE在该机器周期S5状态锁存的是P0口发出的片外RAM(或I/O)低8位地址。
若执行的是“MOVX A,@DPTR”或是“MOVX @DPTR,A”指令,则此地址就是DPL(数据指针低8位);同时,在P2口上出现的是DPH(数据指针的高8位)。
若执行的是“MOVXA,@Ri”或“MOVX@Ri,A”指令,则Ri内容为低8位地址,而P2口线将是P2口锁存器内容。
在同一机器周期中将不再出现有效取指信号,下一个机器周期中ALE的有效锁存信号也不再出现;而当
/
有效时,P0口将读/写数据存储器中的数据。
由图11-12(b)可以看出:
(1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个ALE脉冲;
(2)只有在执行MOVX指令时的第二个机器周期中,才对数据存储器(或I/O)读/写,地址总线才由数据存储器使用。
图11-12执行MOVX指令的(读)时序
11.5.580C51单片机与EPROM的接口电路设计
由于80C51单片机片内集成不同容量的FlashROM,可根据实际需要来决定是否外部扩展EPROM。
当应用程序不大于单片机片内的FlashROM容量时,扩展外部程序存储器的工作可省略。
但作为扩展外部程序存储器的基本方法,还是应该掌握。
1.80C51与单片EPROM的硬件接口电路
在设计接口电路时,由于外扩的EPROM在正常使用中只读不写,故EPROM芯片只有读出控制引脚,记为
,该引脚与80C51单片机的
相连,地址线、数据线分别与80C51单片机的地址线、数据线相连,片选端控制可采用线选法或译码法。
下面介绍2764和27128芯片与80C51的接口。
更大容量的27256、27512与80C51的连接,差别只是连接的地址线数目不同。
由于2764与27128引脚的差别仅在26脚,2764的26脚是空脚(NC),27128的26脚是地址线A13,因此在设计外扩存储器电路时,应选用27128芯片设计电路。
在实际应用时,可将27128换成2764,系统仍能正常运行。
图11-13所示为80C51外扩16KB的EPROM27128的电路。
由于只扩展一片EPROM,所以片选端
的连接可以是:
(1)可以直接接地;
(2)也可接到某一高位地址线上(A15或A14;P27或P26)进行线选;(3)也可接某一地址译码器的输出端。
图11-1380C51单片机与27128的接口电路
【作业:
画出扩展一片27256(32K)的电路连接图】
2.使用多片EPROM的扩展电路
图11-14所示为利用4片27128EPROM扩展成64KB程序存储器的方法。
片选信号由译码器产生。
4片27128各自所占的地址空间,读者自己分析。
【27128-16K×4,用P00~P07,P20~P25】
图11-1480C51与4片27128EPROM的接口电路
0000000000000000
0011111111111111
单片机的
引脚接地,只使用片外程序存储器。
【作业:
写出上图中的IC1~IC4的地址范围】
【作业:
画出扩展2片27256的电路连接图,并写出2个芯片的地址范围】
11.6数据存储器扩展
在单片机应用系统中,外部扩展的数据存储器都采用静态数据存储器(SRAM),不需要刷新【而动态RAM是由栅极漏电容构成,需要不断的刷新,才能保存数据】。
对外部扩展的数据存储器空间访问,P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。
数据存储器扩展与程序存储器扩展基本相同,只是数据存储器的控制信号为输出允许信号
和写控制信号
,分别与单片机的片外数据存储器的读控制信号
(P3.7)和写控制信号
(P3.6)相连,其它信号线的连接与程序存储器相同。
【程序存储器只能输出,数据存储器具有写入和输出两种】
11.6.1常用的静态RAM(SRAM)芯片
单片机系统中常用的RAM芯片的典型型号有6116(2KB),6264(8KB),62128(16KB),62256(32KB)。
6116为24脚封装,6264、62128、62256为28脚封装。
这些RAM芯片的引脚如图11-15所示。
图11-15常用的RAM引脚图
各引脚功能:
A0~A15:
地址输入线。
D0~D7:
双向三态数据线。
:
片选信号输入线,低电平有效。
(但对6264芯片,当24脚(CS)为高电平且
为低电平时才选中该片)。
:
读选通信号输入线,低电平有效。
【从外RAM中读数据,连
】
:
写允许信号输入线,低电平有效。
【往外RAM中写数据,连
】
VCC:
工作电源+5V。
GND:
地。
RAM存储器有读出、写入和维持3种工作方式,工作方式的控制见表11-6。
表11-66116、6264、62256芯片3种工作方式的控制
工作方式
RAM芯片的控制信号
D0-D7
读出
0
0
1
数据输出
写入
0
1
0
数据输入
维持
1
×
×
高阻态
11.6.2外扩数据存储器的读写操作时序
对片外RAM读和写两种操作时序的基本过程相同。
1.读片外RAM操作时序
单片机读片外RAM操作时序如图11-16所示。
在第一个机器周期的S1状态,ALE信号由低变高(①处),读RAM周期开始。
在S2状态,CPU把低8位地址送到P0口总线上,把高8位地址送上P2口(在执行“MOVXA,@DPTR”指令阶段才送高8位;若执行“MOVXA,@Ri”则不送高8位)。
ALE下降沿(②处)用来把低8位地址信息锁存到外部锁存器74LS373内。
而高8位地址信息一直锁存在P2口锁存器中(③处)。
在S3状态,P0口总线变成高阻悬浮状态④。
在S4状态,执行指令“MOVXA,@DPTR”【从外部存储器读取数据指令】后使
信号变有效(⑤处),
信号使被寻址的片外RAM过片刻后把数据送上P0口总线(⑥处),当
回到高电平后(⑦处),P0总线变悬浮状态(⑧处)。
图11-16单片机读片外RAM操作时序图
2.写片外RAM操作时序
向片外RAM写数据,单片机执行“MOVX@DPTR,A”指令【往外部存储器写数据指令】。
指令执行后,AT89S51的
信号为低有效,此信号使RAM的
端被选通。
写片外RAM的时序如图11-17所示。
开始的过程与读过程类似,但写的过程是CPU主动把数据送上P0口总线,所以在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线(③处)。
此间,P0总线上不会出现高阻悬浮现象。
图11-17单片机写片外RAM操作时序图
在S4状态,写信号
有效(⑤处),选通片外RAM,稍过片刻,P0口上的数据就写到RAM内了,然后写信号
变为无效(⑥处)。
11.6.3单片机与RAM的接口电路设计
外扩RAM时,应将
脚与RAM的
脚连接,
脚与芯片
脚连接。
片外RAM的片选端可以由线选或译码方式控制。
因此设计时,主要解决地址分配、数据线和控制信号线的连接问题。
在与高速单片机连接时,还要根据时序解决读/写速度匹配问题。
图11-18为用线选法扩展外部数据存储器电路。
图中数据存储器选用6264(8K),所以需要利用A0~A12地址线,还有3条剩余的地址线。
图11-18线选法扩展外部数据存储器电路
【对6264,当24脚(CS)为高电平且
为低电平时才选中该片,所以图中,除了线选线连接到6264的片选端外,还应将CS接高电平。
】
上图采用线选方法扩展的3片6264,对应的存储器地址如表11-7。
表11-73片6264芯片对应的存储空间表
P2.7P2.6P2.5
选中芯片
地址范围
存储容量
110
IC1
C000H-DFFFH
8KB
101
IC2
A000H-BFFFH
8KB
011
IC3
6000H-7FFFH
8KB
采用译码法扩展外部数据存储器的接口电路如图11-19所示。
数据存储器62128(16K),需要利用A0~A13地址线,剩余两条地址线,若采用2-4线译码器(74LS139)可扩展4片62128。
各片62128芯片地址分配如表11-8所示。
图11-19译码法扩展外部数据存储器电路图
表11-8各62128芯片的地址空间分配
2-4译码器输入
P2.7P2.6
2-4译码器有效输出
选中芯片
地址范围
存储容量
00
IC1
0000H-3FFFH
16KB
01
IC2
4000H-7FFFH
16KB
10
IC3
8000H-BFFFH
16KB
11
IC4
C000H-FFFFH
16KB