1、1,4.1 单片机扩展概述 4.2 存储器扩展4.3 并行I/O口扩展,第4章 单片机系统的扩展,第 章 汇编语言程序设计,2,4.1 单片机扩展概述,使单片机能运行的最少器件构成的系统,就是最小系统。,无ROM芯片:8031 必须扩展ROM; 有ROM芯片:8051等,不必扩展ROM。,一、单片机最小系统,8051、8751单片机本身就是一个最简单的最小应用系统,3,ROM,8031,锁存器,4,二、扩展使用的三总线,地址总线:P0低8位P2高8位 数据总线:P0 控制总线:RD、WR、 ALE、 PSEN(读、 写、 地址锁存允许、 外程序存储器读选通),5,写外部数据RAM的时序,高电平
2、 锁存器打开,低电平 地址锁存,复习,6,4-2 存储器扩展,一、MCS-51总线扩展结构 1、单片机系统结构,存储器和CPU之间也是有接口问题的,但它的速度也较快、也为并行、以及使用的TTL电平均与CPU相匹配或相当,且功能单一就是存储数据。故CPU与存储器的借口问题比较简单,核心问题就是:存储器的编址、片选、选通三大问题。,7,常见接口插槽,PS2鼠标,PS2键盘,千兆网,10/100M网卡,USB,并行口,MIDI/游戏接口,显示器接口,1394,1394a,麦克风/音箱/线入接口,串行口,8,单片机的三总线结构,2、单片机的三总线结构,9,维持阻塞触发器一般是在CP脉冲的上升沿接收输入
3、控制信号并改变其状态,其它时间均处于保持状态。无一次变化问题。,主从JK、D触发器:存在着一次变化问题,边沿、维持阻塞触发器:不存在一次变化问题,保持状态,保持状态,构成锁存器,构成寄存器,复习,10,1)引脚功能:D7D0: 8位并行数据输入端Q7Q0: 8位并行数据输出端G锁存端: 为1时,D端数据 = Q端数据;下降沿锁存;为0时,Q端数据保持。片选端:低电平有效。,3、地址锁存器-74LS373 (8D三态同相锁存器),锁存器输出端平时总随输入端变化而变化,只有当锁存信号(上升沿或下降沿)到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化。,锁存器:由若干个钟控D触发器构成
4、的一次能存储多位二进制代码的时序逻辑电路,叫锁存器。,11,2) 地址锁存器的原理(74LS373),下降沿触发,锁存器也称为透明锁存器,指的是不锁存时输出随输入变化,输出对于输入是透明的 。,12,3)地址锁存器芯片,74LS373与74LS573只是引脚布置的不同。 74LS273的11脚G逻辑(上升沿触发)与以上相反,且不带三态门。,13,半导体 存储器,只读存储器(ROM),随机存取存储器 (RAM),静态RAM(SRAM) 动态RAM(DRAM) 集成动态RAM(IRAM) 非易失RAM(NVRAM),掩膜式ROM 一次性可编程ROM(PROM) 紫外线擦除可编程ROM(EPROM)
5、 电擦除可编程ROM(EEPROM),半导体存储器的分类,存储器除采用磁、光原理的辅存外,其它存储器主要都是采用半导体存储器.,14,1 固定ROM,固定ROM所存储的信息是由生产厂在制造芯片时采用掩模工艺固化在芯片中的,使用者只能读取数据而不能改变芯片中数据内容。 它又称为掩模ROM。 图所示为二极管掩模ROM的结构。,一、 只读存储器ROM,15,1 二极管掩膜ROM的结构,所存内容:W0:0101;W1:1110;W2:0011;W3:1010,0,0,0,0,0,0,0,16,图中采用一个2线-4线地址译码器将两个地址码A0、A1译成四个地址W0W3。存储单元是由二极管组成的44存储矩
6、阵,其中1或0代码是用二极管的有无来设置的。即当译码器输出所对应的W(字线)为高时,在线上的二极管导通,将相应的D(位线)与W相连使D为1,无二极管的D为0。如图中所存的信息为 W0:0101;W1:1110;W2:0011;W3:1010掩模ROM除二极管掩模外, 还有TTLROM和MOSROM等。,17,1). 一次性编程ROM(PROM)可编程ROM(PROM,Programmable ROM)的基本原理如图所示。这是一个简单的16位PROM(44),它与前一节中所讨论的二极管掩模ROM相似。从图(a)中可以看到, 每一个存储单元有一个二极管和一个有效的熔断器,即每一个存储单元包含一个逻
7、辑1, 这是PROM在写入程序前的状态。这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM),2 可编程ROM,18,可编程ROM(PROM) (a) 编程前; (b) 编程后,19,PROM的一次性编程给实际使用带来许多不便,在实际使用中更需要可重复编程的芯片。EPROM(Erasable PROM)是一种可擦写的PROM, 它采用了N沟道增强型浮栅MOS管作为存储单元。用户只需用个人EPROM编程器(写入器)就可对EPROM编程或写入程序。如果要对EPROM重复使用或重复编程, 则可以使用IC顶部特设的石英窗口,
8、将紫外光(UV)直接照射到EPROM芯片上的窗口大约5分钟左右,通过紫外光把所有的存储单元设置为逻辑1来擦除EPROM,此后,可对EPROM重新写入程序。图所示的是一个典型24引脚的EPROM 存储器芯片。,编程电压(VPP=1224V,随不同的芯片型号而定),2)紫外线可擦除ROM(EPROM),20,EPROM,带窗口,21,表 27XX系列组成,集成EPROM,22,图 EPROM 2732A (a) 方框图; (b) 外引线图,23,EPROM 2732A有12根地址引脚(A0A11), 在存储器中可编址 4096(212)个字。EPROM 2732A的电源电压为+5 V,用紫外(UV
9、)光可对其进行擦除。芯片允许输入(CE)低电平有效。 OE/VPP为读/写控制端。在一般的应用中,EPROM处于被读取的状态。 在存储器读取过程中,用低电平激活输出允许引脚OE/VPP,激活三态输出缓冲器来驱动计算机系统的数据总线。 当EPROM 2732A被擦除时,所有存储单元返回到逻辑1,通过改变已选择存储单元为0,可以输入数据。当OEVPP输入为高电平(21V)时,2732A处于编程模式(往EPROM写入程序)。 在编程(写入)的过程中,输入的数据在数据输出引脚D0D7加入。,24,EEPROM(Electrically Erasable PROM)是电可擦除PROM, 也称作E2PRO
10、M。 EEPROM可以用电的形式擦除。当把它放在电路板上时,能对其进行擦除或重新写入程序,这对于PROM或EPROM是不可能的。另外,还可以对EEPROM芯片上的部分程序代码进行重写,一次1个字节。EEPROM的存储单元有两种结构,一种为双层栅介质MOS管,另一种为浮栅隧道氧化层MOS管。其擦写次数可达1万次以上。,3)电可擦除ROM,25,读取模式 写入模式 擦除模式 校验模式。读取时,芯片只需要 Vcc 低电压(一般+5V)供电。编程写入时,芯片通过 Vpp(一般+25V)获得编程电压,并通过 PGM 编程脉冲(一般50ms)写入数据。擦除时,只需使用 Vpp 高电压,不需要紫外线,便可以
11、擦除指定地址的内容。为保证编程写入正确,在每写入一块数据后,都需要进行类似于读取的校验步骤,若错误就重新写入。,* EEPROM 的四种工作模式,26,闪存与EEPROM非常相似,也可以在电路板上重写程序。 但是闪存与EEPROM的不同在于闪存是整个芯片被擦除和重写程序。相对于EEPROM,闪存的优点是它有一个较简单的存储单元,因此在单个芯片上能够存储更多的位。另外,闪存被擦除和重写程序的速度远大于EEPROM。闪存的缺点是对其进行程序重写的电压为1212.75 V,且不能像EEPROM那样对其单个字节进行重写。 闪存自1988年推出以来,以其高集成度、大容量、低成本和使用方便等特点得到了广泛
12、的应用。 随着存储容量不断加大和工作速度不断加快,闪存将会逐渐取代磁盘等存储器,在计算机及其它数字领域广泛应用。,4)闪存(Flash Memory),?,U盘里面采用了闪存芯片,27,读取模式 写入模式 擦除模式 校验模式。,闪存的四种工作模式,读存储单元的操作与SRAM相同,但不同公司的产品逻辑电源供电电压(Vcc)是不同的。,不同型号的Flash Memory产品在执行擦除操作时,擦除电压是不一样的。,向用户命令接口写入字节编程命令时,芯片自动进行字节编程和编程校验。对不同型号的Flash Memory产品进行编程操作时编程电压是不一样的。,*,28,二、读写存储器RAM,SRAM的存储
13、速度要比DRAM快得多 。,内存一般都是DRAM。CPU的L1级缓存(Cache)通常都是SRAM 。高速DRAM做为L2级缓存。,29,RD=0 读,1、静态RAM的结构原理图,注意:有的RAM读/写控制线就一根,为高电平时是读,低电平时是写.,30,任何程序或数据要为CPU所使用,必须先放到主存储器(内存)中,即CPU只与主存交换数据,所以主存的速度在很大程度上决定了系统的运行速度。程序在运行期间,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器的一个很小范围的地址空间内。指令地址本来就是连续分布的,再加上循环程序段和子程序段要多次重复执行,因此对这些地址中的内容的访问就自然的具有
14、时间集中分布的倾向。数据分布的集中倾向不如程序这么明显,但对数组的存储和访问以及工作单元的选择可以使存储器地址相对地集中。这种对局部范围的存储器地址频繁访问,而对此范围外的地址访问甚少的现象被称为程序访问的局部化性质。由此性质可知,在这个局部范围内被访问的信息集合随时间的变化是很缓慢的,如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主存中读到一个能高速存取的小容量存储器中存放起来,供程序在这段时间内随时采用而减少或不再去访问速度较慢的主存,就可以加快程序的运行速度。这个介于CPU和主存之间的高速小容量存储器就称之为高速缓冲存储器,简称Cache。,*高速缓冲存储器 Cache,31
15、,当CPU要读取一个数据时,首先会从缓存(Cache)中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。 通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。,*,32,容量只有几KB到几百KB,速度同CPU一致.
16、,*,33,6116-2K SRAM,6116引脚功能,A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND,Vcc A8 A9 WE OE A10 CE D7 D6 D5 D4 D3,6116,2、6116的引脚结构如下图所示,RD,34,1、存储器扩展的基本问题。1)扩展容量:16根地址线最大可扩展到64K2)扩展要解决的问题:地址线、扩展芯片在64K范围内所占的地址范围3)存储器扩展的编址:存储芯片片的选择、片内单元的编址4)选择芯片的方法:片选技术2、存储器扩展的片选技术一般产生片选有两种方法: 线选法和译码法。,二、存储器扩展的基本方法,35,特点:直接以系统的地
17、址线(如A2)作为存储器的 片选信号。 缺点:部分地址号没用,浪费了大量的存储空间。,b)译码法,线选法和译码法,36,线选法用低位地址线对片内的存储单元进行寻址,所需的 地址线由片内地址线决定,用余下的高位地址线分别接至芯片 的片选端,以区分各芯片的地址范围。例如要扩展8K容量的外 RAM,地址线和片选如下:地址线:log2(8K)log2(213)13条(A12A0)片选线:余下的A15A13分别接至芯片的片选端。A15A13轮流出现低电平,可保证一次只选一片。,(1)线选法,37,扩展三片2K存储芯片,试用线选法给出接线图和地址。分析:显然要11根地址线和3根片选线,分配如下 低位地址线
18、:P0.7P0.0-A7A0,P2.2P2.0-A10A8,合成11根地址线; 高位地址线:P2.5、P2.4、P2.3-A13、A12、A11,作3片的片选; 余下: P2.7、P2.6不用,可取00扩展接线结构如图:,例6-1,38,编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0 P0.7P0.0 1号片 0 0 1 1 0 0 0 0 00H0 0 1 1 0 1 1 1 FFH 2号片 0 0 1 0 1 0 0 0 00H0 0 1 0 1 1 1 1 FFH 3号片 0 0 0 1 1 0 0 0 00H0 0 0 1 1 1 1 1 FFH
19、显然,三片的地址范围是:1号片 3000H37FFH-2K2号片 2800H2FFFH-2K3号片 1800H1FFFH-2K,片内寻址,片选,无用位设为0或1,39,(2)译码法 2/4译码器、3/8译码器的引脚图,译码法将低位地址总线直接连至各芯片的地址线,将高位地 址总线经地址译码器译码后作为各芯片的片选信号。一般使用2/4译码器、3/8译码器,对P2口高位地址线进行译码,适用于大规模扩展。,2/4,3/8,数电知识,40,2/4译码器逻辑电路图:,1 1 1,0,1G,41,例如:在上例中同样扩展三片2K存储芯片,采用译码法低位地址线:同前P0口A7A0,P2口A10A8,合成作为11
20、根地址线 2/4译码器作为片选的情况,74LS138真值表,42,高位地址线:P2口A12、A11,作为译码器输入,利用2/4译 码输出端Y0、 Y1、 Y2作为片选。三个信号作为 3片芯片的片选,实际上可选4片,本例只需3片扩展接线结构如图:,00,01,10,43,编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0 P0.7P0.0 1号片 0 0 0 0 0 0 0 0 00H0 0 0 0 0 1 1 1 FFH 2号片 0 0 0 0 1 0 0 0 00H0 0 0 0 1 1 1 1 FFH 3号片 0 0 0 1 0 0 0 0 00H0 0
21、 0 1 0 1 1 1 FFH显然,三片的地址范围是:1号片 0000H07FFH2号片 0800H0FFFH3号片 1000H17FFH3/8译码器作为片选的情况高位地址线:P2口A13、A12、A11,作为译码器输入,利用 3/8译码输出端Y0、 Y1、Y2三个信号作为 3片 芯片的片选,实际上可选8片,本例只需3片,片内寻址,片选,无用位设为0,44,扩展接线结构如图:,3/8译码器作为片选,45,编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0 P0.7P0.0 1号片 0 0 0 0 0 0 0 0 00H0 0 0 0 0 1 1 1 FFH
22、 2号片 0 0 0 0 1 0 0 0 00H0 0 0 0 1 1 1 1 FFH 3号片 0 0 0 1 0 0 0 0 00H0 0 0 1 0 1 1 1 FFH显然,三片的地址范围是:1号片 0000H07FFH2号片 0800H0FFFH3号片 1000H17FFH1)扩展一片4K容量的EPROM2732-4K地址线:A11A0,共12根,接8031的P2.3.P2.0,P0.7P0.0片选线:P2.7P2.4,不用,取0值,2732片选端直接接地,常选中。,三、存储器扩展实例 1、扩展外ROM,片内寻址,无用位设为0,片选,46,数据线:P0.7P0.02732的D7D0控制线
23、:PSEN2732的OE端,ALE锁存器74LS373门控端G2732的地址范围:0000H0FFFH,扩展接线结构如图:,47,2)线选法扩展二片2K容量的EPROM,2716,共4K地址线:A10A0,共11根,接8031的P2.2P2.0,P0.7P0.0片选线:利用P2.3,加一个非门,接存储芯片的片选端,既 可完成2片的选择,而P2.72.4,取0值数据线:P0.7P0.0分别接2片2716的D7D0控制线:PSEN分别接2片2716的OE端ALE 锁存器74LS373的门控端G扩展的接线如下页图所示:2716的地址范围:1号片0000H07FFH-2K2号片0800H0FFFH-2
24、K,实际上为1-2译码器,48,扩展的接线如下页图所示:,49,1)扩展一片2K容量的RAM,6116地址线:A10A0,共11根,接8031的P2.2P2.0,P0.7P0.0片选线:P2.7P2.3,不用,取0值,因为只扩展1片,6116片 选端直接接地,常选中.数据线:P0.7P0.06116的D7D0控制线: WR6116的WE端RD6116的OE端ALE 锁存器74LS373的门控端G6116的地址范围:0000H07FFH接线图如下页所示:,2、 扩展外RAM,50,扩展一片2K容量的RAM,6116,2716:0000H07FFH6116(1):0000H07FFH6116(2)
25、:0800H0FFFH,6116RAM的地址范围可与2716ROM的相同,因为不同的指令访问将产生不同的控制信号,MOVC, 无效,2)线选法扩展二片2K容量的RAM,6116,一片4K容量的ROM,2716,52,I/O接口的必要性:,外设和CPU有种种不协调、不匹配的地方。I/O接口就是为了解决CPU和外设之间的种种不协调、不匹配而设置的。,4-3 并行I/O口扩展,53,I/O接口电路是为外设和CPU之间的连接而提供的硬件,加上驱动这些硬件所需要的软件的就构成了接口技术。,外设用作输入时,由于输入数据的保持时间(一般为ns几十ms)相对于CPU的处理时间来说是较长的,因此输入数据就用不着
26、锁存,而直接使用三态缓冲器与CPU 的数据总线相连。 外设作为输出时,由于CPU的处理时间(指令周期)相对外设是很快的(s),如果不锁存,慢速的外设就来不及保存、处理。,注意:存储器和CPU之间也是有接口问题的,但它的速度也较快、也为并行、以及使用的TTL电平均与CPU相匹配或相当,且功能单一就是存储数据。故CPU与存储器的借口问题比较简单,核心问题就是:存储器的编址、片选、选通三大问题。,I/O接口的基本原则:,54,51单片机有4组并口P0-P3,为什么还要扩展I/O口?,MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。其中P0口一般作地址线的低八位和数据线使用;
27、P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。这样供用户使用的I/O口就只剩下P1口了。另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。,55,MCS51单片机内部有4个并行口,当内部并行口不够用时可以外扩并行口芯片。可外扩的并行口芯片很多,分成2类:不可编程的并行口芯片(74LS373/273和74LS245)和可编程的并行口芯片(8255等)。不可编程并行口芯片的扩展可编程并行口芯片的扩展,本节介绍,56,常用并行I/O扩展芯片,如74LS273、74LS373、 74LS244、74LS24
28、5等。 1、74LS273(8D锁存器)( 74LS373 带三态门锁存器),一、用74系列器件扩展并行I/O口,上升沿触发,见P9,是一种带清除功能的8D触发器,57,2、74LS244(总线驱动器、单向),第2组,第1组,58,双向驱动器74LS245,单向驱动器 74LS244,59,74LS244 应用(隔离),60,高位地址组合法,如图所示:,简单I/O扩展接口,3、扩展实例,0,读,写,锁存,0,61,输入:74LS244扩展K0K7并由P2.0+RD端,全0时,74LS244选通读入 K0K7状态。实现: MOV DPTR,#FEFFHMOVX A,DPTR ;读入输出:74LS
29、273扩展LED0LED7并由P2.0+WR端,全0时,74LS273将P0口数据 送出,控制LED0LED7实现: MOVX DPTR,A ;输出,1111 1110 1111 1111,这里随便给一个地址行吗?,62,CPU总线的驱动能力有限,通常为一到数个TTL负载,因此,在较大的系统中需要考虑总线驱动。一般做法是:对单向传送的地址和控制总线,芯片有两类,一类是8D触发器(如74LS273、74LS377等),另一类是8位锁存器(如741S373、8282等)和三态单向驱动器(如74LS244)等来加以锁存/驱动;对双向传送的数据总线,可采用三态双向驱动器(如74LS245、8286等)
30、来加以驱动。三态双向驱动器也称总线收发器或数据收发器。,4. 微型机总线驱动能力的扩展,63,缓冲器,缓冲器分为,普通缓冲器(简称缓冲器),三态缓冲器。,将射极输出器放在电路的中间,作为阻抗变换(隔离)用,以起到缓冲的作用,也称缓冲器。,高速缓冲存储器Cache,也称缓冲器。,244为总线输入缓冲,在选通时输入数据送到总线上,在非选通时对总线呈高阻态。373有两个控制端,一个是1脚的使能端(为低时使能器件输出,为高时器件呈高阻态),另一个是11脚的锁存端(先高后低完成数据锁存),一般配合单片机用作地址锁存,一般不做输入。244、373都是起到缓冲器的作用,64,在扩展多个I/O时,应注意单片机I/O的驱动能力。,二、多个I/O口的扩展,65,本章小结,1、程序存储器扩展设计,EPROM外特性介绍(2716、2732、2764),8031单片机最小系统设计,扩展设计。 2、数据存储器和外部I/0端口扩展设计,RAM外特性介绍 (6116、6264),扩展设计。重点:存储器扩展电路设计及连线,译码地址和译码范围, MCS-51 单片机P0、P1口的功能。 难点:译码地址和译码范围,端口的灵活应用。,