单片机的c语言延迟函数

void delay(unsinged int)
{
inti,j;
for(j=0;j<n;j++)
for{i=0;i<125;i++}{;}
}

为什么这个函数能够执行指定的延迟命令。

这里假定单片机是时钟频率为12MHz,则一个机器周期为:1us.参考了51单片机 Keil C 延时程序的简单研究后,我们可知道, 在Keil C中获得最为准确的延时函数将是void delay(unsigned char t){ while(--t);}反汇编代码如下:执行DJNZ指令需要2个机器周期,RET指令同样需要2个机器周期,根据输入t,在不计算调用delay()所需时间的情况下,具体时间延时如下:t Delay Time (us) 1 2×1+2 =4 2 2×2+2=6 N 2×N+2=2(N+1) http://www.cnblogs.com/fengmk2/archive/2007/03/12/672477.html看这个,讲的非常详细
温馨提示:答案为网友推荐,仅供参考