转载单片机的背后

Andrew_qian Andrew_qian     2022-09-22     703

关键词:

我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?

 

 

技术分享

 

这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。下面介绍几个基本概念。

 

 

1、数的本质和物理现象

 

 

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

 

请大家自己写上3盏灯的情况000 001 010 011 100 101 110 111我们来看,这个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)。

 

 

存储器的工作原理

存储器构造

技术分享

 

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

 

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

 

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

 

 

存储器译码

 

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

 

 

存储器的选片及总线的概念

 

至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用从什么地方来的呢?它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是0FFH另一个存储器的单元是00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害了?所以我们要让它们分离。

 

办法当然很简单,当外面的线接到集成电路的引脚进来后,不直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片,然后发出写信号,开关就合上了,并将传过来的数据(电荷)写入片中。

 

如果要读,先选中该片,然后发出读信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片选端不同,所以虽有读或写信号,但没有片选信号,所以另一个存储器不会“误会”而开门,造成冲突。那么会不同时选中两片芯片呢?只要是设计好的系统就不会,因为它是由计算控制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故障了,这不在我们的讨论之列。

 

从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件大家共用的,所以我们称之为数据总线,总线英文名为BUS,总即公交车道,谁也可以走。而十六根地址线也是连在一起的,称之为地址总线。

转载googlemediapipe:设备端机器学习完整解决方案背后的技术实现(代码片段)

PS:原文地址:https://aijishu.com/a/1060000000359284上周TFLite社区举办了一场名为**《On-DeviceMachineLearningSolutionwithMediaPipe》的分享活动**,分享嘉宾是来自GoogleMediaPipe的JiuqiangTang,恰巧前不久谷歌开发者大会也有相关活动对Medi 查看详情

转载googlemediapipe:设备端机器学习完整解决方案背后的技术实现(代码片段)

PS:原文地址:https://aijishu.com/a/1060000000359284上周TFLite社区举办了一场名为**《On-DeviceMachineLearningSolutionwithMediaPipe》的分享活动**,分享嘉宾是来自GoogleMediaPipe的JiuqiangTang,恰巧前不久谷歌开发者大会也有相关活动对MediaP... 查看详情

成功的背后

转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人。  凌晨两点半,早已习惯了一个人坐在电... 查看详情

elasticsearch腾讯elasticsearch海量规模背后的内核优化剖析

1.概述转载:腾讯Elasticsearch海量规模背后的内核优化剖析 查看详情

51单片机入门led点亮的背后(代码片段)

上一节提到了51单片机开发环境的搭建,这节我们开始正式进入51单片机的学习——点亮LED。所有的控制类芯片学习的第一个实践就是点亮LED,这是最简单、最基本的操作,但这个实现过程却可能攘括了单片机的整个... 查看详情

unityshaders初探surfaceshader背后的机制

转载请注明出处:http://blog.csdn.net/candycat1992/article/details/39994049写在前面一直以来,UnitySurfaceShader背后的机制一直是刚開始学习的人为之困惑的地方。UnitySurfaceShader在Unity3.0的时候被开放给公众使用。其宣传手段也是号称让所有人... 查看详情

人际压力背后的原因是什么?

https://www.douban.com/note/604605605/版权归作者所有,任何形式转载请联系作者。作者:问问的心理空间(来自豆瓣)来源:https://www.douban.com/note/604605605/我们常常感受到人际交往的压力,别人一句不友好的话,模棱两可的态度,一个... 查看详情

成功的背后!(给所有it人)

 转载:来自CSDN第一名博主:http://blog.csdn.NET/phphot/article/details/2187505 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人。  凌晨两点半,早已习惯了一个... 查看详情

微信支付商户系统架构背后的故事

版权声明:本文由李跃森原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/142来源:腾云阁 https://www.qcloud.com/community 李跃森,腾讯云PostgreSQL首席架构师,腾讯数据库团队架构师,负责微信支... 查看详情

转载:reactor模式学习

...论上理解的更深刻了,也没有实际使用经验。那就。。。转载一些文章:1.转载自并发编程网–ifeve.com本文链接地址: http://ife 查看详情

转载串口中怎样接收一个完整数据包的解析

...种包机制同时也可以用于SPI,I2C的总线下的数据传输。在单片机通信系统(多机通信以及PC与单片机通信)中,是很常见的问题。一、根据帧头帧尾或者帧长检测一个数据帧1、帧头+数据+校验+帧尾这是一个典型的方案,但是对帧... 查看详情

3.3-5v(转载)

 当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十分简单,仅由3个电阻加一个MOS管构... 查看详情

文智背后的奥秘系列篇——情感分类

版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/92来源:腾云阁 https://www.qcloud.com/community 情感分类是对带有感情色彩的主观性文本进行分析、推理的过程,即分析对... 查看详情

月活8.89亿背后:微信工程师细数兼容测试经验

作者:曾夏,微信客户端测试开发商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 原文链接:http://wetest.qq.com/lab/view/306.html2017年4月,企鹅智酷公布了最新的《2017微信用户&生态研究报告》。报告数据显示,... 查看详情

转载zookeeper的学习与运用

引子云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群。服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信息如何推送到各个节点?并... 查看详情

全球wannacry勒索病毒爆发背后的技术漏洞

转载文章请注明作者和二维码及全文信息。5月12日晚,新型“蠕虫式”勒索病毒软件WannaCry在全球爆发,攻击各国政府,学校,医院等网络。我国众多行业大规模受到感染,其中教育网受损最为严重,攻击造成大量教学系统瘫痪... 查看详情

文智背后的奥秘系列篇——结构化抽取平台

版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/91来源:腾云阁 https://www.qcloud.com/community 随着大数据时代的到来,一个大规模生成、分享、处理以及应用数据的时代... 查看详情

华为5g开关被取消,背后的真相是...

本文转载自IT之家这两天,华为因为5G快捷开关的事情,又冲上热榜了。事情的起因,来源于华为李小龙的一段话。他表示华为受到了运营商方面的压力,因此不得不取消了5G的快捷开关。所谓的5G快捷开关,就... 查看详情