预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共64页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学由图8-1可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。 外部存储器扩展又包括程序存储器扩展和数据存储器扩展。AT89C51采用的是哈佛结构。扩展后,系统形成了两个并行的外部存储器空间。 89C51单片机采用并行总线结构,大大增加了系统的灵活性,使扩展易于实现,各扩展部件只要符合总线规范,就能很方便地接入系统。 由于系统扩展是通过总线把AT89C51与各扩展部件连接起来。因此,要进行系统扩展首先要构造系统总线。系统总线按功能分为三组,如图8-1所示。 (1)地址总线(AdressBus,AB) 地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器选择。地址总线是单向传输的。 (2)数据总线(DataBus,DB) 数据总线用于在单片机与存储器之间或与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的传送。 (3)控制总线(ControlBus,CB) 控制总线实际上就是单片机发出的各种控制信号线。 下面讨论如何构造系统三总线1.以P0口作为低8位地址/数据总线 AT89C51由于受引脚数目的限制,数据线和低8位地址线复用。 为了将它们分离出来,需要外加地址锁存器,从而构成与一般CPU相类似的片外三总线,见图8-2。 2.以P2口的口线作为高位地址线 P2口的全部8位口线用作高位地址线,再加上P0口经地址锁存器提供的低8位地址,便形成了完整的16位地址总线(见图8-2),使寻址范围达到64KB。 3.控制信号线 除了地址线和数据线之外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。其中包括: (1)PSEN*信号作为外扩程序存储器的读选通控制信号。(2)RD*和WR*信号作为外扩数据存储器和I/O接口的读、写选通控制信号。 (3)ALE信号作为低8位地址的锁存控制信号。 (4)EA*信号作为内、外程序存储器的选择控制信号。 可看出,尽管89C51单片机有4个并行的I/O口,共32条口线,但由于系统扩展的需要,真正作为数字I/O使用的,就剩下P1口和P3口的部分口线了。 8.2地址空间分配和外部地址锁存器 8.2.1存储器地址空间分配 如何把外部各自的64KB空间分配给各个程序存储器、数据存储器芯片,并且使程序存储器的各个芯片之间,数据存储器各芯片之间,为避免发生数据冲突,一个存储器单元对应一个地址,这就是存储器的地址空间的分配问题。 在外扩的多片存储器芯片中,AT89C51要完成这种功能,必须进行两种选择: 一是必须选中该存储器芯片(或I/O接口芯片),这称为“片选”,只有被“选中”的存储器芯片才能被AT89C51读出或写入数据。为了片选的需要,每个存储器芯片都有片选信号引脚, 二是在“片选”的基础上再选择该芯片的某一单元,称为“单元选择”。常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面分别介绍。 1.线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。 缺点是可寻址的芯片数目受到限制。 另外,地址空间不连续,每个存储单元的地址不唯一,不能充分有效地利用存储空间,这会给程序设计带来一些不便,只适用于外扩芯片数目不多的单片机系统的存储器扩展。 2.译码法 使用译码器对89C51的高位地址进行译码,将译码器的译码输出作为存储器芯片的片选信号。是最常用的地址空间分配的方法,它能有效地利用存储器空间,适用于多芯片的存储器扩展。 常用的译码器芯片有74LS138(3-8译码器)74LS139(双2-4译码器)74LS154(4-16译码器)。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。 两种常用的译码器芯片。 (1)74LS138 74LS138是3-8译码器,有3个数据输入端,经译码产生8种状态。其引脚如图8-3所示,真值表如表8-1所示。 由表8-1可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。而输出为低电平的引脚就作为某一存储器芯片的片选端的控制信号。图8-3 表8-174LS138译码器真值表 输入输出 G1G2A*G2B*CBAY7*Y6*Y5*Y4*Y3*Y2*Y1*Y0* (2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端。其引脚如图8-4所示,真值表如表8-2所示(见P138