为什么我的主函数中没有加while循环,在proteus中仿真的时候却会一直循环呢,下面是我的程序和proteus仿真

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
sbit KEY=P1^3; //特殊功能位的定义

//延时函数
void delay_ms(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}

//主函数
void main()
{ uint i;
P0=0xfe;
for(i=0;i<8;i++)
{ delay_ms(500);
P0=P0<<1;
P0=P0|0x01;
}
end;
}

这是因为程序被反复执行。它们之间间隔时间太短,看不出来。你可以加条语句:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P1^0;
sbit KEY=P1^3; //特殊功能位的定义

//延时函数
void delay_ms(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}

//主函数
void main()
{ uint i;
P0=0xfe;
for(i=0;i<8;i++)
{ delay_ms(500);
P0=P0<<1;
P0=P0|0x01;
}
while(1);
end;
}追问

为什么会反复执行,主函数里我没有添加while循环语句,按理说应该是不会反复执行的啊

追答

换句话说,这个程序是反复被执行的。主函数执行完毕后,再次执行主函数,反复循环

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网