单片机执行完main主程序之后,会一遍接一遍的反复再执行吗?

2025-03-04 09:25:43
推荐回答(5个)
回答1:

不会。要在主程序结束前加一条返回指令。
C的可以main前面加一条while(1),汇编的可以在主程序结束后面加一条LJMP MAIN

回答2:

对于C语言,一般建议结构为:
void main
{
while(1)//确保主程序循环执行
{主程序内容}
}

汇编结构:
ORG ****H
start:主程序内容
LJMP start//循环执行主程序
END

或者你让主程序只执行一次,就用如下结构:
void main
{
主程序内容;
while(1);//程序停止在这
}

汇编就是:
ORG ****H
start:主程序内容;
SJMP $;停止
END

以上是建议写法。
下面是不建议的,危险写法,只是补充一下:
void main
{
主程序内容;
}
这样写,在keil里编译后,单片机也是重复执行主函数的,这一点具体你可以试验,自己写段代码,然后反汇编,看起汇编代码便可知道。虽然在keil里面是这样,但是不建议这样写,其他编译器这样写,有可能就会导致程序跑飞不可控。要注意养成好的编程习惯。

回答3:

不会,你可以吧你的程序放到一个循环循环指令里,如上说的,while,for,这样就可以了

回答4:

是的,main的} 点状态保持。
单片机的程序是没有结束的。

回答5:

void main
{
---------;
while(1);//程序停止在这
}