1、51单片机时钟电路原理2.4.2时钟电路和时序1.时钟电路在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如图2.11所示。 (a)内部方式时钟电路(b)外接时钟电路图2.11时钟电路 内部时钟原理图 (就是一个自激振荡电路) 在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz12MHz之间。对于外
2、接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。2.指令时序我们将单片机的基本操作周期称作机器周期,一个机器周期由6个状态组成,每个状态由两个时相P1和P2构成,故一个机器周期可依次表示为S1P1,S1P2
3、,S6P1,S6P2,即一个机器共有12个振荡脉冲。为了大家便于分析CPU的时序,在此先对以下几个概念作一介绍。(1)振荡周期振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。(2)时钟周期时钟周期又称作状态周期或状态时间S,它是振荡周期的两倍,它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存器之间的传送操作。(3)机器周期 一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。(4)指令周期 指令周期即执行一条指令所占用的全部时间,通常为14
4、个机器周期。在图2.12中给出了MCS51单片机的典型取指、执行时序。由图可知,在每个机器周期内,地址锁存信号ALE两次有效,一次在S1P2与S2P1之间,另一次在S4P2和S5P1之间。 图2.12MCS51单片机取指、执行时序从图2.12我们可以看出,对于单周期指令,当操作码被送入指令寄存器后,指令的执行从S1P2开始。若对于双字节单周期指令,则在同一机器周期的S4期间读入第二个字节。如果是单字节单周期指令,则在S4期间仍然保持读操作,但所进行的读操作为无效操作,同时程序计数器PC并不加1。在图2.12(a)和(b)给出了单字节单周期和双字节单周期指令的时序,这些操作都在S6P2结束时完成指令操作。在图2.12(c)中给出了单字节双周期指令时序,在两个机器周期内进行了四次读操作,由于是单字节指令,故后面的三次读操作是无效的。在图2.12(d)中给出了访问外部数据存储器指令MOVX的时序,它是一条单字节双周期指令。在执行MOVX指令期间,外部数据存储器被访问且选通时跳过两次取指操作,其中在第一个机器周期S5开始送出片外数据存储器的地址后,进行读、写数据,在此期间并无ALE信号,故第二周期不产生取指操作。