找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 89519|回复: 146
收起左侧

3课:单片机存储器结构

  [复制链接]
ID:1 发表于 2013-5-21 02:44 | 显示全部楼层 |阅读模式

单片机内部存储结构分析
   我们来思考一个问题,当我们在编程器中把一条指令写进单片要内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。

   数的本质和物理现象:我们知道,计算机能进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么能进行数学运算呢?我们做数学题如37+45是这样做的,先在纸上写37,然后在下面写45,然后大脑运算,最后写出结果,运算的原材料:37、45和结果:82都是写在纸上的,计算机中又是放在什么地方呢?为了解决这个问题,先让我们做一个实验:这里有一盏灯,我们知道灯要么亮,要么不亮,就有两种状态,我们能用’0’和’1’来代替这两种状态,规定亮为’1’,不亮为’0’。现在放上两盏灯,一共有几种状态呢?我们列表来看一下:

状态
表达
0 0
0 1
1 0
1 1

  请大家自已写上3盏灯的情况000 001 010 011 100 101 110 111

  我们来看,这个000,001,101 不就是我们学过的的二进制数吗?本来,灯的亮和灭只是一种物理现象,可当我们把它们按一按的次序排更好后,灯的亮和灭就代表了数字了。让我们再抽象一步,灯为什么会亮呢?看电路1,是因为输出电路输出高电平,给灯通了电。因此,灯亮和灭就能用电路的输出是高电平还是低电平来替代了。这样,数字就和电平的高、低联系上了。(请想一下,我们还看到过什么样的类似的例程呢?(海军之)灯语、旗语,电报,甚至红、绿灯)

什么是位: 
  通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,能代表两种状态: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根线就能代表了。

半导体存储器的分类

  按功能能分为只读和随机存取存储器两大类。所谓只读,从字面上理解就是只能从里面读,不能写进去,它类似于我们的书本,发到我们手回之后,我们只能读里面的内容,不能随意更改书本上的内容。只读存储器的英文缩写为ROM(READ ONLY MEMORY)

所谓随机存取存储器,即随时能改写,也能读出里面的数据,它类似于我们的黑板,我能随时写东西上去,也能用黑板擦擦掉重写。随机存储器的英文缩写为RAM(Random Access Memory)这两种存储器的英文缩写一定要记牢。

注意:所谓的只读和随机存取都是指在正常工作情况下而言,也就是在使用这块存储器的时候,而不是指制造这块芯片的时候。不然,只读存储器中的数据是怎么来的呢?其实这个道理也很好理解,书本拿到我们手里是不能改了,能当它还是原材料——白纸的时候,当然能由印刷厂印上去了。

顺便解释一下其它几个常见的概念

  PROM,称之为可编程存储器。这就象我们的练习本,买来的时候是空白的,能写东西上去,可一旦写上去,就擦不掉了,所以它只能用写一次,要是写错了,就报销了。(现在已经被淘汰)

  EPROM,称之为紫外线擦除的可编程只读存储器。它里面的内容写上去之后,如果觉得不满意,能用一种特殊的办法去掉后重写,这就是用紫外线照射,紫外线就象“消字灵”,能把字去掉,然后再重写。当然消的次数多了,也就不灵光了,所以这种芯片能擦除的次数也是有限的——几百次吧。(现在已经被淘汰)

   EEPROM,也叫 E2PROM称之为电可擦可编程只读存储器,它和EEPROM类似,写上去的东西也能擦掉重写,但它要方便一些,不需要光照了,只要用电就能擦除或者重新改写数据,所以就方便许多,而且寿命也很长(几万到几十万次不等)。

  FLASH,称之为闪速存储器,属于EEPROM的改进产品,它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。FLASH现在常用于大容量存储,比如u盘

  再次强调,这里的所有的写都不是指在正常工作条件下。不管是PROM还是EPROM,它们的写都要有特殊的条件,一般我们用一种称之为“编程器”的设备来做这项工作,一旦把它装到它的工作位置,就不能随便改写了。


下一课:4课:第一个单片机小程序

评分

参与人数 10黑币 +78 收起 理由
陆少 + 12
17314504393 + 30 赞一个!
marry;me + 5 赞一个!就是汇编现在用的不多了
zycwswws + 5
phoenix_me + 5 绝世好帖!
hongfa1000 + 1
wodetianna + 5 赞一个!
G·暖途 + 5 赞一个!
chen_zhouge + 5 赞一个!
msifortinet + 5 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:50462 发表于 2013-5-21 10:59 | 显示全部楼层

回帖奖励 +1

前几年学过,都忘记了。这资料不错,谢谢!
回复

使用道具 举报

ID:50551 发表于 2013-5-25 18:10 | 显示全部楼层
了解很多
回复

使用道具 举报

ID:50805 发表于 2013-6-8 07:38 | 显示全部楼层
能不能多给一些具体的例子,地址分配这一块总该觉比较模糊
回复

使用道具 举报

ID:52939 发表于 2013-8-11 16:30 | 显示全部楼层
受益匪浅啊   感谢楼主
回复

使用道具 举报

ID:52654 发表于 2013-8-18 10:35 | 显示全部楼层
比喻很形象{:soso_e179:}
回复

使用道具 举报

ID:53820 发表于 2013-8-31 09:15 | 显示全部楼层
谢谢分享!!!!!
回复

使用道具 举报

ID:54965 发表于 2013-9-11 22:04 | 显示全部楼层
一天看一点
回复

使用道具 举报

ID:57069 发表于 2013-11-19 23:42 | 显示全部楼层
这资料很好啊,通俗易懂,比看枯燥的专业书有意思多了。
回复

使用道具 举报

ID:58037 发表于 2013-12-19 16:54 | 显示全部楼层
收益,非常感谢此论坛的帮助!
回复

使用道具 举报

ID:58111 发表于 2013-12-22 15:33 来自手机 | 显示全部楼层
谢谢楼主,个人觉得你写的比那书写的还好
回复

使用道具 举报

ID:58263 发表于 2013-12-26 22:24 | 显示全部楼层
这节很重要
回复

使用道具 举报

ID:59436 发表于 2014-3-5 15:30 | 显示全部楼层
很好,学习了,谢谢
回复

使用道具 举报

ID:59987 发表于 2014-4-5 11:20 | 显示全部楼层
像楼主这样的高人才配做大学老师,现在的大学老师上课一点都没有趣味,只知道照本宣科PPT 都睡着了,原本美好的单片机学习兴趣就是被大学老师磨砂了...
回复

使用道具 举报

ID:60228 发表于 2014-4-18 10:41 | 显示全部楼层
学习了,thanks。
回复

使用道具 举报

ID:61875 发表于 2014-5-15 14:56 | 显示全部楼层
感谢楼主学习了。
回复

使用道具 举报

ID:62343 发表于 2014-5-28 17:30 | 显示全部楼层
有些懵!!
回复

使用道具 举报

ID:61153 发表于 2014-6-5 22:39 | 显示全部楼层
又学到了
回复

使用道具 举报

ID:63013 发表于 2014-6-16 22:10 | 显示全部楼层
楼主好强大真的
回复

使用道具 举报

ID:63647 发表于 2014-7-5 21:39 来自手机 | 显示全部楼层
感谢楼主,比我在教材上学习好多了,一点都不乏味
回复

使用道具 举报

ID:64206 发表于 2014-7-21 15:51 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:64075 发表于 2014-7-21 16:34 | 显示全部楼层
Good,good。
回复

使用道具 举报

ID:64543 发表于 2014-7-29 19:50 | 显示全部楼层
这资料不错,谢谢!
回复

使用道具 举报

ID:64575 发表于 2014-8-1 13:14 | 显示全部楼层
太棒了
回复

使用道具 举报

ID:64634 发表于 2014-8-4 16:12 | 显示全部楼层
初学者,先学单片机还是先学C语言?
回复

使用道具 举报

ID:65477 发表于 2014-8-29 13:51 | 显示全部楼层
要是四年前我知道这个论坛该多好啊,现在都毕业了
回复

使用道具 举报

ID:65592 发表于 2014-9-9 22:54 | 显示全部楼层
学习了....
回复

使用道具 举报

ID:66453 发表于 2014-9-21 18:52 | 显示全部楼层
楼主厉害
回复

使用道具 举报

ID:66955 发表于 2014-10-4 16:55 | 显示全部楼层
这资料很好啊,通俗易懂,比看枯燥的专业书有意思多了。
回复

使用道具 举报

ID:68700 发表于 2014-11-12 16:21 | 显示全部楼层
通俗易懂,好!
回复

使用道具 举报

ID:67837 发表于 2014-12-15 15:26 | 显示全部楼层
初学者,跟您学习啦
回复

使用道具 举报

ID:70525 发表于 2014-12-16 12:04 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:70104 发表于 2014-12-20 12:17 | 显示全部楼层
认真学习中
回复

使用道具 举报

ID:72978 发表于 2015-1-29 21:54 | 显示全部楼层
大学的时候很喜欢汇编,对这些搞得很清楚,好多年不用了,都忘完了
回复

使用道具 举报

ID:69497 发表于 2015-2-1 16:26 | 显示全部楼层
清晰明了。学习了
回复

使用道具 举报

ID:73847 发表于 2015-2-24 15:27 | 显示全部楼层
谢谢分享,要好好学习。
回复

使用道具 举报

ID:75710 发表于 2015-3-30 19:59 | 显示全部楼层
细致解析,赞一个
回复

使用道具 举报

ID:64888 发表于 2015-4-5 22:58 来自手机 | 显示全部楼层
形象生动!
回复

使用道具 举报

ID:74408 发表于 2015-4-9 20:15 | 显示全部楼层
写的太好了!看了不少的资料,重来没发现讲的这么通俗易懂的!楼主辛苦另了!期望出来更多更好的类似的教程
回复

使用道具 举报

ID:76437 发表于 2015-4-10 17:17 | 显示全部楼层
这套课程可不可以打包下载
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表