51单片机的指令周期

【51单片机的指令周期】8051芯片内部有一高增益反相放大器,用于构成振荡器,反向放大器输入端为XTAL1,输出端XTAL2 。在XTAL1和XTAL2两端跨接一个石英晶体及两个电容就构成了稳定自激振荡器,电容器C1和C2通常都取30pF左右,对振荡频率有微调作用 。振荡频率范围是1.2-12MHz 。
8051也使用外部震荡脉冲信号,由XTAL2端引脚输入,XTAL1端接地,外部震荡脉冲源方式常用于多块8051同时工作,以便于同步 。晶体振荡器的振荡信号从XTAL2端输出到片内的时钟发生器上,时钟发生器是一个二分频触发电路,它将振荡器的信号频率fosc除以2,向CPU提供两相时钟信号P1和P2 。
 
时钟信号的周期称为机器状态时间S,CPU就以两相时钟P1和P2为基本节拍指挥8051单片机各个部件协调地工作 。
除时钟周期外,还有两个与时间有关的概念叫机器周期和指令周期 。计算机的一条指令由若干个字节组成 。执行一条指令需要多少时间则以机器周期为单位 。所谓一个机器周期就是指CPU访问存储器一次所需要的时间 。例如取指令,读存储器,写存储器等等 。MCS-51的一个机器周期为12个振荡周期,分为六个S状态,S1-S6.而每个状态又分为两拍,称为P1和P2 。因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1等直到S6P2.若采用6MHZ晶体振荡器,则每个机器周期恰为2us 。每条指令都由一个或几个机器周期组成 。
在MCS-51系统中,有单周期指令,双周期指令 。四周期指令只有乘,除两条指令 。指令的运算速度和它的机器周期直接相关,机器周期数较小则执行速度快 。在编程时要注意选用具有同样功能而机器周期数小的指令 。每一条指令的执行都可以包括取指和执行两个阶段 。在取指阶段,CPU从内部或者外部ROM中取出指令操作码及操作数,然后再执行这条指令 。
在8051指令系统中,根据各种操作的繁简程度,其指令可由单字节,双字节和三字节组成 。从机器执行指令的速度看,单字节和双字节指令都可能是单周期或双周期,而三字节指令都是双周期,只有乘,除指令占四个周期,一条指令的字节数表征这条指令在存储器中所占空间大小,而周期数表征运行这条指令所花时间长短,即运行速度 。

    推荐阅读