单片机的芯片内集成了计算机的基本功能部件,但片内ROM、RAM的容量,并且输入/输出端口,定时器及中断源等内部资源都还是有限的。根据实际需要,必须进行一些功能扩展。
由MCS-51系列单片机的结构可知,虽然芯片内部有4个8位输入/输出端口,但对于众多的外部设备(如键盘、显示器、开关,D-A、A-D转换器以及执行机构等)是不够用的,这时就需要扩展I/O口线。
MCS-51系列单片机扩展的内容主要有总线、程序存储器、数据存储器和输入/输出口扩展等。8031的系统扩展及接口结构如图7-15所示。
图7-15 8031的系统扩展及接口结构
1.总线的扩展
通常情况下,CPU外部都有单独的地址总线、数据总线和控制总线,而MCS-51系列单片机的数据线和地址线是复用的,而且由I/O口线兼用。为了将它们分离出来,需要在单片机外部增加地址锁存器,从而构成与一般CPU类似的片外三总线,即AB、CB、DB。
2.程序存储器扩展
程序存储器的扩展,对于片内无ROM的单片机是必不可少的工作,程序存储器扩展的容量随应用系统的要求可随意设置。当片内容量不够用时,需要扩充外部程序存储器,而且片内、片外的空间统一进行编址。
(1)程序存储器扩展性能
1)程序存储器有单独的地址编号(0000H~FFFFH),虽然与数据存储器地址重叠,但不会被占用;使用单独的控制信号和指令,程序存储器的指令、数据读取控制不用数据存储器控制和MOVX指令,而是由控制,读取数据用MOVC查表指令。
2)随着大规模集成电路的发展,程序存储器的容量越来越大,所使用的芯片数量越来越少,因此它的地址选择多半采用线选法,而不用地址译码法。
3)程序存储器与数据存储器共用地址总线与数据总线。
(2)外部程序存储器的操作时序 MCS-51系列单片机访问外部程序存储器时,所使用的控制信号有:
ALE:低8位地址锁存控制;
PSEN:外部程序存储器“读取”控制。
EA:片内、片外程序存储器访问控制。当EA=1时,访问片内程序存储器;当EA=0时,访问片外程序存储器。
外部程序存储器的操作时序如图7-16所示。
图7-16 外部程序存储器的操作时序
由于在单片机中程序存储器与数据存储器是严格分开的,因此,程序存储器的操作时序分为两种情况:不执行MOVX指令的时序和执行MOVX指令的时序。
当应用系统中无片外ROM时,不执行MOVX指令,如图7-10a所示。P0口作为地址线,专门用于输出指向程序存储器的低8位地址PCL。P2口专门用于输出程序存储器的高8位地址PCH。P2口具有输出锁存功能,P0口除了输出地址数据外,还要输入指令,故要用ALE来锁存P0口输出的地址数据PCL,在每个机器周期中允许地址锁存器两次有效,在下降沿时锁存出现在P0口上的低8位地址PCL。同时也是每个机器周期中两次有效,用于选通外部程序存储器,使指令读入片内。
当应用系统中接有外部数据存储器,在执行MOVX指令时,其操作时序如图7-10b所示在指令输入以前,P2口、P0口输出的地址PCH、PCL指向程序存储器。在指令输入并判定是MOVX指令后,在该机器周期S5状态中ALE锁存的P0的地址数据则不是程序存储器的低8位,而是数据存储器的地址。若执行的是“MOVX A,@DPTR/MOVX @DPTR,A”指令,则此地址就是DPL(数据指针的低8位),同时,在P2口上出现的是DPH(数据指针的高8位);若执行的是“MOVX A,@Ri/MOVX @Ri,A”指令,则此地址就是Ri内容。而P2口提供的是指向数据存储器高8位的P2口内锁存器的内容,实际上就是下条指令的高8位地址。在同一机器周期中将不再出现有效取指信号。下一个机器周期中ALE的有效锁存信号也不复出现,而当R有效时,P0将读/写数据存储器中的数据。
3.EPROM的基本扩展电路
用紫外线擦除可编程只读存储器(EPROM)作为单片机外部程序存储器是最为常用的程序存储器扩展方法。MCS-51系列单片机应用系统中使用最多的EPROM程序存储器是In- tel公司的典型系列芯片2716(2K×8位)、2732A(4K×8位)、2764(8K×8位)、27128(16K×8位)、27256(32K×8位)、27512(64K×8位)等。程序存储器扩展时,除EPROM芯片外,还必须有地址锁存器芯片。
图7-17为EPROM程序存储器基本扩展电路。程序存储器扩展时,一般扩展容量不大于256B,因此,EPROM片内地址除由P0口经锁存器提供低8位地址线外,还需由P2口提供若
图7-17 EPROM程序存储器基本扩展电路
干地址线。EPROM所需地址线数决定于EPROM容量,EPROM为2KB时地址线为11根(2K=211),4KB时地址线为12根(4K=212),依次类推。所需要的高8位地址线由P2口提供。
如果系统中只扩展一片EPROM时,无需片选控制,EPROM片选端接地即可。如图7-17a中所示,An为最高地址位,扩展2KB时,An=A11。扩展两片EPROM时,使用P2口的剩余口线直接接到一片EPROM(1)的片选端,经过反相器后再接到另一片EPROM(2)的片选端E上,如图7-17b所示。
4.数据存储器的扩展
在单片机应用系统中,作为数据存储器使用的有静态读/写存储器RAM、动态读/写存储器DRAM和IRAM以及EEPROM等。
(1)数据存储器扩展性能
1)数据存储器与程序存储器地址重叠编号(0000H~FFFFH),使用不同的控制信号和指令。
2)由于数据存储器与程序存储器地址完全重叠,故两者的地址总线(无论是片内还是片选端线)和数据总线可完全并联使用。但数据存储器只使用、控制线而不用PSEN。(www.daowen.com)
(2)外部数据存储器的操作时序 外部数据存储器的操作时序包括从RAM中读和写两种操作时序。这时所用的控制信号有:(低8位地址锁存信号)、(读信号)(写信号)。
图7-18是外部数据存储器的读/写操作时序。
图7-18 8051访问外部数据存储器操作时序图
1)读片外RAM操作时序。8051单片机若外扩一片RAM,应将其引脚与RAM芯片的引脚连接,引脚与芯片的OE引脚连接。信号锁存低8位地址,以便读片外RAM中的数据。读片外RAM的时序如图7-18a所示。
在第一个机器周期的S1状态,ALE信号由低变高①,读入RAM周期开始。在S2状态,CPU把低8位地址送到P0口总线上,把高8位地址送到P2口(在执行“MOVX A,@DPTR”指令阶段才送高8位;若是“MOVX A,@Ri”,则不送高8位)。
ALE的下降沿②用来把低8位地址信息锁存到外部锁存器74LS373内③。而高8位地址信息一直锁存在P2口锁存器中。在S3状态,P0口总线变成高阻悬浮状态④。在S4状态,信号变为有效⑤(是在执行“MOVX A。@DPTR”后使信号有效),信号使得被寻址的片外RAM略过片刻后把数据送上P2口总线⑥,当回到高电平后⑦,P0口总线变为悬浮状态。至此,读片外RAM周期结束。
2)写片外RAM操作时序。向片外RAM写(存)数据,是8051执行“MOVX@DV-FR,A”指令后产生的动作。这条指令执行后,在8051的W引脚上产生信号有效电平,此信号使RAM的端被选通。写片外RAM的时序如图7-18b所示。开始的过程与读过程类似,但写的过程是CPU主动把数据送P0口总线③。此间,P0口总线上不会出现高阻悬浮现象。在S4状态,写控制信号有效,选通片外RAM,稍过片刻,P0口总线上的数据就写到RAM内了。
(3)静态数据存储器扩展 最常用的静态数据存储器RAM芯片有6116(2K×8位)和6224(8K×8位)两种。静态数据存储器扩展电路与程序存储器扩展电路相似,所用的地址线、数字线完全相同,读、写控制线用W、。图7-19为扩展2KB静态RAM的电路。
图7-19 扩展2KB静态RAM的电路
(4)数据存储器EEPROM的扩展 电擦除可编程只读存储器(EEPROM)在单片机应用系统中既可作为程序存储器,又可作为数据存储器。将EEPROM作为数据存储器时,既可直接将它作为片外数据存储器扩展,也可以作为一般外围设备电路扩展。
1)并行EEPROM的扩展电路。图7-20为并行EEPROM的数据存储器扩展示意图。图中,并行EEPROM 2816A可按照典型的数据存储器扩展电路连接方式,如2816A(1)芯片;也可作为外设电路,通过扩展输入/输出口8255连接,如2816A(2)芯片。
图7-20 并行EEPROM的数据存储器扩展示意图
2)串行EEPROM的扩展电路。图7-21为8031扩展59308的电路。59308是NCR公司生产的串行EEPROM。
图7-21 扩展串行EEPROM59308电路
5.I/O的扩展
MCS-51系列单片机虽有4个8位并行I/O口,但这些I/O口并不能完全提供给用户使用。因此,在大部分的MCS-51系列单片机应用系统设计中都不可避免地要进行I/O口的扩展。图7-22为用1273作为地址锁存器扩展并行I/O的电路,这里并行I/O芯片采用Z80- PIO。由于是上升沿触发,因此ALE信号反相后送给地址锁存器的CLK端。
图7-23为8098单片机与并行接口芯片8155的连接示意图。通过单片机写I/O控制寄存器可以设置8155的3个PIO口PA、PB、PC的工作方式(输入/输出、基本/选通、中断/不中断)。
由上述例子可以看出,MCS-51系列和MCS-96系列单片机的I/O与RAM以及扩展I/O和RAM都是统一编址,低位地址线直接按位接到芯片的地址线引脚,而较高位地址直接或过译码后接到如“片选”等控制端。
图7-22 8031与Z80-PIO的连接
图7-23 8098与8155的连接
6.A-D,D-A扩展及应用
由于8031单片机不带A-D、D-A转换器,因此扩展A-D、D-A电路是8031单片机应用中经常遇到的问题。利用ADC 0804与8031相连可组成一个简单的数据采集子系统,如图7-24所示。图中,ADC芯片数据输出线与8031数据线直接相连,、和INT一一对接,用P1.0线产生片选信号,无需外加地址译码器。当8031向ADC 0804发出R(启动转换)、(读入结果)信号时,只要虚拟一个系统不占用的数据存储器地址即可。
图7-24 ADC 0804与8031接口电路
驱动ADC 0804(或ADC 0801)操作的程序如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。