单片机的工作时序

时钟电路用于产生单片机工作所需要的时钟信号,控制单片机按照一定的节拍运行,时序规定了指令执行过程中各控制信号之间的相互关系。在时钟信号的控制作用下,单片机就是一个复杂的同步时序电路,严格地按照规定的时序进行工作。
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指令执行时序