第7章MCS-51单片机的外部扩展技术(一)(徐进老师制作)_第1页
第7章MCS-51单片机的外部扩展技术(一)(徐进老师制作)_第2页
第7章MCS-51单片机的外部扩展技术(一)(徐进老师制作)_第3页
第7章MCS-51单片机的外部扩展技术(一)(徐进老师制作)_第4页
第7章MCS-51单片机的外部扩展技术(一)(徐进老师制作)_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 MCS-51单片机的外部扩展技术(一)单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展。MCS-51单片机系统扩展主要包括外部并行系统总线、外部存储器、外部I/O接口、外部中断系统、管理功能部件(如定时/计数器、键盘/显示器/打印机等)、模拟通道(A/D和D/A)等的扩展技术。系统扩展方法有并行扩展法和串行扩展法两种,本章将介绍并行的外部总线、外部程序存储器、外部数据存储器、外部I/O接口的扩

2、展技术以及简单的串行扩展方法。本章的重点是并行扩展方法中常用的存储器芯片、I/O接口芯片与MCS-51单片机的接口设计和编程,特别是高位地址线的几种译码连接方式以及芯片的地址计算,本章的难点是外部扩展芯片如何与MCS-51单片机正确连接、地址译码方式选择及地址计算、可编程I/O接口8155 / 8255的初始化及其编程等。7.1 并行扩展方法的概述 MCS-51单片机的特点就是体积小,功能全,系统结构紧凑,硬件设计灵活。对于简单的应用,最小应用系统(简称最小系统)即能满足要求。所谓最小系统是指在最少的外部电路条件下,形成一个可独立工作的单片机应用系统。无ROM的单片机芯片(如8031)至少必须

3、扩展ROM,复位、晶振电路才能构成最小系统,外接ROM后,P3口、P2口、P0口均被占用只剩下P1口作I/O口用,其它功能不变;而带ROM单片机芯片(如8051、8751等)可能不必扩展ROM和RAM,只要有复位、晶振电路等就能构成最小系统。 图7-1为MCS51单片机最小系统示意图。1. MCS-51单片机的最小应用系统图7-1 MCS-51单片机最小系统2. MCS-51单片机并行扩展的三总线结构图7-2 MCS-51单片机的三总线结构形式。并行扩展三总线分别为地址总线AB、数据总线DB和控制总线CB。1)地址总线AB,由P0口提供低8位A7 A0、P2口提供高8位A15 A8,共16位,

4、可寻址范围达216=64K。由于P0口是数据、地址分时复用,所以P0口输出的低8位地址必须采用地址锁存器进行锁存,地址锁存器一般选用带三态缓冲器输出的8D锁存器74LS373;3)控制总线CB,包括 、 、 、ALE 、 等信号组成,它们用于读/写控制、地址锁存控制和片内、片外ROM选择。PSENWRRDEA2)数据总线DB,P0口提供8位的D7 D0,共8位;3. 三总线结构中的地址锁存器 在单片机扩展三总线结构中需要采用地址锁存器,常用的地址锁存器有74LS273、Intel 8282和74LS373。图7-3 常用3种地址锁存器的引脚结构1) 74LS273是具有异步清零的TTL上升沿锁

5、存器。每一位都是一个D触发器,8个D触发器的控制端连接在一起。由于此芯片内部无三态锁存器,因此其输出只有高、低两种状态。2) Intel 8282是带有三态输出的TTL电平锁存器。它的内部除了具有类似74LS273的8个D触发器外,还集成了8位的三态门,为三态门的输出允许引脚,当=0时三态门打开,允许输出,否则三态门禁止输出,因此其每一位都是一个三态锁存器。8个三态锁存器的控制端STB连在一起,当电平锁存引脚STB =1时,锁存器的数据输出端Q的状态与数据输入端D相同;而当STB=0时,输入端的数据就被锁存在锁存器中,数据输入端D的变化不再影响Q端输出。 3) 74LS373也是带有三态输出的

6、TTL电平锁存器。74LS373与Intel 8282功能完全一样,它们仅是引脚分布位置不同而已。G为电平锁存引脚, 为输出允许引脚。当G为高电平时,锁存器的数据输出端Q的状态与数据输入端D相同。当G端从高电平返回到低电平时(下降沿后),输入端的数据就被锁存在锁存器中,数据输入端D的变化不再影响Q端输出。图 7-4 地址锁存器74LS373的内部结构及与MCS-51单片机的连接引脚示意图。4. 并行扩展三总线的驱动在单片机应用系统中, 扩展的三总线上挂接很多负载, 如存储器、并行接口、A/D接口、显示接口等, 但总线接口的负载能力有限, 因此常常需要通过连接总线驱动器进行总线驱动。总线驱动器对

7、于单片机的I/O口只相当于增加了一个TTL或CMOS负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。当P0口总线负载达到或超出P0口最大负载能力8个TTL门时,必须接入总线驱动器。因P0口传送数据是双向的,因此要扩展的数据总线驱动器也必须具有双向三态功能。除双向数据总线外,单片机有可能扩展的还有、ALE等控制总线和P2口高8位地址总线,它们属于单向总线。当这些引脚的总线负载达到或超出它们的最大负载能力34个TTL门时,也必须接入总线驱动器。在对TTL负载驱动时,只需考虑驱动电流的大小;在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑电平的兼容和分布电容的电流。

8、一般TTL电平和CMOS 电平是不兼容的,CMOS电路能驱动TTL电路,而TTL电路一般不能驱动CMOS电路,在TTL电路和CMOS电路混用的系统中,应特别注意。74245是8同相三态双向总线收发器,可双向传输,有一个方向控制端DIR。当 1时,AB为高阻;当 0,DIR1时,AB;当0,DIR0时,BA。CECE1)常用的总线驱动器图7-5 74LS245引脚图、逻辑图和功能表 系统中的数据总线是双向的,其驱动器也要选用双向的。(如74LS245)74244是8同相三态缓冲驱动器,片内有两组三态缓冲器,每组4个,分别由一个门控端控制。即第1组的输入1A11A4,输出1Y11Y4,门控端 ;第

9、2组的输入2A12A4,输出2Y12Y4,门控端 。门控端 、 为低电平(有效)时,输入端信号A从输出端Y输出,即Y=A,而门控端 、 高电平(无效)时,输出端Y呈高阻态。2G1G2G1G1G2G系统总线中地址总线和控制总线是单向的, 因此驱动器可以选用单向的。(如74LS244)图7-6 单向驱动器74LS244的引脚图、逻辑图和功能表PSENRDWRCEPSENRDPSENRDPSENRDWRWRWR控制DIR可用 或 或 ,片选端 直接接地,始终有效。图7-7(a)用 或 控制DIR,A0A7接P0口,B0B7接外RAM 或外设。当 或 有效时,DIR=0,数据从B到A; 和 无效时,D

10、IR=1,数据从A到B;图7-7(b)用 控制DIR,B0B7接P0口,A0A7接外RAM 或外设。当 有效时,DIR=0,数据从B到A; 无效时,DIR=1,数据从A到B。2)典型的三总线驱动电路 图7-7 采用74LS245实现P0口双向总线的驱动电路(a) 采用 或 控制DIR PSENRD(b) 采用 控制DIR WR图7-8 采用74LS244的单向总线驱动电路(a) 控制总线的驱动电路 (b) P2口的驱动电路 若需扩展P2口(高8位地址总线,单向)或 、 、 、ALE 等单向控制总线,就不必用74LS245,可用74LS244。图为74LS244与MCS-51单片机连接的典型应用

11、电路。因这些地址信号或控制信号是单向传输,且不允许锁存, 、 接地始终有效。 PSENWRRD1G2G7.2 MCS-51单片机的外部存贮器扩展 根据MCS-51单片机的地址总线AB的宽度(16位),片外可扩展的存储器最大容量为216=64 KB,地址范围为0000HFFFFH。 因为MCS-51单片机对片内、外程序存储器ROM和片外数据存储器RAM的操作使用不同的指令和控制信号,所以允许两者的地址空间重叠,故片内、外可扩展的程序存储器与片外数据存储器分别为64 KB。为了配置外部设备而需要扩展的I/O口与片外数据存储器RAM统一编址,即占据相同的地址空间。因此,片外数据存储器RAM连同I/O

12、口一起总的扩展容量是64 KB。 如果系统需要用到的存储器超过了单片机本身具有的容量,就要进行片外程序存储器或者数据存储器的扩展。7.2.1 存储器扩展概述1. MCS-51单片机的扩展能力计算机系统中的存储器根据存储元件的材料来分,可分为半导体存储器、磁存储器及光存储器。按工作时与CPU联系的密切程度分,存储器可分为主存和辅存,或称为内存和外存。主存存放当前运行的程序和数据,它和CPU直接交换信息,且按存储单元进行读写数据,其特点主要是存取速度快,容量相对要小;辅存则作为主存的后援,存放暂时不执行的程序和数据,它只是在需要时调入内存后CPU才能访问,因此辅存通常容量大,但存取速度慢。由于半导

13、体存储器是以集成电路的形式出现,当今微型计算机系统中的主存几乎全部是使用的半导体存储器,而磁和光等存储器主要用作大容量辅存,如磁盘、磁带、光盘等。2. 存储器的种类(1)半导体存储器分类大规模集成电路技术的发展使得半导体存储器的价格大大降低,现代单片机的主存储器已普遍采用半导体存储器。半导体存储器按存取方式可分为两大类:随机存取存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。RAM中任何存储单元都能随机读写,即存取操作与时间、存储单元的物理位置顺序无关,其存储的内容可随时写入和修改,但掉电后RAM中的内容会全部丢失,一般计算机系统

14、中的RAM主要用来存放当前运行的程序、各种输入输出数据、中间结果及堆栈等,而在MCS-51单片机中用于数据存储器的扩展。而ROM在计算机中的存储的内容是固定不变的,联机工作时只能读出不能写入,掉电以后信息不会丢失,常被一般用于存放一些固定的程序如监控程序、BIOS程序等,而在MCS-51单片机中用于程序存储器的扩展。ROM又可分为掩膜ROM、可编程ROM(PROM)、光可擦除ROM(EPROM)、电可擦除EEPROM(也称E2PROM)和闪存FLASH。其中掩膜ROM在信息制作在芯片中,不可更改;PROM仅允许一次编程,此后不可更改;EPROM采用紫外光擦除,擦除后可编程,并允许用户多次擦除和

15、编程;EEPROM (E2PROM)采用加电方法在线进行擦除和编程,也可多次擦写;Flash Memory (闪存)能够快速擦写的EEPROM,但只能按块(Block)擦除。由于用户编写的单片机程序都需要反复多次进行修改与调试,因此,单片机外部扩展的程序存储器只用EPROM 、E2PROM和FLASH等可多次擦除的ROM。(2)ROM分类(3)RAM分类RAM按采用器件可分为双极性存储器和MOS型存储器,而MOS型存储器按存储原理又可分为静态读写存储器(SRAM)和动态读写存储器(DRAM)两种。其中SRAM的基本存储电路(存储元)通常是由6个MOS管组成的双稳态触发器电路,在没有信号触发的情

16、况下,只要电路不掉电,双稳态触发器电路的状态就不会变化,也就是说存储的内容不丢失。SRAM读写速度高,使用方便,但成本高,功耗大;而DRAM是靠MOS电路中的栅极电容来存储信息的。由于电容上的电荷会逐渐泄漏,在没有信号触发的情况下,一段时间后电路的状态就会变化,也就是说存储的内容要丢失,所以需要定时充电以维持存储内容不丢失(称为动态刷新),因此DRAM需要设置刷新电路,相应外围电路就较为复杂(也有刷新电路做在芯片内的),DRAM的刷新定时间隔一般为几ms。DRAM特点为集成度高(存储容量大,可达1Gbit/片以上)、功耗低、价格低,但速度慢(10ns左右),需要刷新电路,附加另外的成本。DRA

17、M应用非常广泛,如微机中的内存条、显卡上的显存几乎都是用DRAM制造的。由于MCS-51单片机内部没有集成刷新电路,采用DRAM需要外部连接相应的刷新电路,连接成本较高,因此,单片机外部扩展的数据存储器一般只用SRAM。3. 存储器的字、位扩展 由于任何存储芯片的存储容量都是有限的,故要构成一定容量的内存,单个存储芯片往往不能满足字长或者存储单元个数的要求,甚至字长、存储单元数都不能满足要求。这时就需要多个存储芯片进行组合,以满足对存储容量的要求。这种组合称为存储器的扩展,扩展时要解决的问题包括位扩展、字扩展和字位扩展。1)位扩展位扩展是指增加存储的字长。一块实际的存储芯片,其每个单元的位数往

18、往与实际内存单元字长并不相等。存储芯片可以是1、4位或8位,如DRAM芯片Intel 2164为64K1bit,SRAM芯片Intel 2114为1K4bit,Intel 6264为8K8bit,而计算机内存一般是按字节(如MCS-单片机字长为8)来进行组织的,若要使用2164、2114这样的存储芯片来构成内存,单个存储芯片字长(位数)就不能满足要求,这时就需要进行位扩展,以满足内存单元字长的要求。一般位扩展构成的存储器系统中一个内存单元中的内容被分别存储在不同的芯片上。例如用2片4K4bit的存储器芯片经位扩展构成4KB的存储器中,每个单元中的8位二进制数被分别存在两个芯片上,即一个芯片存该

19、单元内容的高4位,另一个芯片存该单元内容的低4位。可以看出,位扩展保持总的地址单元数(存储单元个数)不变,但每个单元中的位数增加。位扩展电路的连接方法是:将每个存储芯片的地址线和控制线(包括选片信号线、读写信号线等)全部并联在一起,而将它们的数据线分别引出至数据总线的不同位上。(2)字扩展 字扩展是对存储器容量的扩展(或存储空间的扩展)。此时存储器芯片上每个存储单元的字长已满足要求(如字长已为8位),而只是存储单元的个数不够,需要的是增加存储单元的数量,这就是字扩展,即用多片字长为8位的存储芯片构成所需要的存储空间。 例如,用1K8bit的存储器芯片组成2KB的内存储器。在这里,字长已满足要求

20、,只是容量不够,所以需要进行字扩展,显然需两片1K8bit的存储器芯片来实现。 字扩展电路的连接方法是将每个芯片的地址信号、数据信号和读写信号等控制信号按信号名称全部并联在一起,只将片选端分别引出到地址译码器的不同输出端,即用片选信号来区别各个芯片的地址。(3)字位扩展 在构成一个实际的存储器时,往往需同时进行位扩展和字扩展才能满足存储容量的要求。微机中内存的构成就是字位扩展的一个很好的例子。首先,存储器芯片生产厂制造出一个个单独的存储芯片,如64M1位、128M1位等;然后,内存条生产厂将若干个芯片用位扩展的方法组装成内存模块(即内存条),如用8片128M1位的芯片组成128MB的内存条;最

21、后,用户根据实际需要购买若干个内存条插到主板上构成自己的内存系统,即字扩展。一般来讲,最终用户做的都是字扩展(即增加内存地址单元)的工作。 进行字位扩展时,一般先进行位扩展,构成字长满足要求的内存模块,然后再用若干个这样的模块进行字扩展,使总容量满足要求。(4)扩展存储器所需芯片数目的确定 若所选存储器芯片字长与单片机字长一致,则只需扩展容量。此时,所需芯片数目按下式确定: 芯片数目=系统扩展容量/存储器芯片容量 若所选存储器芯片字长与单片机字长不一致,则不仅需扩展容量,还需字扩展。若要构成一个容量为MN位的存储器,并采用LK位的芯片(LM,KN),则构成这个存储器需要这样的存储器芯片数量为:

22、 芯片数目=系统扩展容量M/存储器芯片容量L系统字长N/存储器芯片字长K=M/LN/K 由于MCS-51单片机应用系统一般需要扩展存储器的规模较小,因此,一般不会使用单片大容量存储器芯片,而为使扩展电路简单,通常选用字长已满足要求的芯片,存储器扩展一般只进行字扩展,即作容量扩展。4. 扩展存储器的一般连接方法 存储器芯片有多种。即使是同一种类的存储器芯片,容量的不同,其引脚数目也不同。尽管如此,存储器芯片与单片机扩展连接具有共同的规律。不论何种存储器芯片,其引脚也都呈三总线结构,而单片机扩展是采用三总线结构,一般两者的三总线时序要求是基本一致的,因此,只有把两者的三总线对接起来就可以了。当然,

23、电源线也应接对应的电源线。因此,系统的扩展归结为三总线的连接。存储器芯片的三总线与单片机扩展三总线连接原则为: 对于程序存储器ROM,一般来说,具有读操作控制线,它与单片机的信号线相连。除此之外,对于EPROM芯片还有编程脉冲输入线、编程状态线(READY/BUSY)。应与单片机在编程方式下的编程脉冲输出线相接;READY/BUSY在单片机查询输入/输出方式下,与一根I/O口线相接;在单片机中断工作方式下,与一个外部中断信号输入线相接。对于数据存储器RAM,一般来说,具有读操作控制线和写操作控制线,它与单片机的、信号线相连。(1)存储器芯片的控制线 (2)存储器芯片的数据线 数据线的数目由芯片

24、的字长决定。1位、4位、8位字长的芯片数据线分别有1根、4根、8根。由于单片机的数据总线为8位,若存储器芯片的数据线不足8但,还需进行位扩展;一般扩展的存储器芯片的数据线也应选为8位,此时它们只需与单片机的8位数据总线DB(D0D7)按由低位到高位的顺序顺次对接即可。(3)存储器芯片的地址线存储器芯片的地址线数目由芯片的存储容量决定,存储容量Q与地址线数目N满足关系式:Q=2N。存储器芯片的地址线用于选择片内的存储单元或端口,称为字选或片内选择,它们与单片机的地址总线AB(A0A15)按由低位到高位的顺序顺次相接。一般来说,存储器芯片的地址线数目总是少于单片机地址总线的数目,如此相接后,单片机

25、的高位地址线总有剩余。剩余地址线一般作为译码线,译码输出与存储器芯片的片选信号线相接。存储器芯片一般都有1根(或几根)片选信号线(或)。对存储器芯片访问时,片选信号必须有效,即选中存储器芯片。片选信号线与单片机系统的译码输出相接后,就决定了存储器芯片的地址范围。一个芯片的某个单元或某个端口的地址由片选的地址和片内字选择地址共同组成,因此字选和片选引脚均应接到单片机的地址线上。连线的方法是:字选:外围芯片的字选(片内选择)地址线引脚直接接单片机的从A0开始的低位地址线;片选:外围芯片的片选(芯片选择)采用剩余的高位地址线经译码后的输出来选择,一般作为译码线片选引脚的连接方法有线选译码、译码器译码

26、、直接接地3种,在单片机中常采用线选译码法。因此,单片机的剩余高位地址线的译码及译码输出与存储器芯片的片选信号线的连接,是存储器扩展连接的关键问题。(4)其他注意问题 例如,单片机三总线的时序与存储器的读写时序的匹配问题,如果两者时序不一致,还需通过中间的接口电路使两者时序基本一致后,才能对接;再如,单片机三总线的负载能力问题等。单片机三总线一般只能带38个TTL负载。当扩展的芯片超过其负载能力时,系统三总线需驱动与隔离,此时数据总线DB要74LS245双向驱动,地址总线AB与控制总线CB则需74LS244单向驱动,驱动器的输出再连至外扩的存储器或I/O电路。5存储器芯片的选片方式存储器芯片的

27、字选(片内选择)地址线引脚直接接单片机的从A0开始的低位地址线;而片选引脚的连接方法主要有线选译码、译码器译码(包含部分译码和全译码)、直接接地3种。高位地址线不经过译码,直接(或经反相器)分别接各存储器芯片的片选端来区别各芯片的地址。它的优点是电路最简单, 但缺点是也会造成地址重叠,且各芯片地址不连续。此法适用于外围芯片不多的情况,它是一种最简单,最低廉的连接方法。图7-9为线选译码法的连接示意图。(1)线选法(或称线译码)图7-9 线选译码法的连接示意图其中:部分译码用片内寻址外的高位地址的一部分(而不是全部)作为译码产生片选信号。部分译码优点是较全译码简单,但缺点是存在地址重叠区;而全译

28、码法把全部高位地址线都作为译码信号来参加译码,译码输出作为片选信号。全译码的优点是每个芯片的地址范围是唯一确定,而且各片之间是连续的。缺点是译码电路比较复杂。(2)译码器译码片选引脚接到高位地址线经译码器译码后的输出线,这种通过译码器的译码方式又可分为部分译码、全译码法两种。(a) 全译码 (b) 部分译码 对于部分译码,参与译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关,即只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。正因如此,部分译码使存储器芯片的地址空间有重叠,所谓重叠的地址就是同一存储单元有多个不同的地

29、址,也就是说一个存储单元占据多个地址,因而会造成地址浪费,这是部分译码的缺点。 图7-11 为某一2KB容量的存储器与51单片机的地址线连接关系图。由于2K=211,存储器芯片需要11根地址线,图中与存储器芯片连接的低11位地址线的地址变化范围为全“0” 全“1”。剩余的5根高位地址线仅4根地址线参加译码,只有这4根地址线状态为0100时译码器的输出信号才为0,才能用于片选该芯片,也就是说它们是唯一确定的。但不参加译码的A15位地址线任何状态(有两种状态)都会选中该存储器芯片。当A15=0时,占用的地址是0010000000000000B0010011111111111B,即2000H27FF

30、H;当A15=1时,占用的地址是1010000000000000B1010011111111111B,即A000HA7FFH。同理,若有N条高位地址线不参加译码,则有2N个重叠的地址范围。当然,部分译码的优点是译码电路比较简单。图7-11 某2KB容量的存储器与MCS-51单片机的地址线连接关系当接入单片机的外部扩展RAM或ROM存储器芯片仅1片时,存储器的片选端可直接接地,使外扩的存储器始终处于选中状态。图7-12为直接接地法的连接示意图。(3) 片选端可直接接地图7-12 直接接地法的连接示意图6存储器芯片的译码电路 74LS138是3-8译码器,它有3个输入端、3个控制端及8个输出端,引

31、线及功能如图7-13所示。74LS138译码器只有当控制端G1、 、 为 1 0 0 时,才会在输出的某一端(由输入端C、B、A的状态决定)输出低电平信号,其余的输出端仍为高电平。G2A G2B 译码电路用于地址译码,它将输入的一组二进制编码变换为一个特定的控制信号,即将输入的一组高位地址信号通过变换,产生一个有效的控制信号,用于选中某一个存储器芯片,从而确定该存储器芯片在内存中的地址范围。 译码电路可用普通的逻辑芯片或专门的译码器芯片实现。常用的译码器芯片有双2-4译码器74LS139、3-8译码器74LS138和 4-16译码器74LS154等。下面仅介绍目前最常用的74LS138译码器。

32、图7-13 74LS138引脚图和译码逻辑关系7单片机扩展系统的分类 根据 MCS-51单片机系统所扩展的规模,可分为最小(Small)系统、紧凑(Compact)系统、大(Large)系统和海量(Vast)系统的4种。 最小系统前面已述。 最小系统一般不需扩展外部芯片,若需扩展的话,一般仅需扩展1片RAM或ROM或I/O接口芯片,此时译码方式一般都采用直接接地方式。(1) 紧凑扩展系统 紧凑系统扩展总线的地址总线宽度为8位,可扩展的单元的最大容量为256B,地址为00HFFH。 在紧凑系统中,P0口输出的地址信息也必须由ALE打入外部的地址锁存器,控制总线只有外部数据存贮器的读信号线、写信号

33、线。 由于单片机内部资源种类和数量的增加,目前大多数的单片机应用系统不需要大规模扩展外部存贮器,尤其是不需要扩展程序存贮器ROM,对于只扩展少量数据存贮器RAM和I/O接口的系统,我们称之为紧凑系统。在紧凑系统中,只用P0 口作为扩展总线口,P2口可以作为第一功能的准双向口使用接I/O设备,也可以将部分口线作为地址线。这种系统中,为了不影响P2口所连的设备,CPU访问外部数据存贮器时,不能用DPTR作地址指针,只能用R0、 R1作地址指针,即只使用(MOVX A,Ri)和(MOVX Ri,A)指令操作。图7-13 紧凑系统的扩展总线图线选法适用于只扩展少量I/O接口芯片的应用系统。对于I/O接

34、口芯片,内部的寄存器一般不大于8个,可以用A0A2作为芯片中寄存器的地址选择线,A3A7作为选片信号线,则可以外接5个I/O接口芯片。按线选法的地址分配方法,这5个芯片的地址分别为:01111 000B01111 111B(即78H7FH)、 10111 000B10111 111B(即B8HBFH)、 11011 000B11011 111B(即D8HDFH)、11101 000B11101 111B(即E8HEFH)、11110 000B11110 111B(即F0HF7H)。紧凑系统的地址译码方法同样有线选法和译码法两种,而译码法种又有全地址译码和部分地址译码。紧凑系统的地址译码方法1)

35、线选法2)地址译码法若A0A3作为芯片中寄存器地址选择线,A4A7用416译码器产生选片信号线,则最多可以接16片I/O接口芯片,地址分别为00000000B00001111B(即00FH)、00010000B00011111B(即101FH)、11110000B11111111B(即F0HFFH)。3)P2口部分口线作为地址线的译码方法对于扩展256字节RAM和I/O口的系统,可以用P2口的部分口线作为地址线,剩余的P2口线连I/O设备,这种系统也称为紧凑系统。在访问外部数据存贮器时,先对作为地址线的P2口口线操作,选中外部数据存贮器某一页,然后用R0或R1作为页内地址指针,对外部数据存贮器

36、进行读或写。图7-15 P2口部分口线作为地址线的一种译码方法 【例7-1】图7-15所示的是一种把P2.0、P2.1作为地址线的地址译码方法,图中采用了线选法和译码法相结合的方法。 、 用线选法产生,在 、 都为高电平时,3-8译码器输出的 、 、 、 中有一个选片信号线有效,这样可外接 6个芯片。CS0CS1CS2 CS3 CS4 CS5CS0CS1(2) 大扩展系统 对于硬件需求量大,外部存贮器空间被充分利用的应用系统,其系统结构规模大,我们称之为大系统。在大系统中,P0 口和P2 口都作为总线口使用,不能作为第一功能的I/O接口连接外部设备。DPTR、 R0、 R1都可以作为访问外部数

37、据存贮器的地址指针。 大系统扩展总线中P0 口、P2 口作为扩展总线的地址总线AB口时,P2口输出高8位地址A8A15, P0口通过地址锁存器输出低8位地址A0A7,P0口同时作为双向数据总线DB D0D7,控制总线CB有外部程序存贮器ROM读选通信号线,外部数据存贮器RAM的读信号线、写信号线,以及低8位地址A0A7的锁存信号线ALE。大系统扩展构成的片外总线结构图(图7-2) 并行扩展的核心问题是的编址问题。单片机中CPU是根据地址访问外部存贮器的,即由地址总线上地址信息选中某一芯片的某个单元进行读或写。大系统扩展总线的地址总线宽度为16位,可扩展的单元的最大容量为64KB,地址为0000

38、HFFFFH。 在实际的应用系统中,MCS-51单片机有时需要扩展多片外围芯片,这时一般通过芯片选择信号线(片选线)来识别不同的外围芯片,通常片选方式还是线选法和译码法。 因为大系统扩展总线的地址总线宽度为16位,所以要使用MCS-51单片机指令中具有16位地址寻址功能的操作指令,MCS-51单片机对外操作的指令有6条,它们是:MOVX Ri,A;MOVX A,DPTR;MOVX A,DPTR;MOVC A,A+DPTR;MOVC A,A+PCMOVX A,Ri;其中:、指令使用P0端口输出8位地址信号(P2端口不用);当使用、指令时,P0端口输出DPIR提供的DPL低8位地址信号,P2端口输

39、出DPIR提供的DPH高8位地址信号;、指令操作外部数据存贮器的读信号线 (P3.7)或写信号线 (P3.6)。当使用、指令时,P0端口输出A+DPTR或A+PC提供的低8位地址信号,P2端口输出A+DPTR或A+PC提供的高8位地址信号,但指令操作外部程序存贮器读选通信号线 。PSENRDWR(3)海量扩展系统在报站器、屏幕显示等一些特殊应用中,需超过64KB的存贮器,则可以用P1的口线作为区开关来实现。如扩展1片128KB SRAM 628128和I/O口的系统,可以采用图7-16 的一种译码方法。图中,628128占0区和1区的64KB存贮空间,I/O接口占2区存贮空间,每个区为64KB

40、。在访问外部RAM/IO时,先对P1.1、P1.0操作选择一个区,然后用DPTR作指针,对所选中的区中的单元操作。也可以用扩展I/O口作为地线(如3个8位口产生24位地址),将地址写入扩展口以后再对存贮器读写。图7-16 海量存贮器的一种译码方法 目前在单片机应用中,已很少扩展程序存贮器。如89C52芯片内部已有8K的Flash程序存贮器,只有在需要大量常数存贮器(如字库)等特殊应用中,才在外面扩展1片只读存贮器ROM。这样的系统都是大系统,P0口、P2口都作为扩展总线口使用。 7.2.2 MCS-51片外程序存储器的扩展前面已述,扩展片外程序存储器所用的芯片一般采用ROM存储器芯片,它们可以

41、是EPROM、EEPROM、 FLASH等类型的芯片。1常见的程序存储器ROM的芯片(1)EPROM存储器 EPROM是紫外线可擦除电可编程的只读存贮器,掉电以后信息不会丢失。用EPROM作为单片机外部程序存储器是经典的程序存储器扩展方法,虽然目前已基本不用EPROM,但目前使用的EEROM和Flash ROM的储器扩展方法与EPROM的扩展方法是一样的。 EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变为1,即处于擦除干净的状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中,称为“写入”或“烧”程序。固化的过程就是按要求把芯片的“1”便为“0”,信息是“1”

42、的保持不变。 图7-17为常用的6种EPROM存储器的引脚图。其中:2716(2K8bit)、2732(4K8bit)均为24脚, 而2764(8K8bit)、27128(16K8bit)、27256(32K8bit)、 27512(64K8bit)均为28脚。图7-17 常用的6种EPROM芯片引脚(2)EEPROM存储器 EEPROM芯片有如下共同特点:单+5V供电,电可擦除可改写;使用次数为1万次,信息保存时间为10年;读出时间为ns级,写入时间为ms级;芯片引脚信号与相应的RAM和EPROM芯片兼容,见表7-1。 EEPROM的使用非常简单方便。不用紫外线擦除,在单一的+5V电压下写入

43、的新数据可覆盖旧数据。 常用的EEPROM芯片有2816 、2817(2K8bit)、2864(8K8bit)等 ,图7-18为常用的3种EEPROM芯片引脚图。在芯片的引脚设计上,2KB的E2PROM 2816与EPROM 2716和RAM 6116兼容,8KB的E2PROM 2864A与EPROM 2764和RAM 6264兼容,2816、2817和2864A的读出时间均为250ns,写入时间10ms。电可擦除只读存储器EEPROM可像EPROM那样长期非易失地保存信息,又可像RAM那样随时用电改写,近年来出现了快擦FLASH EEPROM,它们被广泛用作单片机的程序存储器和数据存储器。图

44、7-18 常用的 3 种EEPROM芯片引脚表7-1 常用的EEPROM芯片与相应的RAM和EPROM芯片兼容情况 2817A为2KB EEPROM维持电流为60mA,典型读出时间为200350ns,字节编程写入时间为1020s,芯片内有电压提升电路,编程时不必增高压,单一+5V供电。引脚和6116,2716 兼容。8031单片机扩展2817A的硬件电路如图7-19所示。图中的2817A既可作为数据存储器RAM,又可作为程序存储器ROM。通过P1.0查询2817A的RDY/ 状态,来完成对2817A的写操作。片选信号由P2.7提供。BUSYMCS-51 系列单片机中的数据存储器和程序存储器在逻

45、辑上是严格分开的,但在实际设计和开发单片机系统时,程序和数据若放在EEPROM或FLASH 或 SRAM,可方便程序和数据调试和修改,为此需将程序存储器和数据存储器混合使用。在硬件上将 信号和 相“与”后连到RAM的读选通端 即可以实现,见图7-19。当执行MOVX 指令时产生 读选通信号使 有效,当执行该RAM中的程序时,由 信号也使 有效,选通 RAM,读出其中的机器码。注意, 信号依然连接 RAM的 端。PSENRDOERDOEPSENOEWRWE2817A EEPROM和单片机的连接说明。(图7-19)图7-19 8031单片机与2817A EEPROM的连接电路(3) FLASH 存

46、贮器(闪速存储器) FLASH存贮器又称闪速存贮器或PEROM(Programmable Erasable ROM),它是在EPROM工艺的基础上增添了芯片整体电擦除和可再编程功能,使其成为性价比高可靠性高、快擦写、非易失的EEPROM存贮器(后面简称Flash)。很多Flash内部集成有DC/DC变换器,使读、擦除、编程使用单一电压(根据不同型号,有的是单一5V,也有的是单一3V低压),从而使在系统编程(ISP)成为可能,目前很多单片机内均采用FLASH作为程序存储器。 FLASH的扩展方法和EEPROM一样。2程序存储器ROM的操作时序 单片机的地址总线为16位,扩展的片外ROM的最大容量

47、为64KB,地址为0000HFFFFH。扩展的片外RAM的最大容量也为64KB,地址为0000HFFFFH。由于MCS-51单片机采用不同的控制信号和指令,尽管ROM与RAM共享数据总线和地址总线,ROM与RAM的地址重叠,但由于两者的控制总线不同,因此不会发生混乱。 图7-20 为MCS-51单片机访问ROM时序。单片机的CPU在访问或片外ROM的一个机器周期内,信号ALE出现两次正脉冲,ROM选通信号 也两次有效, 这说明在一个机器周期内,CPU两次访问片外ROM,也即在一个机器周期内可以处理两个字节的指令代码,所以MCS-51单片机指令系统中有很多单周期、双字节的指令。PSEN图7-20

48、 MCS-51单片机访问 ROM 时序 程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中,可分析ALE、 、P0和P2怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。单片机一直处于不断的取指令码执行取指令码执行的工作过程中,在取指令码时和执行MOVC指令时 会变为有效,和其它信号配合完成从程序存储器读取数据。PSENPSEN3片外程序存储器ROM的扩展方法 程序存储器ROM的扩展是使用P0、P2端口作为地址总线、数据总线。 MCS-51 单片机对片内、片外 ROM 的访问使用相同的指令MOVC,两者的选择是由硬件实现的。在时序中将产生 信号,因此,将 信号

49、与片外ROM相应的读 相连接,就能够实现系统对片外ROM的读控制。外部程序存储器ROM的扩展方法如图7-21所示。片外ROM芯片扩展时,芯片选择多采用线选法或直接接地法,地址译码法用的渐少。PSENPSENOE图7-21 单片机扩展程序存储器ROM电路由于本电路也只扩展1片程序存储器,可直接接地。由于剩余的高4位地址为任意值,因此本电路扩展存储器的地址有24=16个重叠的地址空间,它们分别是0000H0FFFH、1000H1FFFH、2000H2FFFH、3000H3FFFH、4000H4FFFH、5000H5FFFH、6000H6FFFH、7000H7FFFH、8000H8FFFH、9000

50、H9FFFH、A000HAFFFH、B0000HBFFFH、C000HCFFFH、D000HDFFFH、E000HEFFFH、F000HFFFFH。地址计算如表7-2所示。(1)不用片外译码器的单片程序存储器的扩展【例7-2】MCS-51单片机扩展1片EPROM2732程序存储器的电路如图7-22所示。EPROM 2732的容量为4KB8位。4KB表示有41024=4096=212个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0A11),后者确定了数据线的位数是8位(O0O7)。EPROM的读选通 信号与单片机的 相连,如果要从EPROM中读出程序中定义的

51、数据,需使用指令:MOVC A,A+DPTR或MOVC A,A+PC。OEPSEN图7-22 单片机扩展2732 EPROM电路表7-2 2732 EPROM的地址范围计算(2)采用线选法的多片程序存储器的扩展【例例7-37-3】使用两片2764扩展16 KB的程序存储器,采用线选法选中芯片。扩展连接图如图7-23所示。以P2.7作为片选,当P2.7=0时,选中2764(1);当P2.7=1时,选中2764(2)。因两根线(A13、A14)未用,故两个芯片各有22=4个重叠的地址空间。图7-23 用两片2764 EPROM的扩展连接电路 两片2764的地址范围如下:左片: 0000000000

52、00000000001111111111111,即0000H1FFFH; 001000000000000000011111111111111,即2000H3FFFH; 010000000000000000101111111111111,即4000H5FFFH; 011000000000000000111111111111111,即6000H7FFFH;右片: 100000000000000001001111111111111,即8000H9FFFH; 101000000000000001011111111111111,即A000HBFFFH; 1100000000000000011011111

53、11111111,即C000HDFFFH; 111000000000000001111111111111111,即E000HFFFFH。(3)采用地址译码器的多片程序存储器的扩展【例7-5】 要求用2764芯片扩展8031的片外程序存储器,分配的地址范围为0000H3FFFH。本例要求的地址空间是唯一确定的,所以要采用全译码方法。由分配的地址范围知:扩展的容量为3FFFH-0000H+1=4000H=16KB,2764为8K8位,故需要两片。第1片的地址范围应为0000H1FFFH;第2片的地址范围应为2000H3FFFH。由地址范围可确定译码器的连接方式,译码关系表见表7-3。表7-3 27

54、64的地址范围计算图7-24为单片机扩展2片EPROM 2764程序存储器的电路图。2764共有13根地址线和8根数据线,分别与单片机相连,单片机剩余的3根地址线通过译码器输出端,分别控制两个存储器的片选线,这就保证了每个存储单元只有唯一的地址。图7-24 全译码、2片2764 EPROM的扩展连接电路 7.2.3 MCS-51片外数据存储器RAM的扩展RAM是用来存放各种数据的,MCS-51单片机内部有128B (51子系列)/256B (52子系列)的RAM存储器,CPU对内部RAM具有丰富的操作指令。但当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,可

55、以采用外部的RAM来扩展单片机的数据存储器。由于单片机的引脚无动态刷新功能,因此,单片机一般仅采用静态RAM (即SRAM)来扩展数据存储器。(1)常见的数据存储器RAM的芯片常用的SRAM芯片有 2114(1K4bit)、6116(2K8bit)6264(8K8bit) 62256(32K8bit)等。图7-25为常用SRAM芯片的引脚图。(a) 2114 (b) 6116、6264、62128、62256 (2)片外数据存储器RAM的操作时序扩展RAM和扩展ROM类似,由P2口提供高8位地址,P0口分时地作为低8位地址线和8位双向数据总线。1)外部RAM的读时序图7-26为片外RAM读时序

56、图。当执行指令 MOVX A,Ri或 MOVX A,DPTR 时进入外部数据RAM是的读周期。在第一个机器周期的第一个ALE的上升沿,把外部程序存储器的指令MOVX读入后就开始了对片外RAM的读过程。第一个机器周期的第一个ALE高电平期间,在P0处于高阻三态后,根据指令间址提供的地址,P2口输出外部RAM的高8位地址A15A8 ,P0端口输出低8位地址A7A0;在第一个机器周期的第一个ALE下跳沿,P0输出的低8位地址被锁存在锁存器中,随后P0又进入高阻三态,信号有效后,被选中的RAM的数据在第二个机器周期出现在数据总线上,P0 处于输入状态,CPU从P0 读入外部RAM的数据。图7-26 片

57、外RAM的读时序 2)外部RAM的写时序图7-27为片外RAM写时序图。当执行MOVX Ri,A 或 MOVX DPTR,A指令时进入外部数据存储器的写周期。写外部RAM的操作时序与读外部RAM的时序差别在于:有效代替有效,以表明这是写数据RAM的操作; 在P0输出低8位地址A0A7后,P0立即处于输出状态,提供要写入外部RAM的数据供外部RAM取走。图7-27 外部RAM的写时序由以上时序分析可见,访问外部数据RAM的操作与从外部程序存储器ROM取指令的过程基本相同,只是前者有读有写,而后者只有读而无写;前者用或选通,而后者用选通;前者一个机器周期中ALE两次有效,后者则只有一次有效。因此,

58、不难得出MCS-51单片机与外部RAM的连接方法。(3)片外数据存储器RAM的扩展方法与程序存储器ROM扩展原理相同,数据存储器RAM的扩展也是使用P0、P2端口作为地址总线、数据总线。当使用MOVX A,Ri或MOVX Ri,A指令时,系统使用P0端口输出地址信号(P2端口不用);当使用MOVX A,DPTR或MOVX DPTR,A指令时,P0端口输出DPTR提供的低8位地址信号,P2端口输出DPTR提供的高8位地址信号。与ROM扩展不同,访问外部RAM的指令是MOVX,在时序中将产生 或 信号,因此,将 、 信号分别与片外RAM相应的读 、写 相连接,就能够实现系统对片外RAM的读/写控制

59、。外部数据存储器的扩展方法如图7-28所示。RDWRRDWROEWE图7-28 单片机扩展数据存储器RAM电路 由于数据存储器的扩展方法和程序存储器的扩展方法相同,只是控制信号不同,在此就不多举例了,读者可根据选用芯片数据手册连接电路,然后根据连接好的电路,确定地址范围。下面仅举例说明当存储器RAM芯片不足8位时,它们如何与单片机相连接。【例7-5】 采用2114(1K4bit)芯片在8031片外扩展1 KB数据存储器。由于2114芯片的容量为1K4bit,每片2114共有1K个存储单元,但每个单元仅有4位,而8031的数据总线为8位,因此,需要进行位扩展。两片2114并联连接起来后每个单元正

60、好为8位,此时两片的第1片数据线作为低4位数据,而第2片数据线作为高4位数据,而两片的其他引脚只需对应连接在一起即可,这样两片并接后就可得到 1K8bit=1KB 的数据存储器。图7-29为采用两片2114 EPROM的扩展连接电路图。另外,2114芯片的为读、写复用引脚,当 =0、1时分别处于写、读状态。WE图7-29 两片2114 EPROM的扩展连接电路7.2.4 兼有片外程序存储器和片外数据存储器的扩展前面分别讨论了MCS-51型单片机扩展外部程序存储器和数据存储器的方法,但在实际的应用系统设计中,往往既需要扩展程序存储器,又需要扩展数据存储器,同时还需要扩展I/O接口芯片,而且有时需

温馨提示

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

评论

0/150

提交评论