第6章80C51单片机的系统扩展第6章80C51单片机的系统扩展80C51系列单片机内部已有ROM、RAM、I/O和定时/计数器等基本功能部件,对于小的应用系统已经可以满足系统要求。但对于较大的应用系统,还需进行系统扩展,学习目的1、了解80C51单片机的三总线即数据、地址和控制总线的构成。2、掌握80C51单片机扩展ROM和RAM的方法。3、掌握80C51单片机扩展8255和8155的方法及应用。自学学习重点和难点1、ROM和RAM的扩展和分析方法。2、可编程芯片8255A与8155的应用。自学第6章80C51单片机的系统扩展6.1.1MCS-51单片机并行扩展总线进行系统扩展时,单片机的引脚可构成三总线结构1、片外三总线结构ALEP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0EAPSENRST803180518751VccVssP1口P2口P0口373GE+5VA0~A7A8~A15D0~D7I/OXTAL1XTAL2RXDTXDINT0INT1T0T1WRRD控制总线CB数据总线DB地址总线AB第6章80C51单片机的系统扩展CPU微处理器RAMI/OROMCBUSDBUSABUS利用三总线可方便的进行系统的扩展设计:……⑴地址总线AB(A0~A15)宽16位片外寻址64KB,单向三态⑵数据总线DB(D0~D7)宽8位⑶控制总线CB,方向不确定系统扩展用的控制总线有:PSENEAALERESETRDWR地址总线由P0口提供地址低8位。地址总线由P2口提供地址高8位P0口是地址/数据复用线,在地址有效时,ALE↓锁存到片外地址锁存器保存;数据总线由P0口提供,该口为三态双向口。第6章80C51单片机的系统扩展6.1.2常用程序存储器芯片1、常用的EPROM芯片扩展程序存储器常用的芯片是EPROM(ErasableProgrammableReadOnlyMemory)型(紫外线可擦除型),主要是Intel公司生产的27XXX系列,如2716(2K×8)、2732(4K×8)、27512(64K×8)等,其中高位数字27表示该芯片是EPROM,XXX数字能被8整除,表明存储器容量,如2732(32/8=4KB)表示4KB存储容量的EPROM。EPROM除2716、2732外均为28线双列直插式封装,各引脚功能如下。①A0~A15:地址输入线。②D0~D7:双向三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。其余时间呈高阻状态。③CE:片选线,低电平有效。④OE:读出选通线,低电平有效。⑤PGN:编程脉冲输入线。6.1程序存储器扩展第6章80C51单片机的系统扩展2、典型EEPROM芯片Intel公司生产的28系列EEPROM是电可擦除只读存储器,即可像RAM哪样可读可写,又具有ROM在掉电后仍能长期保持所存储的数据,因此,它被广泛用作单片机的程序存储器和数据存储器。EEPROM各引脚功能如下:①A0~A15:地址输入线。②D0~D7:双向三态数据总线。③CE:片选线,低电平有效。④OE:读选通线,低电平有效。⑤WE:写选通线,低电平有效。⑥RDY/BUSY:2817A的状态输入线,低电平表示在写操作,高电平表示准备好接收数据。第6章80C51单片机的系统扩展3、Flash(闪速)ROMFlashROM是一种新型的电擦除式存储器,它是在EPROM工艺的基础上增添了芯片整体电擦除和可再编程功能。它即可作数据存储器用,又可作程序存储器用,其主要性能特点为:(1)电可擦除、可改写、数据保持时间长。(2)可重复擦写/编程大于1万次。(3)有些芯片具有在系统可编程ISP、IAP功能。(4)读出时间为ns级,写入和擦除时间为ms级。(5)低功耗、单一电源供电、价格低、可靠性高,性能比EEPROM优越。FlashROM型号很多,常用的有29系列和28F系列。29系列有29C256(32K×8)、29C512(64K×8)、29C010(128K×8)、29C020(256K×8)、29040(512K×8)等,28F系列有28F512(64K×8)、28F010(128K×8)、28F020(256K×8)、28F040(512K×8)等。第6章80C51单片机的系统扩展6.1.3程序存储器扩展实例程序存储器的扩展问题实际上就是研究程序存储器与单片机的连线问题,程序存储器与单片机的连线主要是三总线,具体是:⑴数据线:存储器的数据线D7~D0有8位,由单片机的P0口的P0.7~P0.0提供。⑵地址线:地址线的根数决定了程序存储器的容量。程序存储器的A7~A0低8位地址线由P0口提供,程序存储器的A15~A8的高8位地址线由P2口提供,具体使用多少条地址线视扩展容量而定。⑶控制线:常用的有三根控制线。①程序存储器的读允许信号OE与单片机的读选通信号PSEN相连②程序存储器片选线CE的接法决定了程序存储器的地址范围的基址当只采用一片程序存储器芯片时,可以直接接地,当采用多片程序存储器芯片时,可用用线选法和译码法来选中,第6章80C51单片机的系统扩展一、用线选法扩展一片程序存储器。线选法是指用一根高位地址或地线连接片选CE信号。此方法连接简单、成本低、容易掌握,但是,缺点是存储器的地址不唯一。下面通过举例来说明。[例6.1]在80C31单片机上用27128AEPROM芯片扩展程序存储器。分析:1、确定需要几根地址线。27128AEPROM芯片是16KB×8存储器,其中16K=16×1024=24×210=214,因此,需要14根地址线,即A0~A13。2、确定三总线。①数据线:27128A的数据线D7~D0直接接80C31的P0.7~P0.0。②地址线:27128A的地址线低8位A7~A0通过锁存器74LS373与P0口连接,高6位A8~A13直接与P2口的P2.0~P2.5连接,P2口本身有锁存功能。③控制线:CPU对EPROM只能进行读操作,不能进行写操作。CPU对27128A的读操作控制都是通过控制线实现的。27128A控制线的连接有以下几条:第6章80C51单片机的系统扩展3、27128A程序存储器地址范围的确定。其中,“×”表示与27128A管脚无关,数值可取0或1(地址范围不是唯一的),通常取0。因此,27128A程序存储器地址范围为0000H~3FFFH(“×”取0),共计16KB存储容量。CE片选线:直接接地。表示27128A一直被选中。OE读选通线:接80C31的读选通信号PSEN端。在访问片外程序存储器时,只要PSEN端出现负脉冲,即可从27128A中读程序。根据上述分析可画出80C31扩展一片27128A的电路图如图6-5所示。第6章80C51单片机的系统扩展[例6.2]:用80C31单片机扩展一片29C256FlashPEROM存储器。分析:1、确定需要几根地址线。29C256FlashPEROM芯片是32KB×8存储容量,其中32K=32×1024=2^5×2^10=2^15,因此,需要15根地址线,即A0~A14。2、确定三总线。①数据线:29C256的数据线D7~D0直接接80C31的P0.7~P0.0。②地址线:29C256的地址线低8位A7~A0通过锁存器74LS373与P0口连接,高7位A8~A14直接与P2口的P2.0~P2.6连接,P2口本身有锁存功能。③控制线:80C31单片机与29C256的控制线连接采用了将外部数据存储器空间和程序存储器空间合并的方法,使得29C256既可以作为程序存储器使用,又可以作为数据存储器使用。CE片选线:直接接地。由于系统中只扩展了一片程序存储器芯片,因此,29C256的片选端直接接地,表示29C256一直被选中。OE读选通线:80C31的程序存储器读选通信号PSEN和数据存储器读信号RD经过“与”门后,接到29C256的读选通线OE上。因此,只要PSEN和RD中一个有效,就可以对29C256进行读操作。也就是说,对29C256既可以看作程序存储器取指令,也可以看作数据存储器读出数据。WE写选通线:与80C31的数据存储器写信号WR相连,只要执行数据存储器写操作指令,就可以往29C256中写入数据。根据上述分析可画出80C31扩展一片29C256的电路图如图6-6所示。第6章80C51单片机的系统扩展3、29C256存储器地址范围的确定。因此,29C256存储器地址范围为0000H~7FFFH(“×”取0),共计32KB存储容量。采用MOVXA,@DPTR和MOVCA,@A+DPTR指令来完成读操作;用MOVX@DPTR,A指令来完成写操作。第6章80C51单片机的系统扩展二、用译码法扩展一片2764译码法又称全地址译码法,所有的地址线都参与译码。下面通过举例来说明。[例6.3]:用译码法扩展一片2764EPROM存储器。分析:1、确定需要几根地址线。2764EPROM芯片是8KB×8存储器,其中8K=8×1024=23×210=213,因此,需要13根地址线,即A0~A12。2、确定三总线。①数据线:2764的数据线D7~D0直接接80C31的P0.7~P0.0。②地址线:2764的地址线低8位A7~A0通过锁存器74LS373与P0口连接,高6位A8~A12直接与P2口的P2.0~P2.4连接。③控制线:CPU对EPROM只能进行读操作,不能进行写操作。CPU对2764的读操作控制都是通过控制线实现的。2764控制线的连接有以下几条:CE片选线:由于采用译码法,因此,它是通过74LS138译码器的输出端Y0来控制,当Y0=0时,才能够选中2764芯片。OE读选通线:接80C31的读选通信号PSEN端。在访问片外程序存储器时,只要PSEN端出现负脉冲,即可从2764中读程序。根据上述分析可画出80C31扩展一片2764的电路图如图6-7所示。第6章80C51单片机的系统扩展3、2764程序存储器地址范围的确定。因此,2764存储器地址范围为0000H~1FFFH,共计8KB存储容量,而且地址范围是唯一的。第6章80C51单片机的系统扩展6.2数据存储器扩展80C51单片机片内数据存储器RAM只有128B,在应用时若RAM容量不够,就要在片外进行数据存储器RAM的扩展,片外数据存储器RAM可扩展的最大容量为64KB。RMA分为动态存储器(DRAM)和静态存储器(SRAM),DRAM需要定时刷新,一般用在微机中,单片机中不适用,单片机中主要采用SRAM。第6章80C51单片机的系统扩展6.2.1常用数据存储器芯片静态存储器(SRAM)具有存取速度快、使用方便和价格低等优点。但它的缺点是,一旦掉电,内部所有数据信息都会丢失。常用的SRAM有6116(2KB×8)、6264(8KB×8)、62128(16KB×8)、62256(32KB×8)等芯片。常用SRAM芯片管脚和封装如图6-8所示,引脚功能如下。①A0~A15:地址输入线。②D0~D7:双向三态数据总线,有时也用I/O0~I/O7表示。③CE:片选线,低电平有效。6264的26脚(CS)必须接高电平,并且CE为低电平时才选中该芯片。④OE:读选通线,低电平有效。⑤WE:写选通线,低电平有效。⑥VCC:电源线,接+5V电源。⑦NC:空。⑧GND:接地。第6章80C51单片机的系统扩展6.2.2数据存储器扩展实例一、用线选法扩展一片数据存储器SRAM。[例6.4]:在单片机应用系统中需要扩展8KBSRAM。分析:选用静态存储器6264芯片,具体分析方法如下:1、确定需要几根地址线。6264SRAM芯片是8KB×8存储容量,其中8K=8×1024=2^3×2^10=2^13,因此,需要13根地址线,即A0~A12。第6章80C51单片机的系统扩展2、确定三总线。①数据线:6264SRAM的数据线D7~D0直接与80C31的P0.7~P0.0相接。②地址线:6264SRAM的地址线低8位A7~A0通过锁存器74LS373与P0口连接,高7位A8~A12直接与P2口的P2.0~P2