资源描述
在MCS-51单片机的实际应用中,由于片内资源有限,常需要对其进行系统扩展。51单片机具有可供扩展的外部地址总线和数据总线,可扩展64KB的外部程序存储器、64KB的外部数据存储器,扩展外部I/O接口电路占用外部数据存储器地址空间。本章内容:u外部程序存储器的扩展u外部数据存储器的扩展u外部接口电路的扩展(包括显示器、键盘、A/D 以及D/A等扩展电路)5.1 概述 u系统扩展概念 MCS-51单片机构成的最小系统仅适于一些较简单的应用场合,当应用系统较复杂时,单片机所具有的功能部件就不能满足应用系统的要求,这就需要在单片机片外连接一些其他功能的外围芯片来满足系统要求,使得有关功能得以扩充,这就是系统扩展(即系统资源的扩充)。u扩展分类 系统扩展按外围芯片功能分为:存 储器扩展、输入/输出扩展、A/D转换器和D/A转 换器扩展、键盘和显示电路的扩展等。按系统总 线的连接方式分为:并行扩展法和串行扩展法。AT89S51单片机的系统扩展结构u系统扩展需要解决的问题 单片机与外围芯片 的接口电路连接(即地址总线、数据总线、控制总线的连接)与编程。知识回顾:接口单片机与外设之间在数据传递方面的联系;每连一个外设,就需要1个I/O接口,1个接口有不止1个端口。总线总线是单片机应用系统中,各部件之间传输信息的通路,为CPU和其他部件之间提供数据、地址以及控制信息。按总线所在位置可分:内部总线和外部总线;前者是指CPU系统内部各部件之间的通路,后者指CPU系统和其外围单元之间的通路,通常所说总线是指外部总线。按通路上传输的信息可分:数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。5.1.1 总线1.数据总线 数据总线(DB)用于单片机与存储器之间或单片机与I/O端口之间传输数据。数据总线的位数与单片机处理的字长一致,如8051单片机是8位字长,数据总线的位数也是8位。从结构上来说数据总线是双向的,即数据既可以从单片机送到I/O端口,也可以从I/O端口送到单片机。2.地址总线 地址总线AB用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。地址总线的位数决定了单片机可扩展存储容量的大小。如8051单片机地址总线为16位,其最大可扩展存储容量为216=64K字节。地址总线是单向的,因地址信息总是由CPU发出的。3.控制总线 控制总线用来传输控制信号,其中包括CPU送往外围单元的控制信号,如读信号、写信号和中断响应信号等;还包括外围单元发给送给CPU的信号,如时钟信号、中断请求信号以及准备就绪信号等。单片机扩展系统采用总线结构方式。按系统总线的连接方式分为:并行扩展法和串行扩展法。u并行扩展法 利用单片机提供的三总线(AB、DB、CB)进行扩展。51单片机并没有专门的对外地址总线和数据总线,由单片机的P0和P2端口提供。u串行扩展法 由于集成电路设计、工艺和结构的发展,串行总线得到很快的发展,其中SPI三线总线和I2C双线总线等已获取广泛应用,现在常利用它们进行系统扩展。5.2 系统总线扩展5.2.1 并行总线扩展 MCS-51系列总线型总线型单片机的并行总线扩展法通常采用三总线结构:地址总线(AB)、数据总线(DB)和控制总线(CB)。系统扩展中,外部芯片通过这三组总线与单片机连接。由P0口做地址/数据复用口;P2口做地址线的高八位;P3口的RD、WR加上控制线EA、ALE、PSEN等组成控制总线。P2.0P2.7 ALE P0.0P0.78051PSENRDWR地址地址锁存器锁存器数据总线地址总线控制总线A8A15A0A7D0D7D0D7单片机三总线结构图单片机三总线结构图u地址总线(AB)51单片机的16位地址总线可寻址范围64KB,其中高8位地址A8A15由P2口提供,低8位地址A0A7由P0口提供,另P0口又作为8位双向数据总线(分时复用),因此系统扩展时须将P0口先输出的低8位地址锁存起来,其与P2口输出的高8位地址共同组成16位地址,然后通过P0口,对16位地址所指向的片外RAM(ROM)的存储单元进行读/写(读)操作。u地址总线(AB)P0口输出的低8位地址一般采用74LS373一类的锁存器或8D触发器进行锁存,而P2口具有输出锁存功能,无需外加锁存器。电路上将单片机提供的地址锁存信号ALE与的锁存信号控制端连接。在访问外部存储器时,由地址锁存信号在访问外部存储器时,由地址锁存信号ALEALE的下降沿的下降沿将P0口输出的地址(A0A7)锁于锁存器输出端,此后P0口上出现数据,这样就实现了低8位地址与8位双向数据线的分离。实际应用系统中,高位地址实际应用系统中,高位地址线并不固定为线并不固定为8 8位,需要用几位就从位,需要用几位就从P2P2口中引出几条口口中引出几条口线。线。u数据总线(DB)数据总线是由P0口提供的,用D0D7表示。P0为三态双向口,系统扩展时单片机与外部扩展芯片之间的数据交换基本是通过P0口传送的。P0口在实际应用时分时复用为地址/数据线,先把低8位地址送锁存器暂存,由地址锁存器给外部提供低8位地址,随后把P0口线作为数据线使用。在RD、WR(PSEN)有效时,P0口上出现数据(指令)信息。数据总线(DB)单片机应用系统中通常是多个扩展的外围芯片都并联在数据线上,单片机与外围芯片进行数据交换时,同一时刻有且仅有一个数据传送通道是有效的,即单片机仅与扩展芯片中的一个进行数据交换,哪个芯片被选中则是由地址线控制各个芯片的片选信号和控制信号来共同决定的。u控制总线(CB)系统扩展时,外部芯片的选通是由控制总线和片外选通信号共同决定的。一般,51单片机的控制总线有12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。实际应用时常用控制信号如下:ALE-地址锁存信号,锁存P0口输出的低8位地址。PSEN-片外程序存储器的读选通信号。EA-片内、外程序存储器的选择信号。RD和WR-片外数据存储器和I/O端口的读、写选通信 号。执行MOVX指令时,这两个信号分别自动 有效。v并行总线扩展的主要问题是总线连接电路设计、器件的选择以及器件内部的寻址等。v并行总线扩展时,其所有的外围扩展设备的并行总线引脚都连到相同的数据总线(DB)、地址总线(AB)以及公共的控制总线RD、WR上。其中数据总线为三态口,在不传送数据时为高阻态。总线分时对不同的外设进行数据传送。v总线连接方式的重点在于外围设备片选信号的产生。5.2.2 串行总线扩展 串行总线是单片机系统扩展的另一种方法,它利用三线总线和双线总线进行系统扩展,即外围扩展芯片是通过三条或两条总线与单片机连接(而不是像并行扩展那样需要数据线、地址线和控制线),数据交换采用时钟时序与数据线配合的方式进行,对扩展的功能芯片采用地址码识别。位地址线位地址线,“片选片选”都是使用都是使用高位地址线高位地址线。实际上,。实际上,1616条地条地址线中的高、低位地址线的数目并不固定,只是习惯上把用址线中的高、低位地址线的数目并不固定,只是习惯上把用于于“单元选择单元选择”的地址线,都称为低位地址线,其余的为的地址线,都称为低位地址线,其余的为高位地址线。高位地址线。常用的存储器地址空间常用的存储器地址空间分配方法有分配方法有两种两种:线性选择法线性选择法(简称线选法)和(简称线选法)和地址译码法地址译码法(简称译码法),下面介绍。(简称译码法),下面介绍。1 1线选法线选法 是直接利用系统的是直接利用系统的某一高位地址线某一高位地址线作为存储器芯片(或作为存储器芯片(或I/OI/O接口芯片)的接口芯片)的“片选片选”控制信号。为此,只需要把用到控制信号。为此,只需要把用到的的高位地址线与存储器芯片的高位地址线与存储器芯片的“片选片选”端直接连接端直接连接即可。即可。v 线选法优点线选法优点是电路简单,不需要另外增加地址译码器硬是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。件电路,体积小,成本低。缺点缺点是可寻址的是可寻址的芯片数目受到限芯片数目受到限制制。另外,。另外,地址空间不连续地址空间不连续,每个存储单元的地址不唯一,每个存储单元的地址不唯一,这会给程序设计带来不便,只这会给程序设计带来不便,只适用于外扩芯片数目不多的单适用于外扩芯片数目不多的单片机系统的存储器扩展片机系统的存储器扩展。v2 2译码法译码法v 使用译码器对使用译码器对AT89S51AT89S51单片机的单片机的高位地址进行译码高位地址进行译码,译码译码输出输出作为存储器芯片的作为存储器芯片的片选信号片选信号。这种方法能够。这种方法能够有效地利用有效地利用存储器空间,存储器空间,适用于适用于多芯片的存储器扩展多芯片的存储器扩展。常用的译码器芯常用的译码器芯片片有有74LS13874LS138(3-83-8译码器)、译码器)、74LS13974LS139(双(双2-42-4译码器)和译码器)和74LS15474LS154(4-164-16译码器)。译码器)。v若全部高位地址线都参加译码,称若全部高位地址线都参加译码,称全译码全译码;仅部分高位地;仅部分高位地址线参加译码,称址线参加译码,称部分译码部分译码。部分译码存在着部分存储器地。部分译码存在着部分存储器地址空间相重叠的情况。址空间相重叠的情况。v下面介绍下面介绍常用的译码器芯片常用的译码器芯片。v(1)74LS138v3-8译码器,有译码器,有3个数据输入端个数据输入端,经,经译码产生译码产生8种状态种状态。引。引脚如脚如图图8-3,真值表如,真值表如表表8-1。由表。由表8-1见,当译码器的输入为见,当译码器的输入为某一固定编码时,其某一固定编码时,其输出仅有一个固定的引脚输出为低电平输出仅有一个固定的引脚输出为低电平,其余的为高电平其余的为高电平。输出为低电平的引脚就作为某一存储器芯。输出为低电平的引脚就作为某一存储器芯片的片选信号。片的片选信号。v(2)74LS139v双双2-4译码器译码器。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚如图8-4,真值表如表8-2(只给出其中的一组)。v图8-3 74LS138引脚图 图8-4 74LS139引脚图 5.2.3 编制技术 编址是系统扩展的一个核心问题,编址就是通过对地址总线进行组合给外部I/O设备、存储器单元以及外部扩展的其他外围功能等分配一个合适地址,每个地址和设备、存储单元都是一一对应。编址技术有两种:u片选法 寻址到存储单元或外部I/O设备单元所在 的芯片。u字选法 通过芯片本身所具有的地址线进行译码 以确定唯一的存储单元或I/O口。(由芯 片内部集成的译码电路确定)AT89S51AT89S51发出的地址码用于选择某个存储器单元,外扩多发出的地址码用于选择某个存储器单元,外扩多片存储器芯片中,单片机必须进行两种选择:一是选中该存片存储器芯片中,单片机必须进行两种选择:一是选中该存储器芯片,这称为储器芯片,这称为“片选片选”,未被选中的芯片不能被访问。,未被选中的芯片不能被访问。二是在二是在“片选片选”的基础上再根据单片机发出的地址码来对的基础上再根据单片机发出的地址码来对“选中选中”芯片的某一单元进行访问,即芯片的某一单元进行访问,即“单元选择单元选择”。为实现片选,存储器芯片都有片选引脚。同时也都有多条为实现片选,存储器芯片都有片选引脚。同时也都有多条地址线引脚,以便进行单元选择。注意,地址线引脚,以便进行单元选择。注意,“片选片选”和和“单元单元选择选择”都是单片机通过地址线一次发出的地址信号来完成选都是单片机通过地址线一次发出的地址信号来完成选择。择。通常把单片机系统的地址线笼统地分为低位地址线和高通常把单片机系统的地址线笼统地分为低位地址线和高 “片选”法能保证每次读或写,CPU只选中某一存储器芯片或I/O接口。常用的有线选法和译码法。1、线选法 线选法,是直接以系统的最高几位空余地址线中的一条作为存储器芯片或I/O接口芯片的片选通控制信号。采用线选法,一般用高位地址线作片选信号,用所需的低位地址线进行片外存储单元、I/O端口寻址。线选法编址简单,无需另加译码电路,成本低;但也会浪费大量的存储空间,因此只适用于存储量较小的小规模单片机系统。2、译码法 译码法,使用地址译码器译码,仍由低位地址线作片外扩展芯片内单元或端口的寻址,而高位地址线用于译码器的输入,以译码器输出作为系统扩展出的各芯片的片选通信号。译码电路可采用一般的门电路译码器或译码器芯片。常用的译码器芯片有:74LS138(3-8译码器)和74LS154(4-16译码器)等。译码法分为完全译码和部分译码:u完全译码 地址译码器使用了全部地址线,地址与存储单元一一对应,即一个存储单元只占用一个唯一的地址。u部分译码 地址译码器仅使用部分地址线,地址和存储单元不是一一对应,而是一个存储单元占用几个地址 部分译码 部分译码会浪费大量存储单元,一条地址线不接,一个单元占用2(21)个地址;2条地址线不接,一个单元占用4(22)个地址;3条地址线不接,一个单元占用8(23)个地址;以此类推。在设计地址译码器电路时,采用地址译码关系图会很方便。地址译码关系图是一种用符号表示地址译码的示意图。译码关系图示例如下图:A15A15A14A14A13A13A12A12A11A11A10A10A9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0.0 01 10 00 0 x xx xx xx xx xx xx xx xx xx xx x 上页表中“x”表示片内译码,其地址变化范围为全“0”到全“1”;标“.”的位为空闲,不接任何地址线;只要有1个或以上的“.”,即为部分译码。为“0”或“1”均表示有效地址。那么从译码表中可以获取如下信息:本系统采用全译码还是部分译码;系统所采用的片内译码线和片外译码线各占用的地址线条数;系统所占用的全部地址范围。A15A15A14A14A13A13A12A12A11A11A10A10A9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0.0 01 10 00 0 x xx xx xx xx xx xx xx xx xx xx x0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 11 0 1 0 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1地址分析:A15为”.“,表示部分译码,一个单元占用2个地址;片内译码线11条,片外译码线4条;地址范围如下:存储器是用来存放程序代码或常数表格的。MCS-51系列单片机片内已集成了4KB程序存储器和128B的数据存储器。若容量不够的话,用户可以在片外扩展,最大可扩展范围达到64KB。用户可根据系统设计要求选择存储器芯片的型号和数量,再选用若干条地址线接至存储器芯片的地址输入线,其余的地址线(通常是P2口高位地址)可用来产生外部存储器的片选信号CE。5.3 存储器的扩展 5.3.1 5.3.1 存储器扩展概述存储器扩展概述 5.3.2 程序存储器的扩展 程序存储器为只读型存储器,内容不易丢失,根据编程方式不同,分以下几种:u掩膜ROM 制造过程中编程,以掩膜工艺实现,因 此称为掩膜ROM。这种芯片存储结构简单,集成度高,一旦写入不能修改,但由于掩膜工艺成本较高,因此只适合于大批量生产。u可编程ROM(PROM)芯片出厂时没有任何程序信息,用独立编程器写入。但PROM只能写一次,写入内容后,就不能再修改。uEPROM 用紫外线擦除,用电信号编程。在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息。使用编程器可将调试完毕的程序写入。uE2PROM(EEPROM)一种用电信号编程,也用电信号擦除的ROM芯片。对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入速度慢一些,但断电后仍能保存信息。uFlash ROM 又称闪烁存储器(简称闪存),是电擦除型只读存储器。特点是可快速在线修改其存储单元中的数据,改写次数可达1万次,其读写速度很快,存取时间可达70ns,而成本比E2PROM低得多,大有取代E2PROM的趋势。目前许多公司生产的8051内核的单片机,在芯片内部大多集成了数量不等的Flash ROM。如:AT89S5x,片内有不同容量的Flash ROM。在片内的Flash ROM满足要求下,扩展外部程序存储器可省去。v单片机外部扩展常用程序存储器芯片为EPROM,其掉电后信息不会丢失,且只有在紫外线的照射下,存储器的单元信息才可擦除。v用作扩展的EPROM主要是27系列,如2716、2732、2764、27128、27256等,其中高位数字27表示该芯片是EPROM,低位数字表明存储容量,如2716表示16K个存储位,亦即字节容量为2K的EPROM。v常用的还有EEPROM,即28系列,如2816、2864等,型号含义同上。1、程序存储器扩展时的连接方式P2A15A8A7A0D7D0P0ALE地址锁存器PSENOEEAMCU程序存储器程序存储器与单片机的一般连接方式程序存储器与单片机的一般连接方式u数据总线 单片机P0口与存储器的数据输出口相连u地址总线 同时P0口经锁存器连至存储器的低8位地 址线(A7A0),P2口接存储器的高8位 地址线(A15A8),这意味着扩展存储 器最大可达64KB;若只用部分高位地址 ,则存储器容量小于64KB.u控制总线 EA为片外ROM读选择信号,此引脚接地时 单片机的所有片内程序存储器无效,只能 访问片外程序存储器;PSEN是单片机外部程序存储器读选通信号 ,与存储器的OE端(读允许)相连。2、扩展片外程序存储器的硬件电路 在单片机的扩展系统中,常用到锁存器锁存P0口的地址,常用地址锁存器有:74LS373、74HC573;用EPROM作为片外ROM,常用的EPROM扩展芯片有:2716(2KX8)、2732(4KX8)、2764(8KX8)27128(16KX8)、27256(32KX8)等。2764引脚功能:A0A12:13根地址输入线D0D7:三态数据线CE:片选线,低电平有效OE:读出选通线,低电平有效PGM:编程脉冲输入VPP:编程电压端VCC:+5V电源GND:接地端NC:空端未用V VPPPPA12A12A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0D0D0D1D1D2D2GNDGNDVccVccPGMPGMN.CN.CA8A8A9A9A11A11OEOEA10A10CECED7D7D6D6D5D5D4D4D3D327642764 8K EPROM 8K EPROMD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0G G74LS37374LS373GNDGND+5V+5VE EQ7Q7Q6Q6Q5Q5Q4Q4Q3Q3Q2Q2Q1Q1Q0Q074LS37374LS373引脚含义:引脚含义:G:使能(输入选通端)E:输出允许D7D0:数据输入端Q7Q0:数据输出端74LS37374LS373的功能:的功能:当E=0,G=1时,输出Q=输入D(直通);当E=0,G=0时,输出Q端不变(锁存)当E=1,输出高阻态例:给8051单片机的外围扩展一片8KX8位的片外程序存储器,画出其余单片机相连的地址线、数据线和控制线。程序ROM扩展电路图单片机单片机 8051P2.0:.A8.ALEPSEN74LS373G2764A7.A0D0D0.D7D7P0.0P0.0 :P0.7P0.7OECEQ0.Q7D0.D7A12P2.4 8051 8051 27642764数据数据总线的连接:P0.0-P0.7(数据总线)-D0-D7地址地址总线的连接:P0.0-P0.7(地址总线低8位)-A0-A7P2.0-P2.4(地址总线高8位中的5位)-A8-A12P2.5-P2.7 -可作为片选信号控制控制总线的连接:PSEN(程序存储器允许,即读指令)-OE ALE(地址锁存允许)-接373的使能端G 经过锁存器经过锁存器373373 硬件电路连接:从外部ROM取指令时序图ALEALEPSENPSEN地址地址A8A15地址地址A8A15A0A7A0A7指令码指令码指令码指令码一个机器周期P2P2P0P0存储器地址分析-单片机输出地址时,指向存储器中的哪一单元。P P2.7 2.7 P P2.62.6 P P2.52.5 P P2.42.4 P P2.3 2.3 P P2.2 2.2 P P2.1 2.1 P P2.02.0 P P0.70.7P P0.00.0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 当单片机输出地址当单片机输出地址0000H0000H1FFFH1FFFH时,选中时,选中27642764的的0 08K-18K-1号单元,号单元,即按照上面电路扩展存储器的地址范围是即按照上面电路扩展存储器的地址范围是0000H0000H1FFFH1FFFH(共(共8K8K字节)字节)。字选字选CE片选信号由它们产生课堂练习课本121页【例5.1】请同学们根据该例要求,分别采用线选法和译码法选通EPROM(16KX8B),绘出扩展EPROM的电路图,并写出地址范围。A15A15A14A14A13A13A12A12A11A11A10A10A9A9A8A8A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A01 1.x xx xx xx xx xx xx xx xx xx xx xx xx xx x0 0.x xx xx xx xx xx xx xx xx xx xx xx xx xx x.1 1x xx xx xx xx xx xx xx xx xx xx xx xx xx x.0 0 x x x xx xx xx xx xx xx xx xx xx xx xx xx x 27C128是16K的,即214个存储单元,占用14根地址线A0A13;8000HBFFFH(A14=“0”)-第一行地址范围C000HFFFFH(A14=“1”)-第一行地址范围5.3.3 数据存储器的扩展.扩展时所用芯片扩展时所用芯片.数据存储器的作用数据存储器的作用.扩展电路连接扩展电路连接.存储器地址分析存储器地址分析数据存储器数据存储器的扩展的扩展1、数据存储器概述 数据存储器即随机存取存储器,主要存放可随时修改的数据信息,即可进行读操作也可进行写操作,断电后所存信息立即消失。RAM按半导体工艺不同分为MOS型和双极型两种,而MOS型集成度高、功耗低、价格便宜但速度较慢,双极型特点正好相反。单片机扩展系统常用MOS型,电平与TTL兼容。扩展时所用芯片一般用静态读写型存储器芯SRAM,也可以用E2PROM、FLASH芯片等。6264引脚功能:6264-8K SRAM6264-8K SRAMN.CA12A7A6A5A4A3A2A1A0D0D1D2GNDVccWECSA8A9A11OEA10CED7D6D5D4D362642、静态RAMA A0 0AA1212地址线地址线I/OI/O0 0I/OI/O7 7双向数据线双向数据线CE1CE1片选线片选线1 1CE2CE2片选线片选线2 2WEWE写允许线写允许线OEOE读允许线读允许线?系统扩展时,地址线、数据线分别与单片机的地址线和数据线连接;?写允许信号线WE与单片机的WR信号相连;?读允许信号线OE与单片机的RD信号相连;?6264有2个片选信号CE1和CE2,只有当CE1=0,CE21=1时,芯片被选中。硬件连接:3、数据存储器扩展 数据存储器的数据线、地址线分别与单片机的数据 线、地址线连接;数据存储器的写允许信号线WE与单片机的WR信号 相连;数据存储器的读允许信号线OE与单片机的RD信号 相连;数据存储器的扩展与程序存储器的扩展类似,不同之处主要在于控制信号的接法不同:J 存储器芯片为可读可写的静态RAM芯片,有读写控制引脚OE和WE。J单片机输出的对数据存储器的读写控制信号分别是RD(而不再是读程序存储器时的PSEN)和WR,且直接与数据存储器的OE端和WE端相连。扩展数据存储器的连接图A86264P2.0:.ALEALE74LS74LS373373GA7.A0P0P0口口 Q0Q0.Q7Q7D0D0.D7D7A12P2.4OEOED7D0D7D0P2.7P2.7P2.6P2.6RDRDWRWRCE1CE1CE2CE2OEOEWEWE数据总线的连接:数据总线的连接:P0.0P0.7P0.0P0.7(数据总线)(数据总线)-D0D7 -D0D7 地址总线的连接:地址总线的连接:P0.0P0.7P0.0P0.7(地址总线低(地址总线低8 8位)位)-A0A7-A0A7P2.0P2.4P2.0P2.4(地址总线高(地址总线高8 8位中的位中的5 5位位)-A8A12)-A8A12P2.7(P2.7(地址总线高地址总线高8 8位中最高位)位中最高位)-CE1-CE1P2.6(P2.6(地址总线高地址总线高8 8位中次高位)位中次高位)-CE2-CE2P2.5P2.5空闲空闲控制总线的连接:控制总线的连接:RDRD(读外部数据)(读外部数据)-OE-OE WRWR(写外部数据)(写外部数据)-WE-WE ALEALE(地址锁存允许)(地址锁存允许)-接接373373的使能端的使能端G G 经过373 8031803162646264存储器地址分析:存储器地址分析:单片机输出地址时,会单片机输出地址时,会指向存储器中哪一单元。指向存储器中哪一单元。P2.7 P2.6 P2.5P2.7 P2.6 P2.5 P2.4 P2.4 P2.0 P2.0 P0.7P0.7 P0.0 P0.0 CE1 CE2 X A12 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 1 X 0 0 0 0 0 0 0 0 0 0 0 1 X 1 1 1 1 1 1 1 1 1 1扩展的一片6264其所占用的地址如下:第一组:4000H5FFFH(A13=0,A14=0,A15=0)第二组:6000H7FFFH(A13=1,A14=0,A15=0)一个机器周期ALEPSENP2P0地址A8A15A0A7三态三态数据D0D7入 读外部数据RAM时序图RD5.3.4 全地址范围的存储器最大扩展系统 全地址范围的存储器最大扩展系统的构成方法:系统的片外ROM和RAM的地址空间各为64KB。若采用2764和6264芯片,则各需8片才能构成全部地址空间。(电路连接图见P123页,图5.8)u芯片的选通采用3-8译码器74LS138进行译码选片,片外地址线A15、A14、A13,分别接至74LS138的C、B、A端,其8路译码输出分别接8个2764和8个6264的片选CE;u8片2764的OE全部接至PSEN;u8片6264的OE端与WE端分别接至8031的RD端和WR端;u地址的低八位由锁存器74LS373提供;u高5位由P2口的P2.4P2.0提供,高3位P2.7P2.5接至74LS138的C、B、A端;问题:2764和6264的地址一样,会被同时选中,它们 发生冲突吗?计算机扩展系统中有两种数据传送操作:u CPU与扩展存储器之间的数据读/写操作;扩展存储器与CPU之间连接简单,仅将地址线、数据线和控制线读或写的选通信号线与系统连接即可。u CPU和扩展外部设备之间的数据传输;扩展外设就比较复杂,因为存在高速CPU与低速外设的连接,以及CPU与外设数据传送距离等因素,因此在设计应用系统时,要考虑在CPU和外设之间提供接口电路,通过接口电路对CPU与外设之间的数据传送进行协调。5.4 I/O的扩展与应用I/O接口的功能是:1、对单片机输出的数据锁存 锁存数据线上瞬间出现的数据,以解决单片机与 I/O设备的速度协调问题。2、对输入设备的三态缓冲 外设传送数据时要占用总线,不传送数据时必须 对总线呈高阻状态。利用I/O接口的三态缓冲功 能,可以实现I/O设备与数据总线的隔离,便于其 它设备的总线挂接。3、信号转换 信号类型(数字与模拟、电流与电压)、信号电平(高与低、正与负)、信号格式(并行与串行)等的转换。4、时序协调 不同的I/O设备定时与控制逻辑是不同的,并与CPU的时序往往是不一致的,这就需要I/O接口进行时序的协调。并行口扩展常用的方法:I 利用TTL、CMOS集成电路进行并行口简单扩展I 利用可编程并行接口芯片进行扩展I 利用单片机串口扩展并行接口 简单的I/O口扩展可采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过单片机本身的I/O接口来实现扩展。具有锁存或数据缓冲功能的一些TTL或CMOS电路,该类芯片没有地址线和读/写控制线,但具有数据线和时钟端,因此其选通端或时钟端应与(单片机)地址线和控制线共同构成的逻辑组合选通。输出口-利用锁存器扩展 输入口-利用缓冲器扩展5.4.1 用TTL芯片扩展I/O1、用74LS373扩展8位并行输入口 设计系统时,对外部被控设备的某些信号进行采集时,若输入数据信号为暂态,则要求CPU读入接口芯片具有锁存功能,可选择具有选通锁存功能的74LS373作接口。下图为利用74LS373与80C51接口构成一个8位并行输入接口电路图。该电路使用线选法实现片选信号选择:当P2.4=0和RD为低电平时,在选通脉冲的有效电平期间,锁存器将数据送上数据线并传给单片机的P0口。P0P2.4RD1Q7Q0D7D0OEG74LS373INT080C51输入选通脉冲用74LS373扩展8位并行输入口的电路图MOV DPTR,#FEFFH ;P2.4=0MOVX A,DPTR ;RD=02、用74LS244扩展8位并行输入口 对于外部被控设备的某些信号进行采集时,若输入信号为常态,则要求接口芯片具有三态缓冲功能,可以选择具有三态缓冲功能的芯片74LS244做接口。下图为利用74LS244与80C51构成两个8位并行输入接口的电路图:该电路也采用线选法,利用P2.6和RD组成或门来选择两个芯片之一的数据输入到单片机的P0口。用74LS244扩展8位并行输入接口的电路图P011Q7Q01G2GD7D074LS244(0)Q7Q01G2GD7D074LS244(1)1P2.6RD输入输入80C513、用74LS377扩展8位并行输出口 系统设计中,当外部被控设备所需要的输出信号较多,而系统本身的I/O接口有限时,需要进行I/O口的扩展,同时输出信号作为控制信号需要保持一定的时间,因此还必须考虑输出信号的锁存,所以采用了带有输入允许端的8D触发器,且将具有锁存功能的芯片74LS377作为输出口。下图电路采用线选法,利用P2.7来选择2个74LS377芯片,P0口把要输出的数据都送到2个锁存器上,但哪个锁存器输出则由P2.7的状态决定。P0D7D0G74LS377(0)D7D0G74LS377(1)1P2.7WRCLKCLK80C51输出输出用74LS377扩展8位并行输出接口的电路图4、I/O口的扩展示例【例5.2】试以87C51为例设计一应用系统,P1、P3口已做它用,要求能将8个开关量都读入,并能将不同的开关动作信号用发光二极管只是出来。分析:由于开关信号是输入信号,控制发光二极管的是输出信号,系统需要8个输出口和8个输入口,因此如下图,选用74LS244作为扩展输入,74LS273作为扩展输出构成简单的I/O口扩展电路。图5.13 简单I/O口的扩展电路图&P0口作为双向8位数据线,既能从74LS244(RD)输入数据,又能向74LS273(WR)输出数据。&I/O口的地址 P2.0=0,74LS244和74LS273同时被选通,地址:FEFFH或0000H;虽使用同一地址,但2者分别由WR和RD控制,而二者不可能同时有效,所以逻辑上二者不会同时被单片机执行,不会发生冲突;&编程 ST:MOV DPTR,#0FEFFH MOVX A,DPTR ;检测按键,从244读入 MOVX DPTR,A ;向273输出,驱动LED SJMP ST1、可编程的接口芯片 可编程的接口芯片是指其功能可由微处理机的命令来控制的接口芯片,根据编程的不同控制字,可使接口芯片完成不同的接口功能。可与MCS-51系列单片机进行接口连接的功能芯片很多,常用外围芯片如下表,其中8255和8155是2个51单片机常用的典型接口芯片。后面会以8155为例介绍单片机与可编程芯片的连接、扩展原理和使用过程。5.4.2 5.4.2 可编程芯片扩展可编程芯片扩展I/OI/O口口型号芯片功能8155/8156256X8位RAM、14位定时器、2个可编程I/O口、1个6位可编程I/O口82121个8位I/O接口8251A可编程通信接口82533个16位可编程定时器8255A3个8位可编程I/O口8279可编程键盘/显示接口(64键)83552KX8位ROM,2个通用8位I/O接口8755A2KX8位EPROM,2个通用8位I/O接口表5.1 常用的可编程芯片2、可编程芯片8155 8155是一种通用多功能可编程RAM/IO扩展集成电路。可编程是指其功能可由计算机的指令来改变的。81558155256256字节字节RAMRAM三个可编程并行口三个可编程并行口PAPA口,口,8 8位位PBPB口,口,8 8位位PCPC口,口,6 6位位1414位二进制减法计数器位二进制减法计数器 8155常用作单片机的外部扩展接口,与键盘、显示器等外围设备连接。8155芯片的内部结构图(1)8155的结构及引脚256B256B静态静态RAMRAM A A 定时器定时器B B C C 口APA0PA7口BPB0PB7PC0PC5口CIO/MAD0AD7CEALERDWRRESET定时器输入定时器输出接单片机接外设接外设接外设命令命令/状态状态寄存器寄存器 从8155的内部结构图可知,其内部功能模块如下:u256B SRAM,存取时间400nsu有3个可编程的通用I/O口,分别是A口、B口和C口。其中A、B口是8位口,C口为6位口(可用作控制和状态口),可选择4种不同的工作方式。u内含一个14位的可编程定时/计数器。u内含一个地址公用、物理空间独立的命令/状态寄存器。u内部有地址锁存器、地址/数据多路转换开关。8155引脚功能:PC3PC4 PC5 IO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMER INRESETTIMER OUTuPA0-PA7PA0-PA7:端口:端口A A的的I/OI/O线线(8 8位,接外设)位,接外设)uPB0-PB7PB0-PB7:端口端口B B的的I/OI/O线线(8 8位,接外设)位,接外设)uPC0-PC5PC0-PC5:端口:端口C C的的I/OI/O线线(6 6位,接外设)位,接外设)uVCC:+5VVCC:+5V电源电源uGND:GND:接地接地uCE:CE:片选信号线片选信号线,低电,低电平有效。由平有效。由ALEALE信号的下信号的下降沿锁存到降沿锁存到81558155内部锁存内部锁存器。器。uAD0-AD7AD0-AD7:三态地址:三态地址/数据复用线数据复用线,8位,是低8位地址与数据复用引脚。地址是8155片内RAM单元地址或是I/O端口地址。AD0-AD7上的地址由ALE的下降沿锁存至8155片内地址锁存器,即由ALE信号来区分AD0-AD7上出现的是地址信息还是数据信息。(一般接P0口)uALE:ALE:地址锁存允许信
展开阅读全文