89c51 CPU时序
2019-02-18 来源:eefocus
89C51系列单片机和其他MCU一样,都是从Flash Rom中取指令和执行指令过程中的各种微操作,都是按着一定的节奏进行的。这是因为89c51单片机内有一个节奏发生器,即片内的震荡脉冲电路。
89c51的芯片内部有一个高增益的反相放大器,用于构成震荡器。反相放大器的输入端是XTAL1,输出端是XTAL2,两段之间接一个石英晶体和两个电容就构成了稳定的自激振荡器,电容c1、c2通常取30PF左右,可稳定频率并对震荡频率有微调作用。晶体振荡器的脉冲频率范围为Fsoc=0~24MHz。
振荡信号从XTAL2端输入到片内的时钟发生器上,如下图所示
1、节拍与状态周期
时钟发生器是一个2分频的触发器电路,它将振荡器的信号频率Fsoc除以2,向CPU提供两相时钟脉冲信号P1和P2。时钟信号的周期称为机器状态周期S(START),是振荡周期的2倍。在每个时钟周期(即机器状态周期S)的前半周期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2)信号有效。每个机器周期有两个节拍P1和P2,CPU就以两相时钟P1和P2为基本节拍指挥单片机各部件协调工作。
2、机器周期和指令周期
计算机的一条指令由若干个字节组成。执行一条指令需要的时间则需要以机器周期为单位。一个机器周期是指CPU访问存储器一次(如取指令,读存储器,写存储器等)所需要的时间。
89c51的一个机器周期包括12个振荡周期,分为6个S状态:S1-S6。每个状态又分为两拍,称为P1和P2。因此,一个周期中的12振荡周期表示为S1P1、S1P2、S2P1...S6P2。若采用频率为6MHz晶体振荡器,则每个机器周期恰好为2us(12/6)。
每条指令都由一个或几个机器周期组成,在89c51系统中4周期指令只有乘除两条指令,其余都是单周期或者双周期。
3、基本时序定时单位
89c51的基本时序定时单位有如下4个
(一)振荡周期:晶体的振荡周期,为最小的时序单位。
(二)状态周期:振荡频率经过单片机内部的二分频电路分频后提供给片内cpu的时钟周期,一个状态周期包含两个振荡周期
(三)机器周期:一个机器周期由6个状态周期(12个机器周期)组成,是单片机执行基本操作的一种时间单位
(四)指令周期:执行一条指令所需的时间,一个机器周期由1~4个机器周期组成。
上一篇:89c51单片机流水灯操作
下一篇:基于单片机的智能密码锁