单片机是怎么知道要执行什么指令,做什么动作?

图片[1]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

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

中央处理器

图片[2]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

图片[3]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

图片[4]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

图片[5]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

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

加法器

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

半加器

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

图片[6]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

图片[7]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

全加器

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

图片[8]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

图片[9]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

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

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

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

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

登记

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

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

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

图片[10]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

1+0=1,

2+1=3,

3+3=6,

4+6=10…

闩锁

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

图片[11]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

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

图片[12]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

扳机

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

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

图片[13]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

时序电路

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

图片[14]-单片机是怎么知道要执行什么指令,做什么动作?-4747i站长资讯

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

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

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

运行程序

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

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

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

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

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

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

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

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

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

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

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

文章来源:http://baijiahao.baidu.com/s?id=1722122624899044501&wfr=spider&for=pc

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享