
{ unsigned int i
for(DelayTime>0DelayTime--)//当你调用函数时括号中的数是此外循环的次数.每循环一次减1.直到Delay Time 为0.
{
for(i=0i<250i++)//外循环每执行一次,此内循环才执行250次.
}
}
//如果你的Delay Time =X. 那么你的整个函数延时X*250机器周期.
所谓延时,就是让单片机做些不会产生后果的闲杂事,把这段时间给耗过去。上面是毫秒级延时,下面是个100微秒的延时函数。
你贴出的程序中的延时并不太精确,内循环的次数要根据实际汇编的执行指令周期数来测算。
我来给你做个详细讲解啊:void delay(unsigned int t){ while(--t)}
Int main(void)
{
While(1)
{
P0 = 0X00
Delay(100) //给带形参延时子函数t赋值100;
}
}
void delay(unsigned int t){ while(--t) // while判断t为真程序会一直停留在这里判断,t先减一在判断直到t=0为假程序跳出while判断,单片机在这段时间里在空循环,这样就造成单片机延时,这是一个很常用的单片机软件延时。}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)