单片机周期的概念

我们要想对单片机内部运行有一个深刻的了解,单片机周期的概念我们必须要知道,对于单片机来说,有时钟周期、机器周期、指令周期、总线周期等,我们接下来逐个讲解一下;

时钟周期:表示为外接晶振的倒数,在一个时钟周期内,CPU仅完成一个基本操作;32MHZ即1秒可做32M个基本操作,完成一个基本操作的时间为1/32us;8051把一个时钟周期定义为一个节拍P,两个节拍为一个状态周期S;

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程分为若干阶段,一个阶段完成一项工作,而完成一项工作(基本操作)所需要的时间就是机器周期;在8051中,一个机器周期由6个状态周期组成,即1机器周期=6状态周期=12时钟周期;

指令周期:执行一条指令所需要的时间,一般由若干机器周期组成,根据指令的复杂程度不同,所需要的机器周期也不同;

总线周期:存储器和IO端口是挂接在总线上的,CPU要对其进行访问要通过总线来实现,即CPU通过总线对存储器或IO口进行一次访问所需要的时间为总线周期;

好了,我们有了周期的概念之后,对延时函数进行分析一下,加深印象:

void delay_ms(unsigned long time)
{
    time *= 100;

    while(time--)
    {
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
        asm("NOP");
    }
}

上面是一个非常简单的延时函数,” asm(“NOP”); ” 的含义就是执行一次空操作;接下来我们对这段程序分析一下:

前面说了,8051的外部晶振为32MHZ,” asm(“NOP”); “为单指令周期,且不经过总线就可以实现,即: (1/32) * 12 = 0.375us,即执行这么一条语句的时间为0.375微妙,0.375(us) * 27 * 100 = 1012.5(us) = 1.0125ms,近似于1ms;这就是这个函数数字背后的含义!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值