第10章MCS51单片机系统扩展第2部分13页.docx
- 文档编号:25625171
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:22
- 大小:43.78KB
第10章MCS51单片机系统扩展第2部分13页.docx
《第10章MCS51单片机系统扩展第2部分13页.docx》由会员分享,可在线阅读,更多相关《第10章MCS51单片机系统扩展第2部分13页.docx(22页珍藏版)》请在冰豆网上搜索。
第10章MCS51单片机系统扩展第2部分13页
10.5存储器扩展
要练说,得练听。
听是说的前提,听得准确,才有条件正确模仿,才能不断地掌握高一级水平的语言。
我在教学中,注意听说结合,训练幼儿听的能力,课堂上,我特别重视教师的语言,我对幼儿说话,注意声音清楚,高低起伏,抑扬有致,富有吸引力,这样能引起幼儿的注意。
当我发现有的幼儿不专心听别人发言时,就随时表扬那些静听的幼儿,或是让他重复别人说过的内容,抓住教育时机,要求他们专心听,用心记。
平时我还通过各种趣味活动,培养幼儿边听边记,边听边想,边听边说的能力,如听词对词,听词句说意思,听句子辩正误,听故事讲述故事,听谜语猜谜底,听智力故事,动脑筋,出主意,听儿歌上句,接儿歌下句等,这样幼儿学得生动活泼,轻松愉快,既训练了听的能力,强化了记忆,又发展了思维,为说打下了基础。
10.5.1存储器扩展概述
语文课本中的文章都是精选的比较优秀的文章,还有不少名家名篇。
如果有选择循序渐进地让学生背诵一些优秀篇目、精彩段落,对提高学生的水平会大有裨益。
现在,不少语文教师在分析课文时,把文章解体的支离破碎,总在文章的技巧方面下功夫。
结果教师费劲,学生头疼。
分析完之后,学生收效甚微,没过几天便忘的一干二净。
造成这种事倍功半的尴尬局面的关键就是对文章读的不熟。
常言道“书读百遍,其义自见”,如果有目的、有计划地引导学生反复阅读课文,或细读、默读、跳读,或听读、范读、轮读、分角色朗读,学生便可以在读中自然领悟文章的思想内容和写作技巧,可以在读中自然加强语感,增强语言的感受力。
久而久之,这种思想内容、写作技巧和语感就会自然渗透到学生的语言意识之中,就会在写作中自觉不自觉地加以运用、创造和发展。
1.80C51单片机的存储器扩展
我国古代的读书人,从上学之日起,就日诵不辍,一般在几年内就能识记几千个汉字,熟记几百篇文章,写出的诗文也是字斟句酌,琅琅上口,成为满腹经纶的文人。
为什么在现代化教学的今天,我们念了十几年书的高中毕业生甚至大学生,竟提起作文就头疼,写不出像样的文章呢?
吕叔湘先生早在1978年就尖锐地提出:
“中小学语文教学效果差,中学语文毕业生语文水平低,……十几年上课总时数是9160课时,语文是2749课时,恰好是30%,十年的时间,二千七百多课时,用来学本国语文,却是大多数不过关,岂非咄咄怪事!
”寻根究底,其主要原因就是腹中无物。
特别是写议论文,初中水平以上的学生都知道议论文的“三要素”是论点、论据、论证,也通晓议论文的基本结构:
提出问题――分析问题――解决问题,但真正动起笔来就犯难了。
知道“是这样”,就是讲不出“为什么”。
根本原因还是无“米”下“锅”。
于是便翻开作文集锦之类的书大段抄起来,抄人家的名言警句,抄人家的事例,不参考作文书就很难写出像样的文章。
所以,词汇贫乏、内容空洞、千篇一律便成了中学生作文的通病。
要解决这个问题,不能单在布局谋篇等写作技方面下功夫,必须认识到“死记硬背”的重要性,让学生积累足够的“米”。
80C51单片机地址总线宽度为16位(P0口为低8位,P2口为高8位),片外可扩展的存储器最大容量为64KB,地址为0000H~FFFFH。
因为程序存储器和数据存储器是通过不同的控制信号和指令进行访问【程序存储器用单片机的
引脚,数据存储器用
和
引脚】,允许两者的地址空间重叠(或相同)。
所以片外可扩展的程序存储器与数据存储器分别都为64KB。
【强调:
程序存储器用单片机的
引脚,数据存储器和IO接口用
和
引脚】
【用串行通信中的情况来解释,以便相互联系地进行理解。
类似于串行的SBUF,地址都为99H,一个只能读出,一个只能写入;例如用74LS244和74LS273的例题,对输入和输出,也是用的相同地址】
2.存储器扩展的一般方法
不论何种存储器芯片,其引脚都是用三总线结构(AB、DB、CB)和单片机连接都是三总线对接。
存储器编址分两个层次:
(1)存储芯片的选择(用高位地址线进行片选【线选或译码输出】);
(2)芯片内部存储单元的选择(用低位地址线)。
如下图,如果存储器芯片容量为2KB,则需要地址线为11根,芯片的引脚可以与地址总线的低11位A0~A10相连,用于选择芯片内的具体字节存储单元。
如果用地址总线的A14、A13、A12、A11四根地址线参加译码来选择芯片,A15不参与译码【例如用74LS154,4-16】,如果选择这四根地址总线的状态为0010时选中该芯片。
由于地址总线A15不参加译码,所以当A15A14A13A12A11=00010(或10010)时,都可以选中该存储器芯片。
当A15=0时,芯片占用的地址是:
【地址不连续】
0001000000000000~0001011111111111,即1000H~17FFH。
当A15=1时,芯片占用的地址是:
1001000000000000~1001011111111111,即9000H~97FFH。
10.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满足要求下,扩展外部程序存储器可省去。
10.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芯片的引脚如图10-12所示。
芯片引脚功能为:
A0~A15:
地址线引脚。
用于进行单元选择。
芯片的存储容量决定需要利用A0~A15中的多少根引脚。
D7~D0:
8根数据线。
:
片选控制端。
【低电平有效,由线选或译码器输出选择】
:
输出允许控制端。
【低电平有效,和单片机的
相连】
:
编程时,编程脉冲的输入端。
图10-12常用EPROM芯片引脚
VPP:
编程时,编程电压(12.5V、21V等)输入端。
VCC:
+5V,芯片的工作电压。
GND:
数字地。
NC:
无用端。
【不用,可以不连接】
表10-4为27系列EPROM芯片的技术参数,其中VCC是芯片供电电压,VPP是编程电压,Im为最大静态电流,Is为维持电流,TRM为最大读出时间。
表10-4常用EPROM芯片参数表【不用记忆】
参数
型号
Vcc(V)
Vpp(V)
Im(mA)
Is(mA)
Trm(nS)
容量
TMS2732A
5
21
132
32
200~450
4KB×8
TMS2764
5
21
100
35
200~450
8KB×8
Intel2764A
5
12.5
60
20
200
8KB×8
Intel27C64
5
12.5
10
0.1
200
8KB×8
Intel27128A
5
12.5
100
40
150~200
16KB×8
Intel27C128
5
12.5
30
0.1
200
16KB×8
Intel27256
5
12.5
100
40
220
32KB×8
Intel27C256
5
12.5
8
0.1
250~300
32KB×8
Intel27512
5
12.5
125
40
250
64KB×8
2.EPROM芯片的工作方式
5种工作方式,由
、
和
信号的组合确定。
如表10-5所示。
表10-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)编程禁止方式。
10.5.4程序存储器的操作时序
1.单片机访问程序存储器的控制信号
80C51单片机访问片外扩展的程序存储器时,所用的控制信号有以下4种:
(1)ALE:
用于锁存低8位地址,一般都接74LS373的G端(LE端)。
(2)
:
片外程序存储器“读选通”控制信号。
连接外扩EPROM的
引脚。
【因为读EPROM时,
为低电平】
(3)
:
片内、片外程序存储器访问的控制信号。
(4)片选信号。
当
=1时,在单片机发出的地址小于片内程序存储器最大地址时,访问片内程序存储器;当
=0时,只访问片外程序存储器。
如果指令是从片外EPROM中读取的,除了ALE用于低8位地址锁存信号之外,控制信号还有
接外扩EPROM的
脚。
此外,P0口分时用作低8位地址总线和数据总线【利用ALE信号和74LS373锁存地址低8位】,P2口用作高8位地址线。
2.操作时序
80C51对片外程序存储器的操作时序分两种,即执行非MOVX指令的时序和执行MOVX指令的时序,如图10-12所示。
(1)应用系统中无片外RAM
在系统无片外RAM(或I/O)时,不用执行MOVX指令。
在执行非MOVX指令时,时序如图10-12(a)所示。
P0口作为地址/数据复用的双向总线,用于输入指令或输出程序存储器的低8位地址PCL。
P2口专门用于输出程序存储器的高8位地址PCH。
P0口分时复用,所以首先要将P0口输出的低8位地址PCL锁存在锁存器中,然后P0口再作为数据口。
在每个机器周期中,允许地址锁存两次有效,ALE在下降沿时,将P0口的低8位地址PCL锁存在锁存器中。
图10-12执行非MOVX指令的时序
同时,
也是每个机器周期中两次有效,用于选通片外程序存储器,将指令读入片内。
系统无片外RAM(或I/O)时,此ALE信号以振荡器频率的1/6出现在引脚上,它可用作外部时钟或定时脉冲信号。
(2)应用系统中接有片外RAM
由图10-12(b)可以看出:
(1)将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个ALE脉冲;
(2)只有在执行MOVX指令时的第二个机器周期中,才对数据存储器(或I/O)读/写,地址总线才由数据存储器使用。
图10-12执行MOVX指令的(读)时序
10.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,系统仍能正常运行。
图10-13所示为80C51外扩16KB的EPROM27128的电路。
由于只扩展一片EPROM,所以片选端
的连接可以是:
(1)可以直接接地;
(2)也可接到某一高位地址线上(A15或A14;P27或P26)进行线选;(3)也可接某一地址译码器的输出端。
图10-1380C51单片机与27128的接口电路
2.使用多片EPROM的扩展电路
图10-14所示为利用4片27128EPROM扩展成64KB程序存储器的方法。
片选信号由译码器产生。
4片27128各自所占的地址空间,读者自己分析。
【27128-16K×4,用P00~P07,P20~P25】【
不能接地,因为有多片】
图10-1480C51与4片27128EPROM的接口电路
IC1的地址:
0000000000000000~0011111111111111(0000~3FFF)
单片机的
引脚接地,只使用片外程序存储器。
10.6数据存储器扩展
在单片机应用系统中,外部扩展的数据存储器都采用静态数据存储器(SRAM),不需要刷新【而动态RAM是由栅极漏电容构成,需要不断的刷新,才能保存数据】。
对外部扩展的数据存储器空间访问,P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。
数据存储器扩展与程序存储器扩展基本相同,只是数据存储器的控制信号为输出允许信号
和写控制信号
,分别与单片机的片外数据存储器的读控制信号
(P3.7)和写控制信号
(P3.6)相连,其它信号线的连接与程序存储器相同。
【程序存储器只能输出,数据存储器具有写入和输出两种】
10.6.1常用的静态RAM(SRAM)芯片
单片机系统中常用的RAM芯片的典型型号有6116(2KB),6264(8KB),62128(16KB),62256(32KB)。
6116为24脚封装,6264、62128、62256为28脚封装。
这些RAM芯片的引脚如图10-15所示。
图10-15常用的RAM引脚图
【6264的引脚有一些特殊,体现在还有一个CS引脚需要接高电平】
各引脚功能:
A0~A15:
地址输入线。
D0~D7:
双向三态数据线。
:
片选信号输入线,低电平有效。
(但对6264芯片,当24脚(CS)为高电平且
为低电平时才选中该片)。
:
读选通信号输入线,低电平有效。
【从外RAM中读数据,连
】
:
写允许信号输入线,低电平有效。
【往外RAM中写数据,连
】
VCC:
工作电源+5V。
GND:
地。
RAM存储器有读出、写入和维持3种工作方式,工作方式的控制见表10-6。
表10-66116、6264、62256芯片3种工作方式的控制
工作方式
RAM芯片的控制信号
D0~D7
读出
0
0
1
数据输出
写入
0
1
0
数据输入
维持
1
×
×
高阻态
10.6.2外扩数据存储器的读写操作时序
对片外RAM读和写两种操作时序的基本过程相同。
1.读片外RAM操作时序
单片机读片外RAM操作时序如图10-16所示。
在第一个机器周期的S1状态,ALE信号由低变高(①处),读RAM周期开始。
在S2状态,CPU把低8位地址送到P0口总线上,把高8位地址送上P2口。
ALE下降沿(②处)用来把低8位地址信息锁存到外部锁存器74LS373。
而高8位地址信息一直锁存在P2口锁存器中(③处)。
在S3状态,P0口总线变成高阻悬浮状态④。
在S4状态,执行从外部存储器读取数据指令后,使
信号变有效(⑤处),
信号使被寻址的片外RAM过片刻后把数据送上P0口总线(⑥处),当
回到高电平后(⑦处),P0总线变悬浮状态(⑧处)。
图10-16单片机读片外RAM操作时序图
2.写片外RAM操作时序
向片外RAM写数据,单片机执行往外部存储器写数据指令。
指令执行后,80C51的
信号为低有效,此信号使RAM的
端被选通。
写片外RAM的时序如图10-17所示。
开始的过程与读过程类似,但写的过程是CPU主动把数据送上P0口总线,所以在时序上,CPU先向P0口总线上送完8位地址后,在S3状态就将数据送到P0口总线(③处)。
此间,P0总线上不会出现高阻悬浮现象。
图10-17单片机写片外RAM操作时序图
在S4状态,写信号
有效(⑤处),选通片外RAM,稍过片刻,P0口上的数据就写到RAM内了,然后写信号
变为无效(⑥处)。
10.6.3单片机与RAM的接口电路设计
外扩RAM时,应将单片机的
脚与RAM芯片的
脚连接,
脚与RAM
脚连接。
片外RAM的片选端可以由线选或译码方式控制。
因此设计时,主要解决地址分配、数据线和控制信号线的连接问题。
在与高速单片机连接时,还要根据时序解决读/写速度匹配问题。
图10-18为用线选法扩展外部数据存储器电路。
图中数据存储器选用6264(8K),所以需要利用A0~A12地址线,还有3条剩余的地址线。
图10-18线选法扩展外部数据存储器电路
上图采用线选方法扩展了3片6264,对应的存储器地址如表10-7。
表10-73片6264芯片对应的存储空间表
P2.7P2.6P2.5
选中芯片
地址范围
存储容量
110
IC1
C000H-DFFFH
8KB
101
IC2
A000H-BFFFH
8KB
011
IC3
6000H-7FFFH
8KB
采用译码法扩展外部数据存储器的接口电路如图10-19所示。
数据存储器62128(16K),需要利用A0~A13地址线,剩余两条地址线(P2.6,P2.7),若采用2-4线译码器(74LS139)可扩展4片62128。
各片62128芯片地址分配如表10-8所示。
图10-19译码法扩展外部数据存储器电路图
【注意:
6264和62128连接时,就CS和A13不同】
表10-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
【XBYTE以字节形式对xdata区寻址】
#include
#include
sbitLED=P1^0;
voidmain()
{unsignedinti;
LED=1;//LED先熄灭
for(i=0;i<200;i++)//200=128+64+8=11001000=0xC8
XBYTE[0x0000+i]=i+1;
for(i=0;i<200;i++)
XBYTE[i+0x0100]=XBYTE[199-i];
LED=0;//完成操作后,LED变为亮
while
(1);
【在“Proteus”中查看运行及数据传送结果:
LED变为亮时,表明数据传送已经结束,可以点击
中的
暂停按钮,暂停程序的运行,打开“DEBUG”中的“MemoryContents”,查看6264内存中的数据】
查看结果如下:
【上课时,可以把CS的高电平去掉,观察结果】
【例题扩展1:
】电路图同上,改为先定义数组dat[200],然后给数组赋值,再把数组中的数据放到外部数据存储区中。
#include
#include
sbitLED=P1^0;
voidmain()
{//注意数据存放位置定义符xdata,要放在char和数组名之间
unsignedcharxdatadat[200];
unsignedinti;
LED=1;//LED先熄灭
for(i=0;i<200;i++)
dat[i]=i+5;//先给数组赋值,然后再传送到6264中
for(i=0;i<200;i++)
XBYTE[i+0x0100]=dat[i]+1;//送到片外数据存储器6264中
LED=0;//完成操作后,LED变为亮
while
(1);
【CAP10-EX7-扩展1的结果如下】
【例题】扩展2片6264数据存储器件【已通过CAP10-EX8】
【U3的地址P27P26=00,U4的地址P27P26=11】
#include
#include
sbitLED=P1^0;
voidmain()
unsignedinti;
L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 MCS51 单片机 系统 扩展 部分 13
![提示](https://static.bdocx.com/images/bang_tan.gif)