您的位置 首页 编程

MCS-51单片机底层作业原理剖析1

在大学学了2年的单片机,差不多也用了两年的单片机了,但是对其内部细致的工作原来还是有点模糊不清(可能平时的应用可以不涉及到底层工

在大学学了2年的单片机,差不多也用了两年的单片机了,可是对其内部详尽的作业本来仍是有点模糊不清(或许平常的使用能够不涉及到底层作业原理,大部分作业都让编译器和汇编器替咱们做了,这也阻止了咱们对底层作业原理的了解啊)。一向在不知其理的状态下开发了这么多年,心里有许多疑问,也有一种被架空的感觉。或许我比较喜爱结壮,所以一向想把内部原理搞了解,这儿总结了几点。

首要,咱们剖析一下单片机(一般处理器)的大致作业原理吧。咱们都学过简略的加法电路,计数电路,存储器读写电路和其它具有特定功用的时序电路,这些都是数字电路的时序电路课程中的简略的使用,咱们能够把单片机了解为由这些底子时序电路组合而成的较为杂乱的数字电路。在正常程序履行流程下,单片机在时钟时序的推进下PC主动计数,控制器依据PC值从程序存储器ROM中读取程序代码(一条指令的存储空间有或许占用一个字节,也有或许占用两个字节,最多占用三个字节),通进程序代码译码后能够得到详细的操作方法(如MOV操作)和操作数(如RO,R1)。

其次,咱们了解一下指令系统。咱们能够把单片机的一条指令了解为单片机支撑的可履行的一个小流程,当然这个流程是需求单片机内部工艺和硬件的支撑的(所以一般单片机指令系统的指令都是有限的,如51单片机支撑111条指令)。咱们能够了解成一个系列的单片机指令越多(当然这儿指的指令都是有意义的指令),单片机运转就会越灵敏越高效,当然这对单片机内部处理器硬件要求也越高,这也是限制单片机高效处理的要素之一,不过当下一些高端的单片机系列如ARM系列单片机在指令系统方面现已十分高效。

咱们都知道存储指令是需求存储空间的,也便是内部ROM,履行指令需求履行时间,也便是指令周期。关于51单片机中的111条指令最多占用三个字节的存储空间,指令最大的程序履行周期是四个时钟周期(即乘法和除法指令)。这儿的存储空间指的是汇编代码汇编成机器码后,机器码占用的存储空间。这儿咱们或许会考虑,一条机器语言必需要包括满足的信息,单片机才能够依据指令运转程序。如MOV ACC #0xff 关于这条句子有必要占用两个以上字节,因为数据“0xff”占用一个字节,还需求存储操作方法MOV和ACC两个信息。可是假如要对一个地址如0xffff赋一个0xffff的值,那这样了解不是要至少占用5个字节(4个字节别离存储操作地址和操作数,1个字节存储操作方法)。或许大师们一下看出了问题所在,不过最初我便是有这么考虑过。结合51指令系统底子没有直接进行将一个16位数赋值给一个16位地址的指令(我供认其时我想多了),这需求由许多指令组合完结操作,那内部存储方法也便是许多指令一同的存储方法了(或许远不止5个字节)。这也是指令系统的奇妙之处,他既要考虑存储空间,也要考虑履行周期,一起还要考虑指令功用的全面性。

在51系列单片机中指令中一个周期是能够一起读取两个字节的代码,这相对一个周期读取一个字节的方法来说必定程度上也减少了双字节指令的履行周期。因为读取三字节的指令至少占用两个周期,所以三字节指令履行周期有必要是两个周期及以上。


以上是各个指令对应的汇编指令码,机器码和机器履行周期,有助于了解指令的细节。

关于指令系统中不同指令是有不同的寻址方法的,这是单片机内部对数据处理的一套机制,任何其他操作都是建立在这套机制之上的。所以对指令系统的了解有助于对单片机内部的细节作业进程的了解和运用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/259424.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部