1.存储器常用单位
存储器的常用单位如下:
位(bit):它是计算机中最小的数据单位。由于计算机采用二进制数,所以1位二进制数称作1bit,例如101011为6bit。
字节(Byte,单位简写为B):8位二进制数称为一个字节,1B=8bit。
字(Word):两个字节构成一个字,即2B=1Word。
在单片机中还有一个术语:字长。所谓字长指单片机一次能处理的二进制数的位数。MCS-51系列单片机一次能处理8位二进制数,所以它的字长为8位。所以我们常说MCS-51为8位机。
2.存储器的工作原理
存储器的功能是存取各种二进制数据。存储器的结构如图2-12所示。
图2-12中大虚线框内的部分为存储器的组成结构,它的容量为4bit,可以存储4位二进制数。小虚线框内为存储体,存储体中有4个存储单元,每个存储单元可存储1位二进制数。为了区分这4个存储单元,对这4个单元分别编号为00、01、10和11。存储器连接的引线有三种:A0、A1称为地址总线,D0称为数据总线,R/W、CS称为控制总线。
单片机在工作时,可以取出存储器中的数据,称作读(R);也可以将数据存入存储器,称作写(W)。下面以图2-12所示存储器为例来说明存储器的工作原理。
(1)存储器的读过程
下面以取出01单元中的“1”为例来说明存储器的读过程。
首先让片选端CS=0、读/写控制端R/W=1。CS=0经非门反相后变为“1”,它控制电子开关S2闭合;R/W=1送到三态门1、三态门2的控制端,三态门1处于高阻状态,输入与输出之间相当于开路,三态门2则处于导通状态。这样数据总线D0就通过S2、三态门2与存储器内部接通。
图2-12 存储器的结构
然后给地址总线A0、A1送地址信号,即让A0=1、A1=0,这两个地址信号经地址译码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1),X0=1选中00、01两个单元,Y1=1控制电子开关S1闭合。
这样被选中的01单元中的数据“1”就可以通过S1、三态门2、S2送到外部数据总线D0。虽然,00单元也被X0=1选中,由于S0是断开的,所以该单元中的数据无法送到数据总线。
(2)存储器的写过程
下面以向01单元存入数据“1”为例来说明存储器的写过程。
首先让片选端CS=0、读/写控制端R/W=0。CS=0经非门反相后变为“1”,它控制电子开关S2闭合;R/W=0送到三态门1、三态门2的控制端,三态门2处于高阻状态,输入与输出之间相当于开路,三态门1则处于导通状态。这样数据总线D0就通过S2、三态门1与存储器内部接通。(www.xing528.com)
然后给地址总线A0、A1送地址信号,即让A0=1、A1=0,这两个地址信号经地址译码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1),X0=1选中01单元,Y1=1控制电子开关S1闭合。这样外部数据总线D0上的数据“1”就可以通过S2、三态门1、S1存入被选中的01单元中。
3.存储器有关术语
(1)总线
总线是指为多个部件传递信息的信号线。根据信号线上传递信息类型的不同,总线可分为地址总线、数据总线和控制总线。
图2-12中的A0、A1为地址总线,用来传送地址信号;D0为数据总线,用来传送数据;R/W、CS为控制总线,用来传送控制信号,其中R/W为读写控制端,当R/W=1时,可以读取存储器中的数据,当R/W=0时,可以向存储器写入数据,而CS称为片选控制端,当多片存储器连接在一起时,要对其中一片进行读写操作,可让该存储器的CS=0,而让其他存储器的CS=1。
(2)存储容量
存储器的功能是存储二进制数,其存储二进制数的多少称为存储容量。存储器存储容量的大小,取决于存储器中存储单元的多少和单元中存储二进制数的位数。图2-12所示的存储器有4个存储单元,每个单元存储1位二进制数,所以它的存储容量为4×1bit;如果每个单元能存储8位二进制数,那么它的容量就是4×8bit。
大多数存储器的每个存储单元能存1个字节(8位二进制数),如果一片存储器中有1024(210)个存储单元,每单元存1个字节,该存储器的存储容量为1024×8bit,简称1KB。
(3)地址编号
存储器中有很多存储单元,为了查找方便,需要给每个单元赋予不同的编号,这就是地址编号。图2-12所示的存储器中有4个存储单元,它们的地址可以用2位二进制数编号来表示,地址编号分别是00、01、10、11。如果一个存储器中有1024个存储单元,则至少需要用12位二进制数来表示,地址编号分别是000000000000,000000000001,…,111111111110,111111111111。
存储器的存储单元越多,地址编号需要的二进制数位数越多,对于大容量的存储器,用二进制数进行地址编号非常不方便,也容易出错。为此,现在的存储器都用十六进制数地址编号来代替二进制数编号。
二进制数地址编号转换成十六进制数地址编号的规则是:将二进制数地址编号从低到高4位编为一组,高位不足4位补0,再将每4位二进制数转换成十六进制数,得到的即为十六进制数地址编号。例如,二进制数地址编号000011000000B、01111010 0001B转换成十六进制数地址编号分别是0C0H、7A1H。
图2-13 一种单片机存储器容量扩展示意图
4.存储器容量的扩展
单片机内部存储器的容量一般不会很大,如果内部存储器容量不够用,可在单片机外围增加存储器进行容量扩展。图2-13就是一种单片机存储器容量扩展示意图。
如果单片机要读取内部存储器中的数据,内部电路(图中未画出)让CS线为“1”,R/W线为“1”,并从地址总线A0~A15送出16位地址信号。CS=1让外部存储器不工作,CS=1经非门变为“0”,内部存储器被选中;R/W=1控制内部存储器执行读操作;A0~A15送出的地址信号选中内部存储器中的某个存储单元,该单元中存储的数据就通过数据线D0~D7输出到单片机的某些电路。
如果单片机要读取外部存储器中的数据,内部电路让CS线为“0”,R/W线为“1”,并从地址总线A0~A15送出16位地址信号。CS=0让外部存储器工作,CS=0经非门变为“1”,内部存储器不工作;R/W=1控制外部存储器执行读操作;A0~A15送出的地址信号选中外部存储器中的某个存储单元,该单元中存储的数据就通过数据线D0~D7输出,送入单片机内部。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。