您的位置 首页 开关

51单片机指令周期,机器周期,时钟周期详解

51单片机有指令周期,机器周期,时钟周期的说法,看似相近,但是又都不太一样,很容易混淆。还是详细分析一下。时钟周期:单片机外…

51单片机指令周期机器周期时钟周期的说法,看似附近,可是又都不太相同,很简单混杂。仍是详细剖析一下。

时钟周期:单片机外接的晶振的振动周期便是时钟周期,时钟周期=振动周期。比方说,80C51单片机外接了一个11.0592M的晶体振动器,那咱们就说这个单片机体系的时钟周期是1/11.0592M,这儿要注意11.0592M是频率,周期是频率的倒数。

机器周期:单片机履行指令所耗费的最小时刻单位。咱们都知道51单片机选用的CISC(杂乱指令指令集),所以有很多条指令,而且各条指令履行的时刻也或许不相同(有相同的哦),可是它们履行的时刻有必要是机器周期的整数倍,这便是机器周期的含义地点。8051系列单片机又在这个基础上进行细分,将一个机器周期划分为6个状况周期,也便是S1-S6,每个状况周期又由两个节拍组成,P1和P2,而P1=P2=时钟周期。这也便是常常说的8051系列单片机的的时钟频率是晶振频率的12分频,或者是1/12,便是这个意思。现在(到2012)新的单片机现已能做到不分频了,便是机器周期=时钟周期。

指令周期:指令周期履行某一条指令所耗费的时刻,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也便是指令周期=机器周期,少部分是双周期指令。现在(到2012)新的单片机现已能做到不分频了,而且尽量单指令周期,便是指令周期=机器周期=时钟周期。

来看这张8051单片机外部数据,这儿ALE和$PSEN$的改变频率现已小于一个机器周期,假如运用C言语模仿这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延伸。
别的附上一篇:
原文链接:http://www.51c51.com/test/c51test/B21.htm

MCS-51单片机的指令时序

时序是用守时单位来描绘的,MCS-51的时序单位有四个,它们别离是节拍、状况、机器周期和指令周期,接下来咱们别离加以阐明。
·节拍与状况:
咱们把振动脉冲的周期界说为节拍(为便利描绘,用P表明),振动脉冲经过二分频后即得到整个单片机作业体系的时钟信号,把时钟信号的周期界说为状况(用S表明),这样一个状况就有两个节拍,前半周期相应的节拍咱们界说为1(P1),后半周期对应的节拍界说为2(P2)。
·机器周期:
MCS-51有固定的机器周期,规则一个机器周期有6个状况,别离表明为S1-S6,而一个状况包含两个节拍,那么一个机器周期就有12个节拍,咱们能够记取S1P1、S1P2……S6P1、S6P2,一个机器周期共包含12个振动脉冲,即机器周期便是振动脉冲的12分频,明显,假如运用6MHz的时钟频率,一个机器周期便是2us,而如运用12MHz的时钟频率,一个机器周期便是1us。
·指令周期:
履行一条指令所需求的时刻称为指令周期,MCS-51的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也便是说它们所需的机器周期不相同,或许包含一到四个不等的机器周期(这些内容,咱们将在下面的章节中加以阐明)。
·MCS-51的指令时序:
MCS-51指令体系中,按它们的长度可分为单字节指令、双字节指令和三字节指令。履行这些指令需求的时刻是不同的,也便是它们所需的机器周期是不同的,有下面几种方式:
·单字节指令单机器周期
·单字节指令双机器周期
·双字节指令单机器周期
·双字节指令双机器周期
·三字节指令双机器周期
·单字节指令四机器周期(如单字节的乘除法指令)
下图是MCS-51系列单片机的指令时序图:

上图是单周期和双周期取指及履行时序,图中的ALE脉冲是为了锁存地址的选通信号,明显,每呈现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有用,第一次在S1P2和S2P1期间,第2次在S4P2和S5P1期间。

接下来咱们别离对几个典型的指令时序加以阐明。
·单字节单周期指令:
单字节单周期指令只进行一次读指令操作,当第二个ALE信号有用时,PC并不加1,那么读出的仍是原指令,归于一次无效的读操作。
·双字节单周期指令:
这类指令两次的ALE信号都是有用的,仅仅第一个ALE信号有用时读的是操作码,第二个ALE信号有用时读的是操作数。
·单字节双周期指令:
两个机器周期需进行四读指令操作,但只要一次读操作是有用的,后三次的读操作均为无效操作。
单字节双周期指令有一种特别的状况,象MOVX这类指令,履行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有用,而第2次读指令操作则为无效的。在第二个指令周期时,则拜访外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。
上页的时序图中,咱们只描绘了指令的读取状况,而没有画出指令履行时序,由于每条指令都包含了详细的操作数,而操作数类型品种繁复,这儿不方便列出,有爱好的读者可参看有关书本。

·外部程序存储器(ROM)读时序
右图8051外部程序存储器读时序图,从图中可看出,P0口供给低8位地址,P2口供给高8位地址,S2完毕前,P0口上的低8位地址是有用的,之后呈现在P0口上的就不再是低8位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲的过度时刻,这就要求,在S2其间有必要把低8位的地址信号锁存起来,这时是用ALE选通脉冲去操控锁存器把低8位地址予以锁存,而P2口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有用的,因此无需锁存这一地址信号。
从外部程序存储器读取指令,有必要有两个信号进行操控,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲),上图明显可看出,PSEN从S3P1开端有用,直到将地址信号送出和外部程序存储器的数据读入CPU后刚才失效。而又从S4P2开端履行第二个读指令操作。
·外部数据存储器(RAM)读时序
右图8051外部数据存储器读写时序图,从ROM中读取的需履行的指令,而CPU对外部数据存储的拜访是对RAM进行数据的读或写操作,归于指令的履行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是类似的,咱们只对RAM的读时序进行剖析。
上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开端读取外部数据存储器RAM中的内容。
在S4完毕后,先把需读取RAM中的地址放到总线上,包含P0口上的低8位地址A0-A7和P2口上的高8位地址A8-A15。当RD选通脉冲有用时,将RAM的数据经过P0数据总线读进CPU。第二个机器周期的ALE信号依然呈现,进行一次外部ROM的读操作,可是这一次的读操作归于无效操作。
对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据经过P0数据总线写入外部存储

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部