教育培训 > 单片机的主程序为什么是死循环?

单片机的主程序为什么是死循环?

2020-07-24 17:55阅读(62)

单片机的主程序为什么是死循环?:任何一个可用程序都必然是死循环程序,这不仅仅是指单片机程序。因为任何微处理器系统一旦开机,系统都在处理内部事件和外设响

1

任何一个可用程序都必然是死循环程序,这不仅仅是指单片机程序。因为任何微处理器系统一旦开机,系统都在处理内部事件和外设响应,这个过程是一个循环过程,除非关机才能结束这个死循环程序。因此,对于单片机编程必须注意以下几点:

一、主函数main必须是一个死循环程序。例如,一个恒温系统,其主程序必须判断当前温度是否在设定温度上,如果不在设定温度,就必须调整,调整完了再判断。一直进行这个循环以便使温度达到设定范围之内。

二、主程序必须反映系统的主要执行过程, 从主程序的流程图上要很容易理解系统是如何运行的。把一些具体的事务交给子程序和中断去完成。

三、可通过主程序流程图和中断流程图反映一个系统的运行过程。不能把主程序流程图和中断流程图混为一谈。这是许多初学者、本科生、甚至研究生最容易出错的地方。

四、主程序是一个死循环程序,但不能简单到就是一句while(1); 而把所有的事情都塞进中断里面去做。因此单片机程序一定要做好规划,中断程序越简单越好,主程序要反映主思路、主流程。

2

单片机程序是从上到下执行的,到底了需要从头开始

单片机集成了CPU、RAM、ROM、GPIO、定时器、中断等等,是一个“微型的小电脑”。我们编写的程序经过编译后,需要下载到单片机的ROM。上电后,单片机就可以读取并执行ROM中的程序了。我们编写的程序经过编译后,其实就是一些单片机可以识别和执行的指令,单片机的CPU只有一个线程,一次只能执行一条指令,指令从上到下执行,到了最后需要跳回最前面才可以生新执行,所以单片机的主程序是一个死揗环。

单片机程序是怎么样的?

单片机上电后,需要进行初始化,初始化只需要执行一次就可以了,所以初始化程序一般不会放入主程序的死循环中。主程序需要不断的连续执行的,所以会放入到一个死循环中去。

由此可见,单片机的程序是从上到下顺序执行的,需要一个一个任务排队运行。单片机还有一个中断系统,如果发生需要即时响应的事件,可以把主程序暂停打断,先把中断事件处理完,再返回主程序继续执行。就像你正在开会的时候,突然老板来电话了,您就需要把会议暂停,先接完老板电话,然后继续会议。当然中断事件也是可以屏蔽的,就像开会的时候来了一个骚扰电话,您可以不理它,或者挂断它。

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

  • 记得点赞和评论哦!非常感谢!

3

这个说法不确切。因为单片机的工作本身就是一个自循环系统。

单片机从启动开始,首先要建立一个系统的工作初始环境和基本数据,这部分程序称为初始化。

然后单片机要执行一些顺序结构的控制程序,这部分程序要完成基本的功能驱动,如显示、接口连接等。

然后是单片机的主程序,这部分程序是完成单片机在设备中的主要功能。

这部分的功能由主程序控制,一般是一个自循环的过程,可能就是题主说的是一个“死循环”,因为设计者就是要单片机在主程序中完成所设定的任务。

在主程序中单片机还要根据需要和外部指令进行子程序调用,数据的输入和控制,接口的控制等等。这些子程序完成后,还必须回到主程序,以保证主控工作任务的完成。

所以,应该说单片机的程序是一个完整的自控程序,它必须回到主程序控制中循环运行。

所以在单片机程序设计中要保证在任何干扰和错误操作的情况下都能回到自己的程序循环中。否则就会造成系统死机,因为单片机先死机了。

4

不设成死循环,难道每操作一次都开关重启一次?

5

仿生学原理,看看你的人生是不是也是这样,工作-上班-睡觉

6

所有的OS的主线都会是一个死循环,要不然程序就立马结束了呀。

7

不只是单片机,大部分软件运行都有一个线程循环,如果只需要执行一遍,可以不设置循环

8

本质是单线程,同一时刻只能做一件事,多个事件必须一个一个的执行,循环是为了等待执行条件出现,而不是结束,因为运行速度比较快,所以看起来像是同时做了几件事。另外很多应用场景都是同时要检测多个条件再执行相应动作,简单的讲:单片机一般都是有一定条件才执行特定的动作,为了等待这个条件,就必须反复循环等待条件出现。

9

app 也是死循环。

10

如果,你使用的器件有足够的资源,那么可以不用死循环,程序一直往下跑就行。但是,实际的单片机资源是有限的,那么,死循环的意义就是最大化利用有限的资源。