程序存储器采用只读存储器,因为这种存储器在电源关断后,仍能保存程序(我们称此特性为非易失性的),在系统上电后,CPU可取出这些指令重新执行。
1.锁存器
受引脚数的限制,P0口兼用作数据线和低8位地址线,为了将它们分离出来,需在单片机外部增加地址锁存器。目前,常用的地址锁存器芯片有74LS373、74LS573等。
(1)锁存器74LS373
它是一种带三态门的8D锁存器,其引脚排列如图7-7所示,内部结构如图7-8所示。MCS-51与74LS373锁存器的连接电路如图7-9所示。
图7-7 锁存器74LS373的引脚排列
图7-8 74LS373的内部结构
图7-9 MCS-51单片机P0口与74LS373的连接电路
引脚说明:
◆D7~D0:8位数据输入线,
◆Q7~Q0:8位数据输出线。
◆G:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。
74LS373锁存器功能见表7-1。
表7-1 74LS373锁存器功能表
(2)锁存器74LS573
它也是一种带有三态门的8位锁存器,功能及内部结构与74LS373完全一样,只是其引脚排列与74LS373不同。图7-10所示为74LS573的引脚排列。
如图7-10所示,与74LS373相比,74LS573的输入D端和输出Q端依次排列在芯片两侧,为绘制印制电路板提供了方便。
引脚说明:
◆D7~D0:8位数据输入线。
◆Q7~Q0:8位数据输出线。
◆G:数据输入锁存选通信号,该引脚与74LS373的G端功能相同。◆:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。
2.程序存储器扩展
(1)2716芯片介绍
下面以过去常用的最简单的2716芯片为例进行原理说明。2716的引脚排列如图7-11所示。(www.xing528.com)
图7-10 74LS573的引脚
图7-11 2716的引脚排列
1)主要引脚功能
A10~A0:11位地址,它的数目由芯片的存储容量决定,用于进行单元选择。O7~O0:数据读出。/PGM:双重功能控制线,当使用时,它为片选信号,低电平有效;当芯片编程时,它为编程控制信号PGM,用于引入编程脉冲。:输出允许信号,当=0时,输出缓冲器打开,被寻址单元的内容可以被读出。
VPP:编程电源。当芯片编程时,该端加+25V编程电压;当使用时,该端加+5V电源。
2)2716的工作方式(见表7-2)
表7-2 2716的工作方式表
①读出方式
CPU从EPROM中读取代码,为单片机应用系统的工作方式。此时、均为低电平,VPP端加+5V。
②维持方式即未选中状态,此时为高电平,数据输出为高阻状态,功耗下降75%,处于低功率维持状态。
③编程方式把程序代码固化到EPROM中。VPP端加+25V电压,高电平。每当E/PGM端出现脉冲时,写入一个存储单元信息。
④编程校验方式即检查编程写入的信息是否正确,通常紧跟编程之后。VPP端加+25V,及为低电平。
⑤编程禁止方式
2716不但可单片编程,也允许多片同时编程,好把同样信息并行写入多片2716中。多片编程时,若要写入各片的数据不尽相同,可使某片或某几片芯片处于编程状态或编程禁止状态,当/PGM信号加低电平时,该芯片处于编程禁止状态,不写入数据。
(2)存储器扩展的主要内容
单片程序存储器扩展是只扩展一片ROM芯片,这是最简单的程序存储器扩展。下面以扩展2716芯片为例进行说明,其扩展连接图如图7-12所示。
图7-12 扩展连接图
存储器扩展的主要内容是地址线、数据线和控制线的连接。低位地址线的连接与存储芯片的容量有关。2716的存储容量为2KB,需11位地址(A10~A0)进行存储单元编址。为此先把芯片的A7~A0引脚与地址锁存器的8位地址输出对应连接,再把A10~A8引脚与P2口的P2.2~P2.0相连。这样,2716芯片内存储单元的寻址问题就解决了。由于这是一个小规模存储器扩展系统,采用线选法进行片选,只需在剩下的高位地址线中取一位P2.7与2716的端相连即可。数据线的连接比较简单,只要把存储芯片的数据输出引脚与单片机P0口对应连接就可以了。对于控制信号,程序存储器的扩展只涉及(外部程序存储器读选通),把该信号连接到2716的引脚,用于存储器读出选通。
存储器单元地址分析:
上述三总线的连接过程中,地址总线只需11根(A0~A10),占据了P0口的8根口线(P0.0~0.7)和P2口的3根口线(P2.0~2.2),片选线占据了P2口的1根口线(P2.7)。因此,P2口还剩4根口线(P2.3~2.6)没有用,一般来说其状态是任意的。为了便于分析,通常假设没有用到的高位地址线A11~A14(P2.3~2.6)处于一种确定状态(如全部为“0”状态),则扩展的程序存储器芯片Intel 2716的地址范围分析见表7-3。
表7-3 存储器单元地址表
由于P2.6~P2.3的状态与2716芯片的寻址无关,所以在该芯片被寻址,P2.6~P2.3可以为任意状态,即从0000~1111共有16种状态组合。表明2716芯片对应着16个地址区间,即8000H~87FFH、8800H~8FFFH、9000H~97FFH、9800H~9FFFH、A000H~A7FFH、A800H~AFFFH…。在这些地址区间内都能访问到2716,这就是线选法存在的地址区间重叠问题。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。