导师精讲系列-单片机存储器的选片及总线的概念
导师精讲系列-单片机存储器的选片及总线的概念
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
一、单片机内部结构分析
我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即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,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会。感谢阅读。比心。
导师精讲系列-单片机存储器的选片及总线的概念相关推荐
- easypoi 语法_高中语法精讲系列七丨高中英语八大语法之“名词性从句”要点归纳...
在句子中起名词作用的从句叫名词性从句,包括主语从句.宾语从句.表语从句和同位语从句. 一. 主语从句 在句子中充当主语的从句叫主语从句,通常由从属连词(that, whether)和连接代词(what ...
- 高薪程序员面试题精讲系列02之高薪面试经验分享
前言 我前面给各位说过,截止到现在,一一哥 已经培养了1000+的学生,现在这些学生都已经在很多行业的各个公司进行Java开发,他们都是从IT行业的门外汉成为了月薪过万的程序员,通过学习改变了自己的人 ...
- 华为路由交换精讲系列⑦:super密码配置 密码重置与破解 权限级别 [肖哥]视频课程-肖宗鹏-专题视频课程...
华为路由交换精讲系列⑦:super密码配置 密码重置与破解 权限级别 [肖哥]视频课程-587人已学习 课程介绍 华为路由器.交换机配置 单个技术详细介绍.本课程是一个系列,每个系列讲 ...
- 高薪程序员面试题精讲系列152之电商专题(中)-SPU是怎么回事?SPU如何设计?SKU又是什么呢?SN你知道吗?
一. 面试题及剖析 1. 今日面试题 你做过电商项目吗? SKU怎么设计? SPU如何设计实现? 2. 题目剖析 在前两篇文章中,壹哥给大家介绍了电商相关的一些背景知识,以及购物车的业务实现.如果你还 ...
- 高薪程序员面试题精讲系列72之死锁产生的原因及解决办法,如何定位死锁产生的位置?
一. 面试题及剖析 1. 今日面试题 如何保证线程的安全? 如何保证线程的有序性? 线程死锁是怎么产生的? 如何解决线程死锁? 如果生产环境的项目产生了死锁如何定位? 2. 题目剖析 在前两篇文章中, ...
- 高薪程序员面试题精讲系列68之可重入锁、公平锁、自旋锁是怎么回事?
一. 面试题及剖析 1. 今日面试题 除了synchronized与Lock,你还了解哪些锁? 可重入锁与不可重入锁有什么区别? 你了解公平锁吗? 什么是自旋锁? 2. 题目剖析 壹哥 在上一篇文章中 ...
- 高薪程序员面试题精讲系列101之如何对数据库进行优化(下)?
一. 面试题及剖析 1. 今日面试题 如何对数据库进行优化? 说说你是怎么进行数据库优化的? 2. 题目剖析 壹哥在前2篇文章中给大家讲了数据库优化的上部分和中间部分的内容,今天这篇文章我会继续讲解数 ...
- 视频教程-Javascript - Es6之Promise精讲系列-JavaScript
Javascript - Es6之Promise精讲系列 全栈开发工程师,现职于北京一家学院的全栈教学主任. 8年前端开发经验.4年移动端开发经验.4年UI设计经验.3年一线教学经验. 精通Node. ...
- Exchange Server 2010精讲系列课程-王进-专题视频课程
Exchange Server 2010精讲系列课程-1935人已学习 课程介绍 Exchange Server 认证采用微软新一代的MCTS&MCITP;认证体系,基础的认证 ...
最新文章
- autoware中的交通灯识别(八)
- 爬取数据解决方案- 每页打开+单个查询
- Python实现九九乘法表
- 得到singleton类?
- emacs中安装markdown-mode
- java8 stream index_Java8的stream用法整理
- Node.js 和 Python之间如何进行选择?教你一招搞定
- 极力推荐收藏的几个高清免费图片素材网站
- Haproxy服务监控
- 贝叶斯公式和贝塔(beta)分布
- MIT License探讨
- 【ROS】C++编程
- ACT技能编辑器的制作经验
- 以太网UDP数据协议
- vm安装中标麒麟v7.0
- 数据结构 - 逻辑结构和存储结构
- python求矩阵特征值和特征向量_特征值,特征向量,标准正交向量组与numpy
- vue预览pdf、docx、xlsx文件
- mac电脑更改鼠标大小
- 惠头条自媒体怎么选择领域,惠头条如何爆文
热门文章
- 可视化绘制html,Python3.7 通过html绘制数据可视化图表
- 富士康的造车梦,告别“代工厂”的最后机会
- mail.smtp.auth.ntlm.domain
- 10种Python聚类算法完整操作示例(建议收藏
- stickup效果的实现
- 简笔画教程——设计简宝玉+简黛玉(干货)
- matlab中将scope图转换为figure图
- 反编译修改代码 破坏计算机系统,应急反编译修改C#编写的exe文件
- 配置windows静态IP
- fdu soe_设计SoE生态系统以支持丰富的用户体验