第4章MCS-51单片机系统的扩展技术主要内容:MCS-51单片机系统扩展的基本原理和方法。常用器件的选择和应用,常用总线标准和典型接口电路。要求学生掌握单片机系统扩展的原理、方法,并能根据工程要求进行系统扩展。重点在于常用器件的选择和应用,常用总线标准和典型接口电路,单片机系统扩展的基本原理和方法。难点在于存储器地址重叠,灵活运用所学知识根据实际需要进行系统扩展。。4.1MCS-51单片机系统扩展概述4.1.1MCS-51系列单片机的外部扩展原理1.MCS-51系列单片机的片外总线结构•(1)地址总线(AB)•(2)数据总线(DB)•(3)控制总线(CB)2.MCS-51系列单片机系统的扩展能力片外可扩展存储器的最大容量为216=64KB,地址范围为0000H~FFFFH。允许片外程序存储器和数据存储器的地址重叠。I/O接口的编址方法:一种是独立编址,另一种是统一编址。MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H~FFFFH(64KB)。当MCS-51单片机应用统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。4.1.2MCS-51单片机系统地址空间的分配系统空间分配:通过适当的地址线产生各外部扩展器件的片选/使能等信号就是系统空间分配。编址:编址就是利用系统提供的地址总线,通过适当的连接,实现一个编址惟一地对应系统中的一个外围芯片的过程。编址就是研究即系统地址空间的分配问题。片内寻址:若某芯片内部还有多个可寻址单元,则称为片内寻址编址的方法:芯片的选择是由系统的高位地址线通过译码实现的,片内寻址直接由系统低位地址信息确定。产生外围芯片片选信号的方法有三种:线选法、全地址译码法和部分译码法。1.线选法2.全地址译码法3.部分地址译码法4.2存储器的扩展MCS-51单片机对外部存储器的扩展应考虑的问题:(1)选择合适类型的存储器芯片只读存储器(ROM)常用于固化程序和常数,可分为掩膜ROM、可编程PROM、紫外线可擦除EPROM和电可擦除E2PROM几种。随机存取存储器(RAM)常用来存取实时数据、变量和运算结果。此外,还可以选择OTPROM、Flash存储器、用于多处理机系统的DPRAM(双端口RAM)等。(2)工作速度匹配MCS-51的访存时间(单片机对外部存储器进行读写所需要的时间)必须大于所用外部存储器的最大存取时间(存储器的最大存取时间是存储器固有的时间)(3)选择合适的存储容量在MCS-51应用系统所需存储容量不变的前提下,若所选存储器本身存储容量越大,则所用芯片数量就越少,所需的地址译码电路就越简单。(4)合理分配存储器地址空间的分配存储器的地址空间的分配必须满足存储器本身的存储容量,否则会造成存储器硬件资源的浪费。(5)合理选择地址译码方式可根据实际应用系统的具体情况选择线选法、全地址译码法、部分地址译码法等地址译码方式。4.2.1程序存储器扩展单片机内部没有ROM,或虽有ROM但容量太小时,必须扩展外部程序存储器方能工作。最常用的ROM器件是EPROM1.常用EPROM程序存储器EPROM主要是27系列芯片,如:2764(8K)/27128(16K)/27256(32K)/27040(512K)等,一般选择8KB以上的芯片作为外部程序存储器。2732~27512芯片的读、维持操作方式各引脚的状态如下表所示。2.地址锁存器程序存储器扩展时,还需要地址锁存器,地址锁存器常用的有带三态缓冲输出的8D锁存器74LS373、带有清除端的74LS273。3.典型扩展电路MCS-51外扩存储器时应考虑锁存器的选择与连接,译码方式,存储器的选择与连接。访问程序存储器的控制信号有:ALE----地址锁存信号PSEN----片外程序存储器读信号EA----片内、外程序存储器访问选择信号EA=0:访问片外;EA=1:访问片内。扩展电路如下:2764的地址范围为:1000H~2FFFH。8051片内存储器的范围为:0000H~0FFFH。4.超出64KB容量程序存储器的扩展MCS-51单片机提供16位地址线,可直接访问程序存储器的空间为64KB(216),若系统的程序总容量需求超过64KB,如何来实现?如下图所示为系统扩展128KB程序存储空间(2×64KB)示意图。P1.0输出高电平,访问A芯片;P1.0输出低电平,访问B芯片。4.2.2数据存储器扩展单片机内部的RAM为128B(或256B),有的单片机应用系统需要扩展外部数据存储器RAM(如数据采集系统数据量较大,需要专设RAM或FlashRAM)。最常用的RAM器件是静态RAM(SRAM)。1.常用静态RAM存储器常用的SRAM有6116(2K)、6264(8K)、62128(16K)、62256(32K)、628128(128K)等。一般选择8KB以上的芯片作为外部程序存储器。其引脚图如下页图所示。静态RAM存储器有三种工作方式:数据的读出、写入和维持,其操作控制如下表所示。MCS-51扩展数据存储器与扩展程序存储器电路的异同:(1)所用的地址总线,数据总线完全相同;(2)读/写控制线不同:扩展程序存储器的读选通信号由PSEN控制,扩展数据存储器的读、写控制线用RD、WR分别控制存储器芯片的OE和WE;(3)数据存储器与程序存储器的地址可以重叠,因为扩展它们的控制信号不同。(4)I/O扩展的地址空间与数据存储器扩展的空间是共用的,所以扩展数据存储器涉及到的问题远比扩展程序存储器扩展多。6264的地址范围为:0000H~1FFFH。2.数据存储器典型扩展电路[例题]在上页图的数据存储器扩展电路中,将片内RAM以50H单元开始的16个数据,传送片外数据存储器0000H开始的单元中。程序如下:ORG1000HMOVR0,#50H;数据指针指向片内50H单元MOVR7,#16;待传送数据个数送计数寄存器MOVDPTR,#0000H;数据指针指向数据存储器6264的0000H单元AGAIN:MOVA,@R0;片内待输出的数据送累加器AMOVX@DPTR,A;数据输出至数据存储器6264INCR0INCDPTR;修改数据指针DJNZR7,AGAIN;判断数据是否传送完成RETEND4.2.3MCS-51对外部存储器的扩展下图所示的8031扩展系统中,外扩了16KB程序存储器(使用两片2764芯片)和8KB数据存储器(使用一片6264芯片)。采用全地址译码方式,P2.7用于控制2―4译码器的工作,P2.6,P2.5参加译码,且无悬空地址线,无地址重叠现象。1#2764,2#2764,3#6264的地址范围分别为:0000H~1FFFH,2000H~3FFFH,4000~5FFFH。4.2.4程序存储空间和数据存储空间的混合在硬件结构上将信号和信号相“与”后连接到RAM芯片的读选通端,这样就能使程序存储空间和数据存储空间混合。如右图所示。将程序装入6264中,很容易进行读写修改,执行程序时,由信号选通RAM读出。调试通过后,再将RAM6264调换成EPROM2764。PSENRD4.3并行I/O口的扩展MCS-51单片机具有四个并行8位I/O口(即P0,P1,P2,P3),原理上这四个I/O口均可用做双向并行I/O接口,但在实际应用中,可提供给用户使用的I/O口只有P1口和部分P3口线及作为数据总线用的P0口。,在单片机的I/O口线不够用的情况下,可以借助外部器件对I/O口进行扩展。可资选用的器件很多,方案也有多种。4.3.1概述1.单片机I/O口扩展方法(1)并行总线扩展的方法(2)串行口扩展方法(3)I/O端口模拟串行方法2.MCS-51单片机扩展并行I/O口的扩展性能①访问扩展I/O口的方法与访问数据存储器完全相同,使用相同的指令,所有扩展的I/O口与片外数据存储器统一编址。②利用串行口扩展法扩展的外部并行I/O口不占用外部RAM地址空间。③利用并行总线扩展的方法扩展外部并行I/O口时,必须注意P0,P2,P3口的负载问题,若负载能力不够,必须进行总线驱动能力扩展。④扩展外部并行I/O口对外设的硬件具有依赖性(驱动功率、电平匹配、干扰抑制、隔离等)。4.3.2普通并行I/O口扩展普通并行I/O口在扩展时,它们的选通端或时钟信号端要与地址线和控制线的逻辑组合输出端相连。其特点是电路简单、成本低、配置灵活方便等特点,应用广泛。1.扩展并行输出口(1)用74LS377扩展并行输出口74LS377是带有输出允许端的8D锁存器,硬件电路如右图所示。程序如下:MOVDPTR,#7FFFH;数据指针指向74LS377MOVA,60H;输出的60H单元数据送累加器AMOVX@DPTR,A;P0口将数据通过74LS377输出E(2)用74LS374扩展并行输出口74LS374是具有三态输出的8D边沿触发器,与单片机接口电路如下图所示,74LS374的地址为7FFFH。程序如下:MOVDPTR,#7FFFHMOVA,60HMOVX@DPTR,A2.扩展并行输入口用单向总线缓冲器74LS244扩展并行输入口,硬件电路如下图所示。74LS244的地址为7FFFH。程序如下:MOVDPTR,#7FFFH;数据指针指向74LS244MOVXA,@DPTR;外部数据经过74LS244送入累加器AMOV61H,A;数据送61H单元保存4.3.3可编程并行I/O接口芯片扩展1.可编程并行口8255A芯片(1)可编程并行口8255A的结构3个并行IO口PA,PB,PC数据总线驱动器读写控制逻辑A组控制B组控制A组A口A组C口B组C口B组B口(2)8255A的控制操作状态8255A芯片的工作方式是通过地址线A1,A0选择端口、通过读写控制逻辑的组合状态来实现的。其操作状态如下表所示。(2)8255A芯片的控制字8255A芯片的初始化编程是通过对控制口写入控制字的方式实现的。方式控制字:字控制8255A芯片三个端口的工作方式,特征是最高位为1。C口的按位置位/复位控制字:C口具有位操作能力,其每一位都可以通过软件设置为置位或复位。其特征是最高位为0。(3)8255A的3种工作方式方式0(基本输入/输出方式):不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。方式1(选通输入/输出方式):A组包括A口和C口的高五位(PC7~PC3),A口可由程序设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低三位(PC2~PC0),功能和A组相同。方式2(双向I/O口方式):仅A口有这种工作方式,B口无此工作方式。此方式下,A口为8位双向I/O口,C口的PC7~PC3用来作为输入输出的控制和同步信号。此时,B口可以工作在方式0或方式1。8255A在不同的工作方式下,各口线的功能如下表所示。(4)接口与编程方法MCS-51单片机外扩8255A芯片的电路原理图如下图所示。8255A芯片内部已有数据总线驱动器,可以直接与MCS-51单片机总线相连接(P0口接D0~D7)。8255A的RESET,,分别与MCS-51单片机的RESET,,相连,接P2.7,单片机地址线最低2位分别接8255A芯片的A1,A0。PA,PB,PC及控制寄存器的地址分别是7FFCH,7FFDH,7FFEH和7FFFH。WRRDWRRDCS[例题]如图上页所示,假设8255A芯片的PA接一组8只状态指示灯,PB接一组8个开关,现须将开关闭合的状态输入到片内60H单元保存,将70H单元的内容送状态指示灯显示,并置位PC7引脚,编写相应程序。解:根据题意,设置8255A的A口方式0输出,B口方式0输入,C口高四位输出,则8255A的方式字为82H(10000010B),C口置位/复位字为0FH(00001111B),8255A的方式字及置位/复位控制字地址为7FFFH。初始化过程及输入/输出的程序如下:ORG1000HDSP8255:MOVDPTR,#7FFFH;数据指针指向8255A控制口MOVA,