这个说法不确切。因为单片机的工作本身就是一个自循环系统。
单片机从启动开始,首先要建立一个系统的工作初始环境和基本数据,这部分程序称为初始化。
然后单片机要执行一些顺序结构的控制程序,这部分程序要完成基本的功能驱动,如显示、接口连接等。
然后是单片机的主程序,这部分程序是完成单片机在设备中的主要功能。
这部分的功能由主程序控制,一般是一个自循环的过程,可能就是题主说的是一个“死循环”,因为设计者就是要单片机在主程序中完成所设定的任务。
在主程序中单片机还要根据需要和外部指令进行子程序调用,数据的输入和控制,接口的控制等等。这些子程序完成后,还必须回到主程序,以保证主控工作任务的完成。
所以,应该说单片机的程序是一个完整的自控程序,它必须回到主程序控制中循环运行。
所以在单片机程序设计中要保证在任何干扰和错误操作的情况下都能回到自己的程序循环中。否则就会造成系统死机,因为单片机先死机了。
单片机程序是从上到下执行的,到底了需要从头开始
单片机集成了CPU、RAM、ROM、GPIO、定时器、中断等等,是一个“微型的小电脑”。我们编写的程序经过编译后,需要下载到单片机的ROM。上电后,单片机就可以读取并执行ROM中的程序了。我们编写的程序经过编译后,其实就是一些单片机可以识别和执行的指令,单片机的CPU只有一个线程,一次只能执行一条指令,指令从上到下执行,到了最后需要跳回最前面才可以生新执行,所以单片机的主程序是一个死揗环。
单片机程序是怎么样的?
单片机上电后,需要进行初始化,初始化只需要执行一次就可以了,所以初始化程序一般不会放入主程序的死循环中。主程序需要不断的连续执行的,所以会放入到一个死循环中去。
由此可见,单片机的程序是从上到下顺序执行的,需要一个一个任务排队运行。单片机还有一个中断系统,如果发生需要即时响应的事件,可以把主程序暂停打断,先把中断事件处理完,再返回主程序继续执行。就像你正在开会的时候,突然老板来电话了,您就需要把会议暂停,先接完老板电话,然后继续会议。当然中断事件也是可以屏蔽的,就像开会的时候来了一个骚扰电话,您可以不理它,或者挂断它。
-
单片机
+关注
关注
6044文章
44632浏览量
639419 -
程序
+关注
关注
117文章
3798浏览量
81502
发布评论请先 登录
相关推荐
单片机怎么写入程序
单片机的中断机制
keil可以读出单片机的程序吗
单片机烧录程序可以重新烧吗
单片机烧录程序的线比单片机上的少还能烧录吗
单片机烧录程序的基本步骤是什么
stm8s105给CPU发送请求后,如果主CPU不给答复,程序就会一直在(1)处进入死循环,怎么解决?
STM32L使用模拟仿真时,进入SystemClock_Config()后程序一直死循环在等待HSI ready的循环中,为什么?
聊聊MCU死循环,用for(;;)还是while(1)?
![聊聊MCU<b class='flag-5'>死循环</b>,用for(;;)还是while(1)?](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
如何跳出双层循环,加密程序等问题?
STM8S003看门狗在主循环老是复位怎么解决?
为何国外工程师偏爱使用for(;;)来实现MCU死循环?
![为何国外工程师偏爱使用for(;;)来实现MCU<b class='flag-5'>死循环</b>?](https://file1.elecfans.com/web2/M00/C7/64/wKgaomYKKiOAK5wZAAARYlyfX1A944.png)
评论