时钟周期:
时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般由外部的晶振产生,比如,12MHZ = 12*10^6,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期(时钟脉冲的倒数),也就是1/12微秒,通常也叫做系统时钟周期,是计算机中最基本,最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作,对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1微秒,若采用4MHZ的时钟频率,则周期为250毫秒,由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏,使计算机每一步都统一到它的步调上来,显然,对于同一种机型的计算机,时钟频率越高,计算机的工作速度就越快,但是,由于不同的计算机硬件电路和器件不完全相同,所以其所需的时钟频率范围也不一定相同。我们学的C51单片机的时钟频率范围是1.2MHZ~12MHZ。在8051单片机中把一个时钟周期定义为一个节拍(用P表示),两个节拍定义为一个状态周期(用S表示)。
机器周期:
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每个阶段完成一项工作。例如:取所需指令、存储器读、存储器写等,这每一项工作称为一个基本操作,完成一个基本操作的时间,称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成,8051系列单片机的一个机器周期同6个S周期组成,一个机器周期 = 6个状态周期 = 12个时钟周期。在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,如果是12MHZ,那么机器周期等于1us,单片机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间准则。机器周期不仅对指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准,例如一个单片机选择了12MHZ晶振,那么定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
指令周期:
指令周期是执行一条指令所需的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同,对于一些简单的单字节指令,在取指令周期中,取指令出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需两个或者两个以上的机器周期。
定时时间初值的计算:
如需定时10MS
1.晶振为12MHZ
12MHZ / 12 = 1MHZ,1S = 1000000个机器周期, 10ms = 10000个机器周期。
65535 - 10000 = 55536(d8f0)所以 TH0 = 0xd8; TL0 = 0xf0;
2.晶振为11.0592MHZ
11.0592MHZ / 12 = 921600HZ,1S =?921600个机器周期, 10MS = 9216个机器周期。
65535 - 9216 = 56320(dc00)? 所以 TH0 = 0xdc; TL0 = 0x00;
说明:以12M晶振为例,每秒可以执行1000000个机器周期,我们尽量应让溢出的中断次数最少,这样对主程序的干扰也就最小。开发的时候,可能会根据需要跟换不同频率的晶振,比如C51单片机,用11.0592M的晶振,很适合产生串口的时钟,而12M晶振很方便计算定时器的时间。
|