单片机的CPU以不同的方式执行各种指令,而不同的指令其功能各异,有的涉及内部寄存器,有的涉及单片机内部各功能部件,有的则与外部器件发生联系。事实上,单片机通过复杂的时序电路来完成不同的指令功能,都是在CPU控制的时序控制电路的控制下进行的,而各种时序均与时钟周期有关。因此,所谓时序是指控制器按照指令功能发出的一系列在时间上有严格次序的信号,控制和启动相应的逻辑电路,完成指令功能。为便于理解时序,先了解如下几个常用名词:
1)时钟周期Tosc:单片机提供时钟信号的振荡源周期,由外部晶振构成的振荡信号发生器产生的周期性信号,又称为振荡周期或外加振荡源周期。
2)状态周期Tsy:由两个时钟周期构成一个状态周期,用S表示。两个时钟周期分为两个节拍,分别称为P1节拍和P2节拍。
3)机器周期Tcy:CPU完成一个基本操作所需要的时间称为机器周期。单片机中常把执行一条指令的过程分为若干机器周期。每个机器周期由6个状态周期组成。每个状态周期又分成两个节拍P1和P2。所以,一个机器周期可以依次表示为S1P1、S1P2、…、S6P1、S6P2。通常算术逻辑操作在P1节拍进行,而内部寄存器之间的数据传送在P2节拍进行。
4)指令周期T:完成一条指令所需要的时间称为指令周期,它以机器周期为单位,是机器周期的整数倍。8051单片机大多数指令是单字节单机器周期指令,也有些单字节双机器周期指令、双字节单机器周期指令和双字节双机器周期指令,只有乘法和除法指令是单字节4个机器周期指令。
例如,若8051单片机外部晶振频率为fosc=6MHz时,则各个时间周期的计算为
时钟周期。
状态周期。
机器周期Tcy=6×Tsy=12×Tosc=12/fosc=2 μs。(www.xing528.com)
此时,如果执行乘法指令(MUL AB),则指令周期T=8μs。
图2-23所示是8051单片机的取指令和执行指令的时序图,这些内部时钟信号不可能从外部观察到,所以用XTAL2振荡信号作参考。从图中可看到,低8位地址的锁存信号ALE在每个机器周期中两次有效,一次在S1P2与S2P1期间,另一次在S4P2与S5P1期间。
对于单周期指令,当操作码被送入指令寄存器时,便从S1P2开始执行指令。如果是双字节单机器周期指令,则在同一机器周期的S4期间读入第二字节。若是单字节单机器周期指令,则在S4期间仍进行读,但所读的这字节操作码被忽略,PC程序计数器也不加1,在S6P2结束时完成指令操作。图2-23a、b给出了单字节单机器周期和双字节单机器周期指令的典型时序。
8051指令大部分在一个机器周期内执行完成。乘(MUL)和除(DIV)指令是仅有的需要2个以上机器周期的指令,占用4个机器周期。
对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入2个字节,唯有MOVX指令例外。MOVX是访问外部数据存储器的单字节双机器周期指令。在执行MOVX指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。图2-23c、d给出了单字节双机器周期指令的典型时序。
图2-23 8051单片机取指令和执行指令的时序
STC15W4K32S42系列单片机具有1T和12T两种工作模式,在12T模式下,CPU工作运行指令与传统8051相同;在1T模式下,单周期指令运行时间只要1个时钟周期,因此,CPU的运行速度提高了12倍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。