导师精讲系列-单片机存储器的选片及总线的概念

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

一、单片机内部结构分析

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

二、单片机几个基本概念

1、数的本质和物理现象

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

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

2、位的含义

通过上面的实验我们已经知道:一盏灯亮或者说一根线的电平的高低,可以代表两种状态:0和1。实际上这就是一个二进制位,因此我们就把一根线称之为一“位”,用BIT表示。

3、单片机字节的含义

一根线可以表示0和1,两根线可以表达00,01,10,11四种状态,也就是可以表达0到3,而三根可以表达0~7,计算机中通常用8根线放在一起,同时计数,就可以表示0-255一共256种状态。这8根线或者8位就称之为一个字节(BYTE)。

单片机存储器的工作原理

1、单片机存储器构造

单片机存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。

一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。

有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看上图右)。可是问题出来了,看上图右,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看上图右,在每个单元上有个控制线,我想要把数据放进哪个单元,就把一个信号给这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要从某个单元中取数据,也只要打开相应的控制开关就行了。

2、单片机存储器译码

那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512存储器中有65536个单元,把每根线都引出来,这个集成电路就得有6万多个脚?不行,怎么办?要想法减少线的数量。我们有一种方法称这为译码,简单介绍一下:一根线可以代表2种状态,2根线可以代表4种状态,3根线可以代表几种,256种状态又需要几根线代表?8种,8根线,所以65536种状态我们只需要16根线就可以代表了。

3、单片机存储器的选片及总线的概念

至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会。感谢阅读。比心。

导师精讲系列-单片机存储器的选片及总线的概念相关推荐

  1. easypoi 语法_高中语法精讲系列七丨高中英语八大语法之“名词性从句”要点归纳...

    在句子中起名词作用的从句叫名词性从句,包括主语从句.宾语从句.表语从句和同位语从句. 一. 主语从句 在句子中充当主语的从句叫主语从句,通常由从属连词(that, whether)和连接代词(what ...

  2. 高薪程序员面试题精讲系列02之高薪面试经验分享

    前言 我前面给各位说过,截止到现在,一一哥 已经培养了1000+的学生,现在这些学生都已经在很多行业的各个公司进行Java开发,他们都是从IT行业的门外汉成为了月薪过万的程序员,通过学习改变了自己的人 ...

  3. 华为路由交换精讲系列⑦:super密码配置 密码重置与破解 权限级别 [肖哥]视频课程-肖宗鹏-专题视频课程...

    华为路由交换精讲系列⑦:super密码配置 密码重置与破解 权限级别 [肖哥]视频课程-587人已学习 课程介绍         华为路由器.交换机配置 单个技术详细介绍.本课程是一个系列,每个系列讲 ...

  4. 高薪程序员面试题精讲系列152之电商专题(中)-SPU是怎么回事?SPU如何设计?SKU又是什么呢?SN你知道吗?

    一. 面试题及剖析 1. 今日面试题 你做过电商项目吗? SKU怎么设计? SPU如何设计实现? 2. 题目剖析 在前两篇文章中,壹哥给大家介绍了电商相关的一些背景知识,以及购物车的业务实现.如果你还 ...

  5. 高薪程序员面试题精讲系列72之死锁产生的原因及解决办法,如何定位死锁产生的位置?

    一. 面试题及剖析 1. 今日面试题 如何保证线程的安全? 如何保证线程的有序性? 线程死锁是怎么产生的? 如何解决线程死锁? 如果生产环境的项目产生了死锁如何定位? 2. 题目剖析 在前两篇文章中, ...

  6. 高薪程序员面试题精讲系列68之可重入锁、公平锁、自旋锁是怎么回事?

    一. 面试题及剖析 1. 今日面试题 除了synchronized与Lock,你还了解哪些锁? 可重入锁与不可重入锁有什么区别? 你了解公平锁吗? 什么是自旋锁? 2. 题目剖析 壹哥 在上一篇文章中 ...

  7. 高薪程序员面试题精讲系列101之如何对数据库进行优化(下)?

    一. 面试题及剖析 1. 今日面试题 如何对数据库进行优化? 说说你是怎么进行数据库优化的? 2. 题目剖析 壹哥在前2篇文章中给大家讲了数据库优化的上部分和中间部分的内容,今天这篇文章我会继续讲解数 ...

  8. 视频教程-Javascript - Es6之Promise精讲系列-JavaScript

    Javascript - Es6之Promise精讲系列 全栈开发工程师,现职于北京一家学院的全栈教学主任. 8年前端开发经验.4年移动端开发经验.4年UI设计经验.3年一线教学经验. 精通Node. ...

  9. Exchange Server 2010精讲系列课程-王进-专题视频课程

    Exchange Server 2010精讲系列课程-1935人已学习 课程介绍         Exchange Server 认证采用微软新一代的MCTS&MCITP;认证体系,基础的认证 ...

最新文章

  1. autoware中的交通灯识别(八)
  2. 爬取数据解决方案- 每页打开+单个查询
  3. Python实现九九乘法表
  4. 得到singleton类?
  5. emacs中安装markdown-mode
  6. java8 stream index_Java8的stream用法整理
  7. Node.js 和 Python之间如何进行选择?教你一招搞定
  8. 极力推荐收藏的几个高清免费图片素材网站
  9. Haproxy服务监控
  10. 贝叶斯公式和贝塔(beta)分布
  11. MIT License探讨
  12. 【ROS】C++编程
  13. ACT技能编辑器的制作经验
  14. 以太网UDP数据协议
  15. vm安装中标麒麟v7.0
  16. 数据结构 - 逻辑结构和存储结构
  17. python求矩阵特征值和特征向量_特征值,特征向量,标准正交向量组与numpy
  18. vue预览pdf、docx、xlsx文件
  19. mac电脑更改鼠标大小
  20. 惠头条自媒体怎么选择领域,惠头条如何爆文

热门文章

  1. 可视化绘制html,Python3.7 通过html绘制数据可视化图表
  2. 富士康的造车梦,告别“代工厂”的最后机会
  3. mail.smtp.auth.ntlm.domain
  4. 10种Python聚类算法完整操作示例(建议收藏
  5. stickup效果的实现
  6. 简笔画教程——设计简宝玉+简黛玉(干货)
  7. matlab中将scope图转换为figure图
  8. 反编译修改代码 破坏计算机系统,应急反编译修改C#编写的exe文件
  9. 配置windows静态IP
  10. fdu soe_设计SoE生态系统以支持丰富的用户体验