最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 单片机是怎么知道要执行什么指令,做什么动作?

    单片机将中央处理器(CPU)、存储和输入输出集成在一个芯片上。可以说,单片机就是微机,只是它的功能和我们平时用的电脑不一样,不是我们用的。像电脑一样强大。

    计算机可以一个一个地运行应用程序,单片机可以根据工程师的指令编写可执行文件来实现各种功能。那么,单片机是如何知道要执行什么指令,要做什么动作,我们的指令又是如何被单片机识别的呢?了解这个过程可以加深对单片机的理解。

    中央处理器

    首先,让我们从CPU的组成说起。CPU由晶体管组成。这些晶体管是半导体器件。例如,二极管是最常见的半导体器件。电流只能从正极流向负极,反向截止。

    晶体管通过各种组合形成门电路:与门、或门、非门、异或门等。门电路,也称为逻辑门,是数字电路、公共门电路及其真值表的基础:

    我们了解下一个与门电路:

    与门电路可以想象成两个开关串联控制一个灯泡,只有两个开关同时闭合,灯泡才会亮。开关代表三极管的通断,灯泡的通断代表电路输出的高低电平。

    其他门电路也由各种晶体管组成。不同的输入有不同的输出,形成各种功能。各种门电路通过复杂的组合成为CPU。然后使用CPU完成各种复杂的计算。

    加法器

    使用 CPU,让我们用它来计算一个小学算术问题 1+1=2,看看它是如何工作的,从一个简单的加法器开始,它由半加器组成。

    半加器

    半加器由与门和异或门组成。不管低位进位的进位值如何,只有两个输入和两个输出。

    1+1=2,2用二进制表示为0010。半加器中:异或门输入不同电平(不是同时为高或低),输出为高,即1+0或0+1,输出为1。当两个输入均为1时,输出为0。与门输出1,这是一个进位。可以抽象成一个黑盒子:

    全加器

    两个半加器可以用来组成一个全加器:

    多位相加时,可使用半加器将最低有效位相加,并给出进位数。第二位的加法有两个加数(B 和进位 CO),以及前一个低位的进位位 (A)。将这三个数字相加得到基数(全加器)和进位数。也可以抽象出来:

    这个黑盒是一个函数,它将两个加数作为输入,将它们相加,然后输出一个和。

    要计算多个数字的加法,需要多个全加器和其他门来组合更复杂的加法器。减法运算可以通过加法分解:

    减法:10 – 5 = 10 + (-5),必须通过补码、补码等运算完成。

    其他算子也是由相关的门电路组成,相关知识这里不展开。

    从加法器中不难得出,CPU的运行是各种门电路的高低电平的输入和输出。高电平为1,低电平为0。将我们常用的十进制数转换成二进制数进行输入输出。二进制数。

    登记

    两个数字的加法是通过全加器的组合完成的。如果是多个数字相加怎么办?比如1+2+3+4+5+…+100,怎么完成呢?

    按照我们的计算过程来看这个问题,我们先把前两个数拿出来相加,然后把得到的和加到第三个数上,依次加到100,再转换到单片机就完成了,然后把所有的和的和放入一个内存中,每次加法取出,每次加法的和保存,下次加法用寄存器。

    寄存器 1 保存数字 1-100,寄存器 2 保存每次加法的结果。计算1-100的加法,register-2的初值为0,register-1的个数和register-2的结果依次相加:

    1+0=1,

    2+1=3,

    3+3=6,

    4+6=10…

    闩锁

    但是寄存器如何帮助我们保存数据呢?这就是锁存器的用武之地。两个或非门构成了最简单的锁存器。

    简单地说,这个单元记住了之前S端的输入1,直到我们把R端设置为1,输出Q才变回0。

    然后给这个简单的锁存器加上一个控制端G和一个输入端D,就变成了一个D锁存器:

    它有两个输入端,一个用于信号控制G,一个用于输入数据信号D,一个用于输出Q。它的作用是在G有效时将D的值传给Q,也就是锁存的过程。

    扳机

    将两个 D 锁存器组合在一起成为 D 触发器(DATA 触发器)。触发器又称双稳态门,又称双稳态触发器,是一种可以工作在两种状态的数字逻辑电路。

    触发器保持其状态,直到它们接收到输入脉冲,也称为触发。常见的触发器有:RS触发器、D触发器、JK触发器,其中D触发器是最常用的。

    当latch-1控制G为有效信号时,将D的输入传给latch-2的输入,但此时latch-2的控制信号无效,所以latch-2的输出Q没变; 当latch-1的控制G变为无效时,latch-2的控制信号变为有效,latch-2的输出Q发生变化,即触发器的D输入传给Q,D保持不变无输入不变。

    时序电路

    我们来看看1-100的积累过程。如果 register-1 和 register-2 的存储速度不同,或者运算单元不协调,即 register-2 还没有来得及存储,或者 register-1 没有被取出。如果操作中涉及到一个数字,则当前操作会出错有关触发器寄存器的诗,会影响下一次操作。这种影响会被无限放大到后续的结果,而单片机还有很多外设需要同步运行。需要一个统一的命令来同步各个部分的动作,什么时候做什么,做什么。

    这个命令就是时钟。时钟电路产生一个脉冲信号给电路。可以认为,当给定一个脉冲信号时,单片机各部分动作有关触发器寄存器的诗,电路刷新,达到动作统一。在前面的D锁存器中,D触发器的G输入是时钟脉冲信号输入,它控制G输入信号,然后控制Q的输出,或者记住Q值。这就是记忆最初的样子。

    至此,我们知道寄存器是时序逻辑电路,但是这个时序逻辑电路只包含存储电路。寄存器的存储电路由锁存器或触发器组成,用于暂存运算所涉及的数据和运算结果。

    一个锁存器或触发器可以存储1位二进制数,所以N个锁存器或触发器可以组成一个N位寄存器,一般有8位寄存器、16位寄存器等。广泛应用于各种数字系统和计算机中。

    运行程序

    有了前面的铺垫,下面我们来分析一下代码是如何被单片机识别并转化为功能输出的。

    首先,工程师编写代码逻辑,然后编译成单片机的可执行程序。这个可执行程序实际上变成了一个按一定规则排列的0和1组成的二进制数,然后用编程器将其写入单片机。

    单片机内部是由我们前面学过的门电路的各种组合组成的,门电路也是由半导体器件组成的。这些半导体PN结是一种特殊的保险丝。空白单片机内部是保险丝矩阵。烧录过程中,程序中的0位被烧毁,1位开启。编程后,单片机具有逻辑功能。

    程序执行过程:从程序存储区读取程序指令——分析指令——执行指令。

    读指令:就是根据程序计算器(PC)的地址取出相应的指令,送入指令寄存器。

    分析指令:取指令寄存器中的指令操作码后解码,分析指令的性质。如果该指令是我们之前的加法操作中的加数,则查找加数的地址。

    指令的执行:无非是将二进制码转换成数字信号(高低电平),操作逻辑门电路,像我们的加法器一样输入输出。输出逻辑门运算的结果,微控制器的相关引脚电平输出高电平或低电平。

    也就是说,单片机上电,单片机处于初始状态。可以认为初始状态的程序计算器(PC)具有首指令地址。在时序电路的作用下,送入指令寄存器,分析指令,执行指令,输出。功能等等。这样,单片机就自动进入执行程序的过程。

    当然,单片机的运行过程是很复杂的,这里只是简单的个人理解和总结。

    快点!单芯片进入高级学习路径(带教程+工具)

    从晶体管到逻辑电路,从逻辑电路到单片机,从单片机到现在的计算机和超级计算机,是一个不断积累、不断进步的过程。你想让你的人生成为一个如此精彩的过程吗?找我收集资料,开始与导师一对一互动,进入进阶学习,成就精彩人生。

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 单片机是怎么知道要执行什么指令,做什么动作?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论