第8章---MCS-51单片机扩展存储器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二讲第8章MCS-51单片机扩展存储器的设计8.1概述片内的资源如不满足需要,需外扩存储器和I/O功能部件:内容主要有:(1)外部存储器的扩展(外部存储器又分为外部程序存储器和外部数据存储器程序存储器(programstorage)在计算机的主存储器中专门用来存放程序、子程序的一个区域。(2)I/O接口部件的扩展。本章介绍MCS–51单片机如何扩展外部存储器,I/O接口部件的扩展下一章介绍。程序存储器程序存储器内部外部0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址内部存储器如果资源不够,如何扩展?需要哪几根控制线呢?问题:n位地址可以产生的地址的数目为多少个地址单元?可以访问多少个存储单元?程序存储器和程序之间的关系?单字节指令机器码举例:指令MOVA,R0的机器码为11101000B,即E8H指令MOVAR1的机器码为11101001B,即E9H指令MOVP1,#55H的机器码是75H90H55HORG002BHMOVA,R0伪指令ORG002BH告诉汇编系统指令MOVA,R0从程序存储器的002BH单元开始存放。也就是说002BH里边存放的数是11101000BMOVA,R0这条指令怎么存储在程序存储器呢?0000H0001H0002H中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH8位...0FFFH0FFEH程序存储器资源分布ORG002BHMOVP1,#55H呢?系统扩展结构如下图:1.地址总线(AdressBus,简写AB)地址总线用于传送单片机输出的地址信号,宽度为16位,P0口经锁存器提供低8位地址,锁存信号是由CPU的ALE引脚提供的;P2口提供高8位地址。如果要选择002FH单元,P2.0~P2.7为多少?P0口呢?2.数据总线(DataBus,简写DB)数据总线是由P0口提供的,宽度为8位。注意地址总线和数据总线的区别!3.控制总线(ControlBus,简写CB)控制总线实际上是CPU输出的一组控制信号。MCS-51单片机通过三总线扩展外部设备的总体结构图如下图所示。构造系统总线,然后再往系统总线上“挂”存储器芯片或I/O接口芯片,“挂”存储器芯片就是存储器扩展,“挂”I/O接口芯片就是I/O扩展。0000H0001H0002H中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH8位...0FFFH0FFEH程序存储器系统扩展的首要问题:构造系统总线,然后再往系统总线上“挂”存储器芯片或I/O接口芯片,“挂”存储器芯片就是存储器扩展,“挂”I/O接口芯片就是I/O扩展。MCS-51由于受引脚数目的限制,数据线和低8位地址线复用。为了将它们分离出来,需要外加地址锁存器,从而构成与一般CPU相类似的片外三总线,见图8-2。1.以P0口作为低8位地址/数据总线。2.以P2口的口线作高位地址线。如何区分数据和地址信息呢?锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。问题:单片机共有多少位的地址总线?寻址范围可以达到多少KB?*使用ALE信号作为低8位地址的锁存控制信号。*以PSEN*信号作为扩展程序存储器的读选通信号。*以EA*信号作为内外程序存储器的选择控制信号。*由RD*和WR*信号作为扩展数据存储器和I/O口的读选通、写选通信号。地址锁存器一般采用74LS373,采用74LS373的地址总线的扩展电路如下图(图8-3)。尽管MCS-51有4个并行I/O口,共32条口线,但由于系统扩展需要,真正作为数据I/O使用的,就剩下P1口和P3口的部分口线。8.3读写控制、地址空间分配和外部地址锁存器8.3.1存储器扩展的读写控制RAM芯片:读写控制引脚,记为OE*和WE*,与MCS-51的RD*和WR*相连。EPROM芯片:只能读出,故只有读出引脚,记为OE*,该引脚与MCS-51的PSEN*相连。8.3读写控制、地址空间分配和外部地址锁存器8.3.2存储器地址空间分配MCS-51发出的地址是用来选择某个存储器单元进行读写,要完成这种功能,必须进行两种选择:“片选”和“单元选择”。常用的存储器地址分配的方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法)。1.线选法直接利用系统的高位地址线作为存储器芯片(或I/O接口芯片)的片选信号。优点:电路简单,不需要地址译码器硬件,体积小,成本低。缺点:可寻址的器件数目受到限制,地址空间不连续,地址不唯一。例如何进行地址分配。某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图。2732:4KB程序存储器,有12根地址线A0~A11,分别与单片机的P0口及P2.0~P2.3口相连。2732(1)的片选端接A15(P2.7),2732(2)的片选端接A14(P2.6).当要选中某个芯片时,单片机P2口对应的片选信号引脚应为低电平,其它引脚一定要为高电平。例某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图。6116:2KB数据存储器,需要11根地址线作为单元的选择,而剩下的P2口线(P2.4~P2.7)作为片选线。两片程序存储器的地址范围:2732(1)的地址范围:7000H~7FFFH;2732(2)的地址范围:B000H~BFFFH;6116(1)的地址范围:E800H~EFFFH;6116(2)的地址范围:D800H~DFFFH。程序存储器的地址范围是?选中2732(1)时,P2口(高8位地址)各引脚的状态?P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.001110,10,10,10,1例某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图。P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.00,10,10,10,10,10,10,10,1例某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图。假设:P2.7=0,P2.6=1,P2.5=1,P2.4=0,P2.3=0。会出现什么问题呢?程序存储器2732低2K的地址和数据存储器6116的地址是重叠的?那么会不会MCS51发出访问2732的某个单元时,同时选中6116的某个单元呢?例某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),这些芯片与MCS-51单片机地址分配有关的地址线连线,电路如下图。这种情况完全不用担心,虽然2个单元的地址是一样的,但是MCS-51发给2类存储器的控制信号时不一样的。访问存储器是PSEN*有效,访问数据存储器,则是RD*,WR*信号有效,任何时候只能产生一种控制信号。复习程序存储器和程序之间的关系?单字节指令机器码举例:指令MOVA,R0的机器码为11101000B,即E8H指令MOVAR1的机器码为11101001B,即E9H指令MOVP1,#55H的机器码是75H90H55HORG002BHMOVA,R0伪指令ORG002BH告诉汇编系统指令MOVA,R0从程序存储器的002BH单元开始存放。也就是说002BH里边存放的数是11101000BMOVA,R0这条指令怎么存储在程序存储器呢?0000H0001H0002H中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH8位...0FFFH0FFEH程序存储器资源分布ORG002BHMOVP1,#55H呢?0000H0001H0002H中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH8位...0FFFH0FFEH程序存储器资源分布如果选中002BH单元,P0口、P2口状态?上面的连线能交换吗?即P2.6和A8相连。A0~A11线怎么接呢?空间地址分配?第三讲线选法特点:简单明了,不需另外增加硬件电路。只适于外扩芯片不多,规模不大的单片机系统。2.译码法最常用的译码器芯片:74LS138(3-8译码器)74LS139(双2-4译码器)74LS154(4-16译码器)。可根据设计任务的要求,产生片选信号。全译码:全部高位地址线都参加译码;部分译码:仅部分高位地址线参加译码。74LS138(3~8译码器)引脚如图8-5,译码功能如表8-1(P167)所示。当译码器的输入为某一个固定编码时,其输出只有某一个固定的引脚输出为低电平,其余的为高电平。74LS138译码器真值表输入输出G1G2A*G2B*CBAY7*Y6*Y5*Y4*Y3*Y2*Y1*Y0*芯片的4、5、6脚如何连接呢?例要扩8片8KB的RAM6264,如何通过74LS138把64KB空间分配给各个芯片?6264A12A0CE6264是8KBRAM,13根地址线。要扩展64K,需要8片如果只接一片6264,那么P0.0~P0.7,P2.0~2.4需要接到6264的地址线。只剩下P2.7,P2.6,P2.5。怎么完成8个6264的片选呢?显然要通过译码器完成。就是说三根线控制8个6264.例要扩8片8KB的RAM6264,如何通过74LS138把64KB空间分配给各个芯片?问题1:74ls138的芯片引脚如何连接?引脚C,B,A是不是一定要接P2.7、P2.6、P2.5呢?问题2:74ls138的芯片输出端应该接6264的哪个引脚?采用的是全地址译码方式,单片机发地址码时,每次只能选中一个存储单元。同类存储器间不会产生地址重叠的问题。如果用74LS138把64K空间全部划分为每块4KB,如何划分呢?见下图。8.3.3外部地址锁存器常用的地址锁存器芯片有:74LS373、8282、74LS573等。1.锁存器74LS373带有三态门的8D锁存器,其引脚其内部结构如下图。8.3.3外部地址锁存器常用的地址锁存器芯片有:74LS373、8282、74LS573等。1.锁存器74LS373带有三态门的8D锁存器,其引脚其内部结构如下图。引脚说明如下:D7~D0:8位数据输入线;Q7~Q0:8位数据输出线;G:数据输入锁存选通信号,高电平有效,当该信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中;OE*:数据输出允许信号,低电平有效。表8-374ls373功能表GDQ0111010000×不变1××高阻态OE2.锁存器8282功能及内部结构与74LS373完全一样,只是其引脚的排列与74LS373不同,8282的引脚如下图。引脚的排列为绘制印刷电路板时的布线提供了方便。3.锁存器74LS573输入的D端和输出的Q端也是依次排在芯片的两侧,与锁存器8282一样,为绘制印刷电路板时的布线提供了方便。8.4程序存储器EPROM的扩展采用只读存储器,非易失性(存储器在电源关断后,仍能保存程序)。(1)掩膜ROM在制造过程中编程。成本较高,因此只适合于大批量生产。(2)可编程ROM(PROM)用独立的编程器写入。但PROM只能写入一次,且不能再修改。(3)EPROM电信号编程,紫外线擦除的只读存储器芯片。(4)E2PROM(EEPROM)电信号编程,电信号擦除的ROM芯片。读写操作与RAM几乎没有什么差别,只是写入的速度慢一些。但断电后能够保存信息。(5)FlashROM又称闪烁存储器,简称闪存。大有取代E2PROM的

1 / 83
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功