时钟电路用于产生单片机工作所需要的时钟信号,控制单片机按照一定的节拍运行,时序规定了指令执行过程中各控制信号之间的相互关系。在时钟信号的控制作用下,单片机就是一个复杂的同步时序电路,严格地按照规定的时序进行工作。 AT89S52的时钟有两种方式,一种是片内时钟振荡方式,需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将XTAL2悬空,外部时钟信号从XTAL1脚输入。 一、机器周期和指令周期
振荡周期指为单片机提供定时信号的振荡源的周期,即晶体振荡器直接产生的振荡信号,用Tosc表示。振荡脉冲的周期也叫做节拍,用P表示。 时钟周期是振荡周期的两倍,是对振荡器2分频的信号。时钟周期又称状态周期,用S来表示,一个时钟周期,分为P1和P2两个节拍。P1节拍通常完成算术逻辑操作,P2节拍通常完成内部寄存器间数据的传递。 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。 AT89S52单片机的一个机器周期由6个S周期(状态周期)组成,即S1~S6。 指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。时钟周期、机器周期、指令周期之间的关系图如图1所示。 图1 AT89S52双周期指令的时序 综合以上分析,时序之间的关系如下: 振荡周期Tocs=1/fosc;fosc为振荡频率 时钟周期S=2Tosc; 机器周期=12Tosc; 指令周期=1~4个机器周期; 二、时序分析
图2给出了单片机的取指和执行指令的定时关系。在图中可看到,低8位地址的锁存信号ALE在每个机器周期中出现两次。对此时序说明如下: (1)第一个机器周期是ROM的取指时序。从第二个机器周期开始读外部RAM; (2)第一个机器周期的S4之后,为读外部RAM送出地址,其中包括P0的A7~A0,P2的A15~A8; (3)在第二个机器周期中,第一个ALE信号不再出现,但读选通有效,以进行RAM 读操作,然后从P0口把读出数据送单片机; (4)第二个机器周期的第二个ALE信号仍然出现,无取指操作。 图2 AT89S52指令执行时序 |