单片机的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看这个,讲的非常详细
温馨提示:内容为网友见解,仅供参考
无其他回答

52单片机C语言中“Delay”是什么意思,怎么用?
一般延时1ms的程序是:void Delay(uint x){ uchar i; while(x--) { for(i=120;i>0;i--); }} 那么当你在别的函数中用到Delay(10000);就是延时10000ms,也就是10S

如何用c语言实现单片机延时?
500ms延时子程序程序:(晶振12MHz,一个机器周期1us。)void delay500ms(void){ unsigned char i,j,k;for(i=15;i>0;i--)for(j=202;j>0;j--)for(k=81;k>0;k--);}

51单片机用c语言怎么写延时函数?
我们可以用两套for循环 void delay(int i){ int x,y;for(x=i;x>0;x--){ for(y=120;y>0;y--)} } 参数 i 代表该函数延时多少ms

单片机c语言中delay()函数的头文件是什么?
delay函数是一个自己定义的延时函数,C语言定义延时函数主要通过无意义指令的执行来达到延时的目,并没有一个软件自带头文件专门有delay这个函数的。单片机c语言中delay()的使用:voidDelay10us(ucharMs){ uchardatai;for(;Ms》0;Ms--)for(i=26;i》0;i--);} i=[(延时值-1.75)*12\/...

51单片机C语言程序中延时函数delay的原理是什么?
原理:只是执行一些所谓的“无实际意义的指令”,如缩放或执行一个int自加,简单地说,就像高中数学中的“乘法原理”一样,很容易迅速增加上面提到的“无意义指令”的数量 关于大小的值:如果是在C语言中,该值不仅与水晶振动、单片机本身的速度,但也与C的编译器,所以,虽然这个值可以精确计算,但大...

51单片机C语言中delay函数是怎么定义和使用的?
定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) \/\/ xms代表需要延时的毫秒数 { unsigned int x,y;for(x=xms;x》0;x--)for(y=110;y》0;y--);} 使用:void Delay10us(uchar Ms){ uchar data i;for(;Ms》0;Ms--)for(i=26;i》0;i--);} i=[(延时值...

请教一下单片机的C语言延时
include <reg52.h> \/ 晶振为12MHZ \/ void DelayS(unsigned int w){ unsigned int i;while(w--){ for(i=45400;i>0;i--){ } } } void main(){ DelayS(2); \/\/这是1秒延时 DelayS(10); \/\/这是5秒延时 DelayS(20); \/\/这是10秒延时 } \/\/刚打的,不懂再问 ...

单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?
首先你要知道一个指令周期是几秒 算法是1\/(晶振频率除以12)然后你要知道循环究竟执行了几个指令周期 你可以用keil里在线反汇编命令看看你的循环编译成机器语言后到底是几个指令周期 这样就知道了延迟时间 当然你取近似值也可以的 比如 for(i=0,i<255,i++){x=2} 这里x=2是一个指令周期 而...

单片机的c语言延迟函数
这里假定单片机是时钟频率为12MHz,则一个机器周期为:1us.参考了51单片机 Keil C 延时程序的简单研究后,我们可知道, 在Keil C中获得最为准确的延时函数将是void delay(unsigned char t){ while(--t);}反汇编代码如下:执行DJNZ指令需要2个机器周期,RET指令同样需要2个机器周期,根据输入t,...

51单片机c语言延时函数 Void delay 1ms(unsigned int ms){un
delay函数是一般自己定义的一个延时函数。C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412...

相似回答
大家正在搜