×
嵌入式 > 嵌入式开发 > 详情

单片机指令周期怎么计算

发布时间:2021-05-14 发布时间:
|

  指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。

  

  来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。

  指令周期是不确定的,因为她和该条指令所包含的机器周期有关。一个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。

  对于大多说的51单片机来说,1个机器周期=12个时钟周期(或振荡周期)

  也有部分单片机时钟周期和振荡周期不相等,例如,1个时钟周期=2个振荡周期。

  该定义指的是执行一条指令所需要的时间,通常一个指令周期会由若干个机器周期组成。指令不同,所需的机器周期数也不同。

  对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。

  PIC单片机指令周期计算

  PIC单片机的每四个时钟周期为一个内部指令周期

  例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS

  实例一:35us, 8MHz的晶振, 8位定时器, 分频比1/2 , 初值 E4

  实例二:156.25us , 32768Hz的晶振, 8位定时器, 分频比1/32 , 初值 FC

  计算方法一: 35 = =(256-初值)*分频*4/晶振 + 14/分频 =(256-初值)+14/2

  计算方法二:0.015625 =(256-初值)*分频*4/晶振 = (256-初值)*32*4/32768

  特别注意:分频比1-8 需要加上一个14/分频

  什么是预分频比 后分频比

  分频器一般都是跟计数单元一起结合使用。

  预分频比是在计数单元值发生变化之前起作用(假如不用预分频时,计数器在每个上升沿到来时加1,而现在使用分频比为1:2的预分频器的话,那么必须等到两个上升沿的到来,计数器才会加1)

  后分频器与预分频器功能一样,只不过是在计数器值发生改变后起作用。像TMR2的后分频器,如果不使用,计数器一但发生溢出,将立即置位标志为TMR2IF,但是如果有1:2的后分频器的话,必须两次溢出后才会置位。

  现在,常用的单片机程序编写软件为keil,当写好程序后,我们可以通过软件调试来确定程序执行所需的时间,同时也能看到每条指令:

  


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
大疆做不做军用无人机