单片机课件3

单片机课件3
单片机课件3

第7章MCS-51系列单片机系统总线扩展方法

单片机总线分内部总线和外部总线。

外部总线包括:数据总线DB(Data Bus),地址总线AB(Address Bus)和控制总线CB (Control Bus)

数据总线:P0兼作数据和地址总线的低8位A0~A7;

地址总线:P0口兼作地址总线的低8位A0~A7,P2口为地址总线的高8位A8~A15;

控制总线:PSEN :外部程序存储器读选通信号输出端;ALE地址锁存信号输出端;RST:复位信号输入端;EA /VPP为内部或外部程序存储器读选择输入端:RD

(P3.7)为外部数据存储器读选通输出端;(P3.6)WR 为外部数据存储器写选通输出端。

总线设计时还需考虑如下几个问题:

① CPU三总线(地址总线、数据总线、控制总线)的负载能力。

②CPU读写时序与接口芯片,如存储器的存取速度的匹配问题。存储器的读写速度应与CPU要求的读写速度相同或更快

三总线的基本构架

由于51采用地址/数据分时复用技术,低8位地址A7~A0与数据总线D7~D0分时使用P0口引脚,因此需要在P0口上接一个地址锁存器芯片,P0口的直通端为8位数据总线,通过锁存器的为低8位地址A7~A0。

常用的锁存器是74LS373(现在常用74HC373)、74HC573。

8D锁存器74LS373、74HC573是带输出三态门的8D锁存器

1D~8D为8个输入端;

1Q~8Q为8个输出端;

G为数据打入端:当G为“1”时,锁存器输出状态(1Q~8Q)同输入状态(1D~8D);当G由“1”变“0”时,数据打入锁存器中。并且在G保持“0”时输出保持不变,输入为

高阻。

2.总线驱动器74LS244, 74LS245

译码电路的设计原则是:在任意时刻只有一个芯片的数据口开放,其他芯片的数据口均为高阻状态。学习译码技术要达到以下水平:

①电路的设计者要能指出系统上每个芯片的地址范围。

②在参考别人设计电路时,只要硬件不加密,要能从译码电路看出系统上每个芯片的地址范围。

单片机系统中,外部程序存储器一般使用EPROM、EEPROM、Flash ROM;27系列为EPROM

型存储器,其上带有一个石英窗,可透射紫外线擦除内部数据,反复使用。27系列芯片有多种工作方式。对51系统设计者来说,最重要的是读、输出禁止和维持三种工作方式的运用

结论1:使器件工作的必要充分条件是,OE 、CE 上的电平均为低;

结论2:即使片选(或称选片)端为低电平,只要输出允许端为逻辑高电平,数据线仍保持高阻状态。

7.2 MCS-51系列单片机外部程序存储器扩展

【例7-1】设计一个具有64K程序存储器容量的8031系统。

解:由于8031构成最小应用系统时,必须在片外扩展程序存储器,根据题意选用单片27512即能满足要求。对一片程序存储器系统,可采用常选通方式,故将其选片端接地。系统不需要地址译码。

一般用作程序存储器的EPROM芯片不能锁存地址,故扩展时还应加1个锁存器,构成一个3片最小系统,如图7-12所示。

【例7-2】问扩展64K外部程序存储器空间,需要多少片2764芯片?设计这个8031系统的电路,并为每个2764芯片分配的地址。

解:64K外部程序存储器空间正好是51机的最大程序存储器的寻址范围。因此,本例必须采用完全译码的方法:即所有地址线全部连接的地址译码方法。这种译码每个存储器单元只占用唯一的1个地址。

①扩展64K外部程序存储器正好需要8片2764。

本例采用译码器芯片的设计方法,具体采用3-8译码器74LS138。系统设计如图7-13所示。

②确定每个2764芯片的地址范围

片内译码地址范围的确定方法:每一地址位可为0、1两种情况,用×表示。最低地址为各地址位均为0的编码,最高地址是各地址位全为1的编码,因此每个芯片的片内地址变化范围为从最低到最高地址编码连续变化;片外译码由采用的译码电路决定,分析入手点是芯片的选片线是否有效。

③各个芯片的地址范围的确定

实际解题时,综合①、②确定地址范围用表7-8表明。图7-13中8个2764芯片的地址范围如表7-8所示。

【例7-3】用27128芯片设计一个32K外部程序存储器的8031系统,并为每个27128芯片分配地址。

解:32K程序存储器空间没有达到51机的最大程序存储器的寻址范围。因此,可采用完全译码法也可采用部分译码法为27128分配地址。本例采用部分译码法:即用部分地址线译码方法。这种译码法为每个存储器分配的地址范围可以不止一个,因此有地址范围重复的情况,究其原因,是因为部分译码空出了部分地址线而不用。部分译码的方法,只能用于小于64K存储器空间的系统(对51机来说)。

①扩展32K外部程序存储器正好需要2片27128。

②确定每个27128芯片的地址范围:

本例译码方法是线选法,电路采用反相器7404设计,如图7-14所示。确定地址范围如表7-9所示。

训练题

7-2查阅74HC139的资料,用四片27128芯片设计一个64K外部程序存储器的8031系统,并为每个27128芯片分配地址。

7.3 MCS-51系列单片机外部数据存储器扩展

数据存储器即随机存取存储器(Random Access Memory),简称RAM,用于存放可随时修改的数据信息。与ROM不同,单片机可对RAM可以进行读、写两种操作。RAM为易失性存储器,断电后所存信息立即消失

62系列芯片是静态数据存储器芯片,在单片机中常用的有6264(8K×8位)和62256(32K ×8位,容量的算法与27系列相同)。其28 引脚双列直插式封装管脚图如图7-15所示。其中I/O0~I/O7为三态双向数据口,控制线为CE 、OE 、WE 三根,其功能见表7-10

上述51机中三个空间的某个单元的地址均为007FH,但他们在物理上存在且独立,则:访问程序存储器方式:

MOV DPTR,#007FH ;先地址,后操作

MOVC A,@DPTR ;读,且只能读

访问外部数据存储器方式:

MOV DPTR,#007FH ;先地址,后操作

MOVX A,@DPTR ;读

MOVX @DPTR,A ;写

访问片内存储器寄存器方式:

MOV A,7FH ;直接寻址

MOV A,@Ri ;间接寻址

从编程角度看,指令形式将3种存储器空间分开,从本质上讲,由于指令形式不同,指令生成的代码不同,CPU对这些代码产生的控制时序就不同,因此访问到不同的空间。

单片机对外部数据存储器的操作可以是并行总线方式的,也可用I/O方式直接对其操作。

【例7-4】用一片6264芯片为80C51外扩8K数据存储器,分别用总线方式及I/O方式进行电路设计并写出对6264任一单元进行读、写的程序段。

分析:除外部程序存储器,所有的并行接口器件,都可以用总线及I/O两种方式与单片

机接口。

非易失性的存储器,只要不做外部程序存储器用,也可当普通数据存储器用。但做程序存储器时,只能读,不能写,常用于存放数据表格。

重要结论要引起注意:对51机而言,所有的并行接口器件(种类很多,包括数据存储器、I/O扩展芯片、时钟、串行通信接口芯片、定时/计数器、A/D和D/A转换器等)都可以用总线方式或I/O方式与单片机接口,在总线方式下,CPU对他们的操作与对数据存储器的操作完全一样(指令格式相同),接口器件的地址安排在RAM区,即占用外部接口器件64K 空间的一部分。

解:(1)并行总线方式:将电路图7-19中80C51的ALE与74HC573的锁存控制端G相联。6264的片内译码只需要13根地址线,而高三位地址线只有A14(P2.6)参与了6264的选片,其余A15、A13处于悬空状态,因此6264有多组地址范围。只要(P2.6)为逻辑0即可

。取最简单的一组:000×,××××,××××,××××,××××,××××则6264的地址范围为0000~1FFFH,共8K。

51机访问外部数据存储器的指令只有以下两组:

①MOV DPTR,#addr16

MOVX A,@DPTR ;对扩展RAM的读操作

MOVX @DPTR,A ;对扩展RAM的写操作

②MOV Ri,#data

MOVX A,@Ri ;只能读0~FFH单元

MOVX @Ri,A ;只能写0~FFH单元

其中:第1组访问的地址范围包含第2组,常用.

对6264内部1000H单元进行读、写一个字节的程序段分别为:

MOV DPTR,#1000H

MOVX A,@DPTR ;对扩展RAM的读操作

MOV DPTR,#1000H

MOV A,#0AAH

MOVX @DPTR,A ;对扩展RAM单写入AAH操作

总线方式,在电路设计满足总线要求后,对数据存储器类的接口器件的操作:地址输入、芯

片选通、操作时序、操作数据读、写,全都包含在几条简练的指令中。例如,上面的程序段。

2)I/O口方式: 在图7-19中,若不用ALE而将P2.7与锁存控制端G相联,即为I/O方式了,在硬件设计上就这点区别。

读操作

SETB P2.7

MOV P0,#00H ;地址低8位

NOP

MOV P2,#10H ;地址低8位锁存(P2.7低)高8位也设置好1000H ;选通6264(低电平有效)0101

MOV A,P0 ;对扩展RAM的读操作

SETB P2.6 ;禁止6264

写操作

SETB P2.7

MOV P0,#00H ;地址低8位

NOP

MOV P2,#10H

MOV A,#0AAH

MOV P0,A ;对扩展RAM写入AAH的操作

SETB P2.6 ;禁止6264

相关文档
最新文档