0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机主程序为什么要死循环

姚小熊27 来源:电工之家 作者:电工之家 2020-07-25 11:43 次阅读

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

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

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

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

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

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

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

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

单片机主程序为什么要死循环

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

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

单片机程序是怎么样的?

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6044

    文章

    44632

    浏览量

    639419
  • 程序
    +关注

    关注

    117

    文章

    3798

    浏览量

    81502
收藏 人收藏

    评论

    相关推荐

    单片机怎么写入程序

    程序通常涉及以下几个步骤: 选择单片机和开发环境 : 确定项目需求,选择合适的单片机型号。 安装相应的开发环境,如Keil、IAR、MPLAB等。 硬件连接 : 将单片机连接到开发板或
    的头像 发表于 10-21 11:21 1019次阅读

    单片机的中断机制

    单片机的中断机制是一种重要的处理方式,它允许单片机在执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得单片机在各种应用
    的头像 发表于 10-17 18:03 1061次阅读

    keil可以读出单片机程序

    Keil是一款广泛应用于单片机程序开发的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。然而,关于Keil是否能直接“读出”单片机程序
    的头像 发表于 09-02 10:32 1306次阅读

    单片机烧录程序用什么软件

    单片机烧录程序单片机开发过程中的一个重要环节,涉及到将编写好的程序代码通过烧录器写入单片机的ROM中,以实现对
    的头像 发表于 09-02 10:05 1754次阅读

    单片机烧录程序可以重新烧吗

    单片机(Microcontroller Unit, MCU)是一种集成电路芯片,它将计算机的CPU、存储器、输入/输出接口等集成在一块芯片上,用于控制各种电子设备。单片机烧录程序是指将编写
    的头像 发表于 09-02 10:04 1630次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器
    的头像 发表于 09-02 09:54 640次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使
    的头像 发表于 09-02 09:47 1553次阅读

    stm8s105给CPU发送请求后,如果主CPU不给答复,程序就会一直在(1)处进入死循环,怎么解决?

    我参考别人的UART2的发送和接收程序入下(与主CPU通信)。现在面临的问题是,在我给CPU发送请求后,如果主CPU不给答复,那么我的程序就会一直在(1)处进入死循环,我该怎么修改跳出循环
    发表于 05-14 08:13

    STM32F107中断死循环的原因?

    STM32F107,中断死循环
    发表于 05-11 06:31

    STM32L使用模拟仿真时,进入SystemClock_Config()后程序一直死循环在等待HSI ready的循环中,为什么?

    ,配置好.ini文件,编译OK,然后点击DEBUG按钮,代码可以顺利执行到上面的第5行,但是在进入 SystemClock_Config()后,程序一直死循环在等待HSI ready的循环中,如下
    发表于 05-09 06:37

    聊聊MCU死循环,用for(;;)还是while(1)?

    首先,问大家一个问题:你们写单片机程序死循环】时,喜欢用for(;;)还是while(1)?快来为你喜欢用的【死循环】打call,评论区等你哦~一位工程师发现,国外工程师在给demo
    的头像 发表于 04-29 08:10 1485次阅读
    聊聊MCU<b class='flag-5'>死循环</b>,用for(;;)还是while(1)?

    如何跳出双层循环,加密程序等问题?

    进入 KEY_Deal()//假设这个是按键处理程序 方案2:if(SWITCH==0;)return;//这是主程序扫描程序之一,获取键值后赋值SWITCH,相当于打开按键处理入口,让单片机
    发表于 04-26 07:53

    STM8S003看门狗在主循环老是复位怎么解决?

    第一个图片画圈的位置),其他我尝试过修改定时器4进入时间和看门狗复位时间均没有效果。大家帮我看下怎么回事,谢谢了。还有个我主程序有3个嵌套死循环,1-2循环没有任何问题,到最后这个循环
    发表于 04-25 08:18

    为何国外工程师偏爱使用for(;;)来实现MCU死循环

    一位工程师发现,国外工程师在给demo在做死循环时用的是for(;;),而不是常用的while(1)。这仅仅是个人习惯的问题,还是有更深层次的含义?
    发表于 04-01 11:26 733次阅读
    为何国外工程师偏爱使用for(;;)来实现MCU<b class='flag-5'>死循环</b>?

    STM32F412RET6串口轮询发送阻塞等待TC,导致程序陷入死循环怎么解决?

    测试时,发现CPU程序运行卡死了,通过STM32 ST-LINK Utility工具,排查到了程序陷入死循环
    发表于 03-21 07:51