为什么给单片机写程序时,main两个并列的for循环会一直循环下去,成为死循环,如何结束死循环只执行一遍

#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharuch... #include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
uint i,j ;
void delay(uint);
void main()

{
temp=0xfe;
P0=temp;
for(i=7;i>0;i--)
{
temp=_crol_(temp,1);
delay(119);
P0=temp;
};
P0=temp;
for(j=7;j>0;j--)
{
temp=_cror_(temp,1);
delay(119);
P0=temp;
};

}

void delay(uint z)
{
uint x,y;
for(x=301;x>0;x--)
for(y=z;y>0;y--);
}
展开
 我来答
lyx915367058
2013-07-16 · TA获得超过754个赞
知道小有建树答主
回答量:855
采纳率:28%
帮助的人:160万
展开全部
这是因为main()就是一个死循环,所以两个for 在main()一直循环执行,你想只执行一遍只要在弟二个结束加个while(1);就可以了!
追问
嗯嗯,谢谢
百度网友0d938bf
2013-07-16 · TA获得超过196个赞
知道小有建树答主
回答量:346
采纳率:100%
帮助的人:94.2万
展开全部
你main里面要加个while死循环,不然你两个for循环走完了单片机就跑飞了
追问
跑飞是啥意思
追答
跑飞就是你单片机程序运行的不是你想让它走的地方(主循环之外),比如汇编里面,call后没有ret返回,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duyin2011
2013-07-17 · TA获得超过2400个赞
知道大有可为答主
回答量:1723
采纳率:100%
帮助的人:668万
展开全部
把};后的分号去掉看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式