单片机CPU在执行指令时所需控制信号的时间顺序称之为时序。由时钟脉冲振动CPU时序电路产生控制信号序列。
1.名词解释
定量各时序信号的尺度有:时钟周期、机器周期、指令周期。
(1)时钟周期T定义为时钟脉冲频率的倒数,又称为振荡周期。
1)MCS-51系列单片机振荡电路OSC产生的时钟频率为12MHz时,时钟周期T为1/12μs。
2)时钟周期T是计算机的基本工作脉冲,是时序中最小的时间单位。
(2)机器周期 定义为实现特定功能所需的时间。由图2-13中可见。
1)MCS-51系列单片机的机器周期固定为12个时钟周期T组成。
2)每个机器周期分为6个状态:S1~S6。
3)每个状态分为2拍:P1、P2。
4)每个机器周期中的12个时钟周期可表示为S1P1、S1P2、S2P1、……、S6P2。
(3)指令周期 定义为执行一条指令所需的时间。
1)指令周期是时序中最大的时间单位,可包含1~4个机器周期。
2)可按机器周期对指令分类,有:单周期指令、双周期指令、四周期指令。MCS-51系列单片机的绝大部分指令是单周期指令或双周期指令,只有乘法和除法指令是四周期指令。
由上面的定义可知,若fosc=12MHz,则振荡周期为1/12μs,一个机器周期为1μs。若执行某条指令需要一个机器周期,则该指令的执行时间是1μs。
fosc不同,虽然执行同一条指令所需的机器周期数一样,但执行时间是不同的。当fosc=6MHz时,执行该单机器周期指令需要2μs的时间。
MCS-51系列单片机指令的时序如图2-13所示。从图中可以看出,ALE信号在一个机器周期出现两个脉冲,ALE的频率是fosc/6,经过分频后可作为其他电路的时钟信号(例如作为ADC的时钟)。但应注意,执行MOVX类指令时会扣除一个脉冲。
2.MCS-51系列单片机指令的时序
指令执行分两阶段:取指令阶段和执行指令阶段。(www.xing528.com)
(1)取指令阶段
每个机器周期出现两次ALE高电平信号(S1P2—S2P1、S4P2—S5P1),此时CPU可进行取指令操作。
(2)执行指令阶段 经译码操作,产生相应的控制信号。
按指令字节数和机器周期数,MCS-51系列单片机的111条指令可分为六类:单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令,其中几类的时序关系如下。
(1)单字节单周期指令 如“INC A”(机器码为04H)。
1)S1P2期间,在ALE配合下,根据PC指定的ROM位置读出机器码04H。
2)S4P2期间,在ALE配合下,根据PC+1指定的ROM位置读出下一个机器码××H。
3)S5S6期间,对机器码04H进行判断,确定是单字节指令,所以把下一个机器码××H舍弃,同时修正PC指针指向××H所处的单元,并且把要执行的指令锁存到指令寄存器中,指令译码,执行指令,在下一个机器周期开始前执行指令完毕。
(2)双字节单周期指令 如“ADD A,#16H”(机器码为2416H)。
1)S1P2期间,在ALE配合下,根据PC指定的ROM位置读出机器码24H。
2)S4P2期间,在ALE配合下,根据PC+1指定的ROM位置读出下一个机器码16H。
图2-13 MCS-51系列单片机指令的时序
a)单字节单周期指令 b)双字节单周期指令 c)单字节双周期指令
3)S5S6期间,对机器码24H进行判断,确定是双字节指令,所以把下一个机器码16H作为操作数,同时修正PC指针指向存放16H单元的下一个单元位置,并且把要执行的指令锁存到指令寄存器中,指令译码,执行指令,在下一个机器周期开始前执行指令完毕。
(3)单字节双周期指令 如“INC DPTR”(机器码0A3H)。
ALE的一次有效识读机器码,此后执行到第二周期末S6P2。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。