2020/2/121第4章MCS-51系列单片机的扩展§1最小系统与程序存储器的扩展§2数据存储器扩展§3I/O扩展2020/2/122§1最小系统与程序存储器的扩展MCS-51系列单片机虽本身是一个微型计算机,包含了CPU,存储器,I/O接口,定时器,中断,串行口,但由于其功能有限,所以在工作时,还需要进行必要的功能扩展。功能扩展中,最常见的就是存储器扩展,扩展时,外部信号的连接可分三总线形式,见图由于P0是地址、数据复用口,因而对低8位地址需要锁存(373、374等)由于端口带负载能力有限(P08个LSTTL,P1~P3为4个LSTTL),故常加总线驱动器(注意:无锁存功能)常用的有74LS244,74LS245见图2020/2/123§1最小系统与程序存储器的扩展1-1最小系统8031片内无程序存储器,下面对8031扩展2k程序存储器,组成一个最小系统,见图在系统扩展时,通常用到地址锁存器,常用的有74LS373和74LS374等芯片,见图2020/2/124§1最小系统与程序存储器的扩展1-2用多片EPROM扩展程序存储器在设计系统时有时会用到多片EPROM,例如需要8k程序存储器,当只提供2732(4k)时,要用2片2732。再例如,需要超过64k的程序存储器时,一般也用多片实现。扩展多片EPROM的连线方式。a.二片情况,如图用邻近各芯片所用的最高位的一根地址线作片选,其余一样,这种方法最常用在0000H~1FFFH时为低8K,此时P2。5为0,访问第1片。在2000H~3FFFH时为高8K,此时P2。5为1,访问第2片。2020/2/125§1最小系统与程序存储器的扩展1-2用多片EPROM扩展程序存储器b.线选法:在连接多片时,有时用线选法,即用I/O线或控制线作片选(这种方法用线多,不常用)如扩展4片2732,2732有4K,用了12根地址线,故P2口用了P2。0~P2。3,见图由于片选线不是地址译码产生,在选通时要人为控制:即在1片结束访问第2片时,要用软件复位相应端口,否则将出错2020/2/126§1最小系统与程序存储器的扩展1-2用多片EPROM扩展程序存储器c.译码法,用得多如上面的P2。4,P1。5,P1。6,P1。7片选可用P2。4,P2。5地址线,用2-4译码器得到,此时就不必考虑其它问题,可当成1片16KEPROM使用。d.超过64K时,要用控制线作片选,而且应注意在第1片用完后要发出第2片的片选信号2020/2/127§1最小系统与程序存储器的扩展1-3E2PROM和FLASH的扩展2020/2/128§2MCS-51单片机数据存储器扩展背景知识常用静态存贮器21141K*461162K*8271662648K*827646225632K*827256IS61LV5128512K*8IS61LV12816128K*16扩展数据存储器与程序存储器相比,最主要区别是,程序存储器用PSEN控制程序存储器的读写,而数据存储器则用RD、WR信号控制读写。从实现方面,访问程序存储器,1是自动执行程序,2是用MOVC指令,而访问数据存储器则是用MOVX指令。2020/2/129§2MCS-51单片机数据存储器扩展背景知识MCS-51单片机的内部RAM位寻址20H2FH30H7FH特殊功能寄存器SFR80HFFH80字节R0—R700H1FH2020/2/1210§2MCS-51单片机数据存储器扩展背景知识MCS-51单片机的最小系统与引脚回顾2020/2/1211§2MCS-51单片机数据存储器扩展2-1概述数据存储器芯片(RAM)的引脚特征CERD地址线数据线WR需要在单片机引脚基础上,得到地址线、数据线和控制线(CE、RD、WR)。2020/2/1212§2MCS-51单片机数据存储器扩展2-1概述地址总线生成地址锁存时序P0口低8位地址锁存用ALE下降沿锁存P0口上的低8位地址信号,连同P2口的高8位地址,可得到最多16位地址线。2020/2/1213§2MCS-51单片机数据存储器扩展2-1概述地址总线生成对地址锁存器的要求用ALE下降沿锁存P0口的低8位地址信号,意味着锁存器与ALE连接的控制端需满足下面要求:高电平时输出口随输入变化低电平时输出保持不变2020/2/1214§2MCS-51单片机数据存储器扩展2-1概述地址总线生成地址锁存器选择74LS373芯片可满足此要求2020/2/1215§2MCS-51单片机数据存储器扩展2-1概述单片机引脚的三总线形式扩展数据存储器2020/2/1216§2MCS-51单片机数据存储器扩展2-2单片机数据存储器扩展准备工作确定扩展存储器需求:多大容量,地址范围有无特殊要求,数据位数多少?有哪些存储器芯片可供选择,每片的容量如何?用单片还是多片实现?2020/2/1217§2MCS-51单片机数据存储器扩展2-2单片机数据存储器扩展硬件连接框图(单片情况)2020/2/1218§2MCS-51单片机数据存储器扩展2-2单片机数据存储器扩展实例:为MCS-51扩展32k*8的外部数据存储器由容量知道,需用15根地址线:A0—A14数据为8位,可选数据宽度为8bit的存储器。地址范围可设计为:0000H-7FFFH。选用一片静态RAM芯片62256可满足要求2020/2/1219§2MCS-51单片机数据存储器扩展2-2单片机数据存储器扩展实例:为MCS-51扩展32k*8的外部数据存储器2020/2/1220§2数据存储器扩展扩展例子例子中6264(1)和2764(1)容量为8k,地址范围为:P2.5P2.4P2.3…p2.0p0.7p0.6…p0.1p0.00000000001111111即0000H—1FFFH6264(2)和2764(2)容量为8k,地址范围为:P2.5P2.4P2.3…p2.0p0.7p0.6…p0.1p0.01000000011111111即2000H—3FFFH2020/2/1221§2MCS-51单片机数据存储器扩展本节小结:背景知识概述数据存储器芯片(RAM)的引脚特征如何选择地址锁存器单片机引脚的三总线形式单片机数据存储器扩展准备工作硬件连接框图实例2020/2/1222§3I/O扩展3-1多功能芯片的扩展扩展时要用MOVX访问外部RAM的指令,因而会损失外部存储器的扩展空间。*8255A芯片A、B、C三个可编程的8位I/O口,结构如图(40引脚)引脚简介D0~D78位双向数据线,CPU与8255交换数据A0、A1地址线:A1A000读写A口01读写B口10读写C口11写控制字(写入控制寄存器)RD、WR,配合A0、A1,完成读写功能CS片选线,在读写端口及写控制字时,必须有效(为0)RESET复位清除内部存储器,置A、B、C口为输入2020/2/1223§3I/O扩展3-1多功能芯片的扩展*8255A芯片引脚简介PA0~PA7A口(I/O),可为输入,输出或双向PB0~PB7B口(I/O),可为输入,输出,不可双向,(即不能同时作输入、输出口)PC7~PC0C口(I/O)可分为两个4位,用于输入、输出,由于C口高4位归A组控制,低4位归B组控制:它们分别可作为A、B口的状态控制信号。工作方式选择要对A、B、C口进行工作方式选择,要先写入方式控制字,(A0,A1为1)2020/2/1224§3I/O扩展3-1多功能芯片的扩展*8255A芯片方式控制字2020/2/1225§3I/O扩展3-1多功能芯片的扩展*8255A芯片方式0,基本输入/输出方式可根据相应位控制为输入或输出,不用联路信号,输入数据不会锁存,输出被锁存,此时C口的高4位(低4位也可定义为输入/输出)A、B口工作为方式0时,共有16种组合方式D4D3D1D0方式1,选通输入/输出方式当A口(或B口)工作于方式1时,可指定为输入/输出,但同时要用到3根C口的线作连络信号。A口、B口中有一个为方式1时,余下13根可为方式0(入/出)A口、B口同为方式1时,余下2根C口线可为输入/出联线定义固定,不可更改,见图方式1工作时序,分为输入与输出2020/2/1226§3I/O扩展3-1多功能芯片的扩展*8255A芯片方式2,双向传送方式,此时不需再定义其为输入/出,只有A口有方式2,它用到PC3~PC75根线。此时,PC0~PC2及PB可工作于方式0或方式1(PC0~PC2为其控制联络线)方式2用到的连络线与方式1类似,只不过它是双向方式,会同时用到5根。2020/2/1227§3I/O扩展3-1多功能芯片的扩展*8255A芯片方式2对INTE的控制:即对上面所述INTR的开闭,它由C口的相应位控制,是1为允许中断,入PC4入PC2A口(方式1B口(方式1)方式2)出PC6出PC2控制位写入C口,是通过写入控制寄存器(A0、A1为11)置位复位控制字2020/2/12288255A总结1.与单片机的连接与访问方式(MOVX)2.PA\PB\PC三个口及其工作方式3.PC口的联络线情况4.PA\PB的中断使能情况5.方式控制字6.置位\复位控制字7.例子2020/2/1229§3I/O扩展3-1多功能芯片的扩展*8255A芯片例:A口方式2,B口方式1,输入D7D6D5D4D3D2D1D011XXX11XA口PC2~PC4B口B口PC0~PC3方式2无意义被A口用方式1入被B口用上例中A允许中断,B禁止中断PC4、PC6为1PC2为0000010010000110100000100任意PC4任意PC6任意PC22020/2/1230§3I/O扩展3-1多功能芯片的扩展*8255A芯片例:2020/2/1231§3I/O扩展3-1多功能芯片的扩展*8255A芯片访问时A2应为0CS=0R7内容向B口输出A口内容输入至R3MOVR0,#03H;控制字地址MOVA,#91H;控制字MOVX@R0,A;送控制字MOVR0,#01H;送端口B的地址MOVA,R7MOVX@R0,A;数据从B口输出DECR0;R0高为0,选中A口MOVXA,@R0;从A口读数MOVR3,A;数放入R32020/2/1232§3I/O扩展3-2用TTL芯片扩展如果只需I/O扩展,还常常用TTL芯片,它们价格低,使用也方便。用TTL芯片扩展的基本原理是,利用其具有锁存或三态功能。用部分地址线及控制线作片选或方向选通,扩展多个I/O口2020/2/1233§3I/O扩展3-2用TTL芯片扩展*74LS377功能2020/2/1234§3I/O扩展3-2用TTL芯片扩展*用74LS377和74LS244功能扩展I/O口2020/2/1235§3I/O扩展3-2用TTL芯片扩展*用74LS377和74LS244功能扩展I/O口输出:377(1),8Q接G端,地址为7FH377(2),7Q接G端,地址为BFH输入:244(1),1Y接G端,地址为FEH244(2),2Y接G端,地址为FDH用存储器写指令用存储器读指令2020/2/1236MCS-51扩展总线返回2020/2/1237244和245图返回2020/2/1238最小系统返回2020/2/1239373和374图返回2020/2/1240二片EPROM扩展返回2020/2/1241数据存储器扩展返回2020/2/12428255结构返回2020/2/12438255C口引脚分配返回2020/2/1244方式1工作时序返回2020/2/1245方式1工作时序返回