一、时钟周期
时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。常用的8051单片机的时钟范围是1.2MHz-12MHz。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
二、机器周期
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如:取指令、读存储器、写存储器等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已经说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
三、指令周期
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如:转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
所以如果你的晶振频率为f,那么一个时钟周期为1/f,机器周期为12*1/f。将你的频率带入公式即可算出……
/*ms*time=1000时便是定时1S,ms有范围限制,可以用time++,if(time=100)来扩大范围到1S*/
void configtime(uchar ms)
{
unsigned long tmp;
tmp=11059200/12; //晶振除12,就是机器周期每秒运行的次数
tmp=(tmp*ms)/1000; //再除1000,就是机器周期每毫秒运行的次数
tmp=65536-tmp; //转换为计数初值
tmp=tmp+18; //补差中断延时的误差
T0RH=(uchar)(tmp8); //tmp是long类型的,转换为uchar赋值
T0RL=(uchar)tmp;
TMOD=0xf0;
TMOD|=0x01;
TH0=T0RH;
TL0=T0RL;
ET0=1;
TR0=1;
}
void Time0() interrupt 1
{
TH0=T0RH;
TL0=T0RL;
time++;
}
随便找个51的书就有,写出公式你也不一定看得懂.
t = 12 * ( 65536 - m ) / Fosc
其中:t 代表需要设定的时间
m 代表计时器初值
Fosc 代表晶振频率
12 代表分频数
注:本公式仅限于12分频类51系列单片机,其他分频方式单片机请参照数据手册自行修改
多谢!
晶振周期:晶振的振荡周期就是时钟周期,比如12M晶振时钟周期是 1/12M; 机器周期是单片机执行指令所消耗的最小时间单位。比如51是12分频,51的1个机器周期划分为6个状态周期、12个节拍;12M晶振机器周期是 1/12M*12=1S;
时钟周期:也称为振荡周期, 定义为时钟脉冲的倒数 (可以这样来理解, 时钟周期就是单 片机外接晶振的倒数, 例如 12M 的晶振, 它的时间周期就是 1/12 us) , 是计算机中最基本的、 最小的时间单位。
机器周期:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期=6个状态周期。【指令周期】: 执行完某条指令所需要的时间周期,一般需要1~4个机器周期,如MUL AB指令是四机器周期指令。一个指令周期=1~4个机器周期。
关系:时钟周期,是晶振频率的倒数。 状态周期,是时钟周期的二倍。 机器周期,是时钟周期的 12 倍。 如:晶振频率是 12MHz, 时钟周期就是,(1/12)us。 状态周期就是,(2/12)us。 机器周期就是,(12/12)=1us。
扩展资料
例如:在MCS-51单片机的时钟周期与振荡周期是相等的,12M晶振,振荡周期就是(1/12M)s,
机器周期的时序,由12个时钟周期(12T)组成,在一些增强型的51单片机中,机器周期缩短为6T,甚至1T,以提高总线访问速率。(飞利浦降为6T,STC已降为1T)
12MHz 晶振的话,一个机器周期是1us,因此
单周期指令为1us,如NOP,MOV Rn,#data等等
双周期指令为2us,如SJMP等等
四周期指令为4us,如DIV,MUL等等。
11.0592MHz晶振的话,一个周期是1.085us,也就是时间是12M周期的1.085倍。
单片机晶振11.0592的时间周期的介绍到此就结束了,感谢您耐心阅读,谢谢。
本文标签:单片机晶振11.0592的时间周期