⑴ 单片机的存储器结构
通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,能代表两种状态:0和1。实际上这就是一个二进制位,因此我们就把一根线称之为一“位”,用BIT表示。
什么是字节:
一根线能表于0和1,两根线能表达00,01,10,11四种状态,也就是能表于0到3,而三根能表达0-7,计算机中常常用8根线放在一起,同时计数,就能表过到0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。不要问我为什么是8根而不是其它数,因为我也不知道。(计算机世界是一本人造的世界,不是自然界,很多事情你无法问为什么,只能说:它是一种规定,大家在以后的学习过程中也要注意这个问题)
存储器的工作原理:
1、存储器构造
存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。
图2
图3
让我们看图2。单片机里面都有这样的存储器,这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你能把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。
有了这么一个构造,我们就能开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图3)。可是问题出来了,看图2,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就能自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不一样单元的控制线,就能向各单元写入不一样的数据了,同样,如果要某个单元中取数据,也只要打开对应的控制开关就行了。
2、存储器译码
那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种办法称这为译码,简单介绍一下:一根线能代表2种状态,2根线能代表4种状态,3根线能代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就能代表了。
(图4)
3、存储器的选片及总线的概念
至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件,如图4所示。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的管脚进来后,不直接接到各单元去,中间再加一组开关(参考图4 )就行了。平时我们让开关关闭着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。注意图4,读和写信号同时还接入到另一个存储器,但是由于片选端不一样,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不一样时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。
⑵ 单片机片内存储器和片外存储器的作用和概念
单片机片内存储器包括片内ROM和片内RAM,片内ROM用于存储程序代码,片内RAM包括寄存器和片内扩展RAM,比如STC的很多型号都有片内扩展EEPROM。
片外存储器包括片外ROM和片外RAM,片外ROM用户存储程序代码,片外RAM用于存储用户的可改写数据。
⑶ 单片机应用程序一般存放在哪一个存储器中
ROM。只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。
ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。ROM所存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。
(3)单片机与存储器扩展阅读
单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。
实际使用时应首先充分利用内部存储器,从使用角度讲,搞清内部数据存储器的结构和地址分配是十分重要的。因为将来在学习指令系统和程序设计时会经常用到它们。
8051内部数据存储器地址由00H至FFH共有256个字节的地址空间,该空间被分为两部分,其中内部数据RAM的地址为00H~7FH(即0~127)。
而用做特殊功能寄存器的地址为80H~FFH。在此256个字节中,还开辟有一个所谓“位地址”区,该区域内不但可按字节寻址,还可按“位(bit)”寻址。对于那些需要进行位操作的数据,可以存放到这个区域。从00H到1FH安排了四组工作寄存器,每组占用8个RAM字节,记为R0~R7。
⑷ 单片机里面的寄存器与存储器不同吗分别表示什么到底怎么区分
存储器里面有寄存器区和便戳区,寄存器区就是系统规定好了的跟内部功能有映射的RAM,通过修改寄存器来对系统功能和IO口进行操作,便戳区就是我们一般说的RAM了,也就是编程的时候往里面放你的数据和变量的地方。其实是一回事,都是RAM。
⑸ 单片机的程序存储器有哪些类型
单片机的程序存储器是专门用来存放程序和常数的,有掩模ROM、OTPROM、EPROM、FlashROM等类型。
掩模这种形式的程序存储器适用于成熟、大批量生产的产品,如彩色电视机等家电产品中的单片机。用户把应用程序代码交给半导体制造厂家,单片机在生产时,程序就被固化到芯片中,因此芯片一旦生产出来,程序就无法改变了。
采用EPROM的单片机具有可以灵活修改程序的优点,但存在需要紫外线擦除、较费时间的缺点。
在自己做试验或样机的研发阶段,推荐使用Flash单片机,它有电写入、电擦除的优点,使得修改程序很方便,可以提高开发速度。
对于初具规模的产品可选用0TP单片机,它不但能免去较长的产品掩膜时间,加快产品的上市时间,而且方便程序的修改,能够对产品进行及时的调整和升级。
程序存储器的容量可根据程序的大小确定。8位单片机片内程序存储器的最大容量能达到64KB,不够时还可以扩展。
⑹ 单片机中EEPROM,FLASH ROM存储器与ROM存储器有什么区别
存储器类型不同,二者都属于非易失存储器,EEPROM可擦写寿命更多,约5万次,FLASH只有10万次,但是速度更快。
⑺ MCS-51单片机片内256B的数据存储器可分为几个区分别起什么作用
MCS-51 单片机片内数据存储器可分为二个区: 00H~7FH 单元组成的低128B 的片内RAM区、80H ~FFH单元组成的高128B 的专用寄存器区。其中低128B的RAM区又分为: 00H~1FH 单元为工作寄存器区、20H~2FH 单元为位寻址区、30H~7FH单元为用户RAM区。
工作寄存器区可作通用寄存器用,用户RAM区可作堆栈和数据缓冲用。专用寄存器区又称特殊功能寄存器,使用80H~FFH单元。
(7)单片机与存储器扩展阅读
存储器空间在物理结构上可划分为:MCS-51存储器是采用将程序存储器和数据存储器分开寻址的结构,其存储器空间在物理结构上可划分为如下四个空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
MCS-51单片机的P0~P3四个I/O端口在结构上的异同以及使用时应注意的事项:MCS-51单片机的四个端口在结构上相同之处: P0~P3 都是准双向I/O 口,作输入时,必须先向相应端口的锁存器写入“1”。
不同之处;P0口的输出级与P1~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而P1~P3 则带内部上拉电阻,可以提供拉电流输出。
当P0口作通用I/O口输出使用时,需外接上拉电阻才可输出高电平;但作地址/数据总线时,不需要外接上拉电阻。P1~P3口IO输出时,均无需外接上拉电阻。
⑻ 单片机的存储器可以分为几种
单片机的存储器可分为程序存储器(ROM)和数据存储器(RAM)。
程序存储器是专门用来存放程序和常数的。
数据存储器是程序在运行中存放临时数据的,掉电后数据即丢失,现在有些型号的单片机提供了EEPROM,可用来存储掉电后需要保存的关键数据,如系统的一些设置参数。
⑼ 单片机与存储器
VCC,GND这个两个引脚是所有集成电路都要有的,它不能引起各类芯片的混淆,我用过的存储器芯片型号不多,感觉到它和单片机的直观区别应该是常见的51单片机一般都有晶振引脚XTAL1/XTAL2,而存储器没有。但如有用到不熟悉的芯片还是应该找到数据手册或参数才能应用。
⑽ 单片机存储器的介绍
存储器是单片机的又一个重要组成部分,图6给出了一种存储容量为256个单元的存储器结构示意图。其中每个存储单元对应一个地址,256个单元共有256个地址,用两位16进制数表示,即存储器的地址(00H~FFH)。存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。存储器的存储单元地址和存储单元的内容是不同的两个概念,不能混淆。