单片机执行完main主程序之后,会一遍接一遍的反复再执行吗?
发布网友
发布时间:2022-04-27 09:22
我来回答
共5个回答
热心网友
时间:2023-05-10 16:02
不会。要在主程序结束前加一条返回指令。
C的可以main前面加一条while(1),汇编的可以在主程序结束后面加一条LJMP MAIN
热心网友
时间:2023-05-10 16:02
对于C语言,一般建议结构为:
void main
{
while(1)//确保主程序循环执行
{主程序内容}
}
汇编结构:
ORG ****H
start:主程序内容
LJMP start//循环执行主程序
END
或者你让主程序只执行一次,就用如下结构:
void main
{
主程序内容;
while(1);//程序停止在这
}
汇编就是:
ORG ****H
start:主程序内容;
SJMP $;停止
END
以上是建议写法。
下面是不建议的,危险写法,只是补充一下:
void main
{
主程序内容;
}
这样写,在keil里编译后,单片机也是重复执行主函数的,这一点具体你可以试验,自己写段代码,然后反汇编,看起汇编代码便可知道。虽然在keil里面是这样,但是不建议这样写,其他编译器这样写,有可能就会导致程序跑飞不可控。要注意养成好的编程习惯。
热心网友
时间:2023-05-10 16:03
不会,你可以吧你的程序放到一个循环循环指令里,如上说的,while,for,这样就可以了
热心网友
时间:2023-05-10 16:03
是的,main的} 点状态保持。
单片机的程序是没有结束的。
热心网友
时间:2023-05-10 16:04
void main
{
---------;
while(1);//程序停止在这
}