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)新的单片机现已能做到不分频了,而且尽量单指令周期,便是指令周期=机器周期=时钟周期。
MCS-51单片机的指令时序 时序是用守时单位来描绘的,MCS-51的时序单位有四个,它们别离是节拍、状况、机器周期和指令周期,接下来咱们别离加以阐明。 |
上图是单周期和双周期取指及履行时序,图中的ALE脉冲是为了锁存地址的选通信号,明显,每呈现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有用,第一次在S1P2和S2P1期间,第2次在S4P2和S5P1期间。 |
接下来咱们别离对几个典型的指令时序加以阐明。 |
·外部程序存储器(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数据总线写入外部存储 |