单片机用C语言编写时,这个延迟函数怎么理解?

void delay(uchar i)
{
uchar z,y;

for(z=0;z<100;z++)
for(y=0;y<i;y++);

}

i是个变量,你可以填你想要的时间;

首先是下面一个for循环,循环i次,然后上面的for循环的z+1; 下面的or循环,再循环i次,z再+1
如此z+到100
最后的结果是循环 100 个 i次。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-20
延迟就是“浪费”周期--等待。
从Y=0开始,直到Y=i,空循环i 次。
Z与Y相同。本回答被网友采纳

单片机用C语言编写时,这个延迟函数怎么理解?
首先是下面一个for循环,循环i次,然后上面的for循环的z+1; 下面的or循环,再循环i次,z再+1 如此z+到100 最后的结果是循环 100 个 i次。

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

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

52单片机C语言中Delay是什么意思?怎么用?
delay是延时的意思,delay(n)是延时n个时间单位,至于一个时间单位是多少,这需要你的delay函数决定的,

单片机C语言编程中延时函数和定时器中断有何关系
---主程序运行的时间即是延时函数的延时时间。定时器中断是在主程序中插入的事件,是在主程序的某个时间点,跳出主程序去执行定时器中断要做的事情。所以如果一个延时子程序不停地被中断(包括定时器中断或者其他中断)打断,就没有时间完成自身运行一次所需的那些语句。等到它自身运行完一次,可能原定...

C语言这样写的延时函数我不大懂,帮我分析一下,谢谢。
就是循环做减法,让N自减1 ,然后,再自减1,直到为0,才跳出循环。实际是就拖延时间。这个在不同机器上的延时是不同的。在快的机器上延时短,慢的机器上延时长。要准确延时,还得调用实时时钟才行。

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=[(延时值...

单片机:delay(100)是什么意思啊?
delay通常是延时程序,其参数为100,一般这个参数都是delay基本延时的倍数,也就是100倍,至于基本延时时长需要给出具体程序,例如:delay(int time){ int i;for (i=0;i

单片机里的for循环延时函数怎样理解
那第一个for语句与第二个for语句之间是第一包含第二的关系吗?他是怎样实现延时的? 追答 是的,第一个包含第二个,至于怎么实现延时的就更好理解了,单片机每执行一步都要花费一定时间的,第二个循环里for(j=0;j < 200;j++); 共执行了200个空操作,也就是要花200*T的时间,这里的T是一次空操作需要的时间,...

51单片机用c语言怎么写延时函数?
所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环 void delay(int i){ int x,y;for(x=i;x>0;x--){ for(y=120;y>0;y--)} } 参数 i 代表该函数延时多少ms ...

相似回答
大家正在搜