关于C51的延时程序

来源:百度知道 编辑:UC知道 时间:2024/06/04 04:10:43
void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while( Cnt50us < 20 )
{
_nop_();
_nop_();
}
}

}
这个程序是不是有问题啊?里面的while 是不是死循环啊?

while (Cnt50us < 20)会成为死循环
修改:
void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while (Cnt50us < 20)
{
_nop_();
_nop_();
}//end of while
Cnt50us++;//添加的部分
}//end of while
}//end of main

楼上的回答不正确,仍为死循环!!!

应将Cnt50us++;添加到里面的while内部!

正解如下:

void Delay1ms_CNT50US(n=5)
{
while(n--)
{
Cnt50us = 0;
while (Cnt50us < 20)
{
_nop_();
_nop_();
Cnt50us++;
}

}
}

二楼的是对的~~

从下游戏不就行了

(Cnt50us=0)<20总是成立,总是进行while循环。