52单片机,帮忙看看这两个程序的延时时间不相等
时间:10-02
整理:3721RD
点击:
我用的52单片机,晶振是24MHZ的,但这两个延时程序的延时时间不相等,什么原因啊?
1.
void delay(void)
{
unsigned int i;
for(i=0;i<37500;i++);
}
2.
void delayms(void)
{
unsigned int i,j;
for(i=300;i>0;i--)
for(j=125;j>0;j--);
}
1.
void delay(void)
{
unsigned int i;
for(i=0;i<37500;i++);
}
2.
void delayms(void)
{
unsigned int i,j;
for(i=300;i>0;i--)
for(j=125;j>0;j--);
}
你真没想明白么。指令执行也是需要时间的。你上面是一个for循环执行。下面是2个for嵌套执行,下面的延时会长点
真的没有明白,不过我用单片机跑出来,是用两个for循环延迟较短,一个for循环延迟很长。我也很纳闷这个事情啊
C语言程序很不好说,