0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)主程序?yàn)槭裁匆姥h(huán)

姚小熊27 ? 來(lái)源:電工之家 ? 作者:電工之家 ? 2020-07-25 11:43 ? 次閱讀

這個(gè)說(shuō)法不確切。因?yàn)?a target="_blank">單片機(jī)的工作本身就是一個(gè)自循環(huán)系統(tǒng)。

單片機(jī)從啟動(dòng)開(kāi)始,首先要建立一個(gè)系統(tǒng)的工作初始環(huán)境和基本數(shù)據(jù),這部分程序稱為初始化。

然后單片機(jī)要執(zhí)行一些順序結(jié)構(gòu)的控制程序,這部分程序要完成基本的功能驅(qū)動(dòng),如顯示、接口連接等。

然后是單片機(jī)的主程序,這部分程序是完成單片機(jī)在設(shè)備中的主要功能。

這部分的功能由主程序控制,一般是一個(gè)自循環(huán)的過(guò)程,可能就是題主說(shuō)的是一個(gè)“死循環(huán)”,因?yàn)樵O(shè)計(jì)者就是要單片機(jī)在主程序中完成所設(shè)定的任務(wù)。

在主程序中單片機(jī)還要根據(jù)需要和外部指令進(jìn)行子程序調(diào)用,數(shù)據(jù)的輸入和控制,接口的控制等等。這些子程序完成后,還必須回到主程序,以保證主控工作任務(wù)的完成。

所以,應(yīng)該說(shuō)單片機(jī)的程序是一個(gè)完整的自控程序,它必須回到主程序控制中循環(huán)運(yùn)行。

所以在單片機(jī)程序設(shè)計(jì)中要保證在任何干擾和錯(cuò)誤操作的情況下都能回到自己的程序循環(huán)中。否則就會(huì)造成系統(tǒng)死機(jī),因?yàn)閱纹瑱C(jī)先死機(jī)了。

單片機(jī)主程序?yàn)槭裁匆姥h(huán)

單片機(jī)程序是從上到下執(zhí)行的,到底了需要從頭開(kāi)始

單片機(jī)集成了CPU、RAM、ROM、GPIO、定時(shí)器、中斷等等,是一個(gè)“微型的小電腦”。我們編寫(xiě)的程序經(jīng)過(guò)編譯后,需要下載到單片機(jī)的ROM。上電后,單片機(jī)就可以讀取并執(zhí)行ROM中的程序了。我們編寫(xiě)的程序經(jīng)過(guò)編譯后,其實(shí)就是一些單片機(jī)可以識(shí)別和執(zhí)行的指令,單片機(jī)的CPU只有一個(gè)線程,一次只能執(zhí)行一條指令,指令從上到下執(zhí)行,到了最后需要跳回最前面才可以生新執(zhí)行,所以單片機(jī)的主程序是一個(gè)死揗環(huán)。

單片機(jī)程序是怎么樣的?

單片機(jī)上電后,需要進(jìn)行初始化,初始化只需要執(zhí)行一次就可以了,所以初始化程序一般不會(huì)放入主程序的死循環(huán)中。主程序需要不斷的連續(xù)執(zhí)行的,所以會(huì)放入到一個(gè)死循環(huán)中去。

由此可見(jiàn),單片機(jī)的程序是從上到下順序執(zhí)行的,需要一個(gè)一個(gè)任務(wù)排隊(duì)運(yùn)行。單片機(jī)還有一個(gè)中斷系統(tǒng),如果發(fā)生需要即時(shí)響應(yīng)的事件,可以把主程序暫停打斷,先把中斷事件處理完,再返回主程序繼續(xù)執(zhí)行。就像你正在開(kāi)會(huì)的時(shí)候,突然老板來(lái)電話了,您就需要把會(huì)議暫停,先接完老板電話,然后繼續(xù)會(huì)議。當(dāng)然中斷事件也是可以屏蔽的,就像開(kāi)會(huì)的時(shí)候來(lái)了一個(gè)騷擾電話,您可以不理它,或者掛斷它。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628422
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3720

    瀏覽量

    80359
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié),涉及到將編寫(xiě)好的程序代碼通過(guò)燒錄器寫(xiě)入單片機(jī)的ROM中,以實(shí)現(xiàn)對(duì)
    的頭像 發(fā)表于 09-02 10:05 ?264次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中非常重要的一步,它涉及到將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使
    的頭像 發(fā)表于 09-02 09:47 ?241次閱讀

    STM32F107中斷死循環(huán)的原因?

    STM32F107,中斷死循環(huán)
    發(fā)表于 05-11 06:31

    STM32L使用模擬仿真時(shí),進(jìn)入SystemClock_Config()后程序一直死循環(huán)在等待HSI ready的循環(huán)中,為什么?

    ,配置好.ini文件,編譯OK,然后點(diǎn)擊DEBUG按鈕,代碼可以順利執(zhí)行到上面的第5行,但是在進(jìn)入 SystemClock_Config()后,程序一直死循環(huán)在等待HSI ready的循環(huán)中,如下
    發(fā)表于 05-09 06:37

    聊聊MCU死循環(huán),用for(;;)還是while(1)?

    首先,問(wèn)大家一個(gè)問(wèn)題:你們寫(xiě)單片機(jī)程序死循環(huán)】時(shí),喜歡用for(;;)還是while(1)?快來(lái)為你喜歡用的【死循環(huán)】打call,評(píng)論區(qū)等你哦~一位工程師發(fā)現(xiàn),國(guó)外工程師在給demo
    的頭像 發(fā)表于 04-29 08:10 ?811次閱讀
    聊聊MCU<b class='flag-5'>死循環(huán)</b>,用for(;;)還是while(1)?

    為何國(guó)外工程師偏愛(ài)使用for(;;)來(lái)實(shí)現(xiàn)MCU死循環(huán)?

    一位工程師發(fā)現(xiàn),國(guó)外工程師在給demo在做死循環(huán)時(shí)用的是for(;;),而不是常用的while(1)。這僅僅是個(gè)人習(xí)慣的問(wèn)題,還是有更深層次的含義?
    發(fā)表于 04-01 11:26 ?425次閱讀
    為何國(guó)外工程師偏愛(ài)使用for(;;)來(lái)實(shí)現(xiàn)MCU<b class='flag-5'>死循環(huán)</b>?

    什么是單板機(jī)的監(jiān)控程序?

    初始化程序:用于設(shè)置單片機(jī)的初始狀態(tài),包括初始化寄存器、設(shè)置中斷向量、啟動(dòng)時(shí)鐘等。   主循環(huán)程序:監(jiān)控程序
    的頭像 發(fā)表于 02-02 17:15 ?1233次閱讀
    什么是單板機(jī)的監(jiān)控<b class='flag-5'>程序</b>?

    分享一下用ST-LINK Utility識(shí)別單片機(jī)程序是否跑飛

    最近有網(wǎng)友大概問(wèn)了這樣的問(wèn)題:單片機(jī)項(xiàng)目偶爾經(jīng)常出現(xiàn)異常,不知道是程序跑飛了,還是進(jìn)入某個(gè)死循環(huán)了。
    的頭像 發(fā)表于 01-09 11:40 ?1901次閱讀
    分享一下用ST-LINK Utility識(shí)別<b class='flag-5'>單片機(jī)</b><b class='flag-5'>程序</b>是否跑飛

    單片機(jī)芯片怎么寫(xiě)入程序

    單片機(jī)芯片的程序寫(xiě)入是通過(guò)將程序代碼寫(xiě)入單片機(jī)芯片的非易失性存儲(chǔ)器(如Flash)中實(shí)現(xiàn)的。 在計(jì)算機(jī)科學(xué)和電子工程領(lǐng)域,單片機(jī)是一種集成電
    的頭像 發(fā)表于 01-05 14:06 ?6736次閱讀

    51單片機(jī)for循環(huán)結(jié)束之后還在運(yùn)行

    當(dāng)我們?cè)O(shè)計(jì)并編寫(xiě)嵌入式系統(tǒng)時(shí),使用51單片機(jī)編寫(xiě)程序時(shí),常常會(huì)用到循環(huán)結(jié)構(gòu)來(lái)重復(fù)執(zhí)行一段代碼。然而,有時(shí)我們可能會(huì)遇到51單片機(jī)循環(huán)結(jié)束之
    的頭像 發(fā)表于 12-26 14:06 ?755次閱讀

    AvR單片機(jī)for循環(huán)需要幾個(gè)指令周期

    的Harvard架構(gòu)。這種架構(gòu)允許同時(shí)從程序存儲(chǔ)器(指令存儲(chǔ)器)和數(shù)據(jù)存儲(chǔ)器讀取指令和數(shù)據(jù),從而提高了處理器的效率。 在AvR單片機(jī)中,for循環(huán)通常包含三個(gè)主要部分:初始化,循環(huán)條件
    的頭像 發(fā)表于 12-26 14:03 ?825次閱讀

    為什么HashMap會(huì)產(chǎn)生死循環(huán)呢?

    死循環(huán)問(wèn)題發(fā)生在 JDK 1.7 版本中,造成這個(gè)問(wèn)題主要是由于 HashMap 自身的運(yùn)行機(jī)制,加上并發(fā)操作,從而導(dǎo)致了死循環(huán)。
    的頭像 發(fā)表于 12-21 09:06 ?569次閱讀
    為什么HashMap會(huì)產(chǎn)生<b class='flag-5'>死循環(huán)</b>呢?

    如何使得單片機(jī)的LED燈閃爍又不影響主程序運(yùn)行?

    51單片機(jī)問(wèn)題,緊急求助! 怎樣使得單片機(jī)的LED燈閃爍又不影響主程序運(yùn)行??? 我想通過(guò)單片機(jī)接收串口命令讓一個(gè)LED燈閃爍,但同時(shí)又不影響其他
    發(fā)表于 11-06 07:18

    求助,關(guān)于STC51單片機(jī)主程序邏輯判斷問(wèn)題

    求教,STC51單片機(jī)在寫(xiě)主程序邏輯判斷的時(shí)候,用轉(zhuǎn)換后的AD值來(lái)做邏輯判斷,還是換算成Vin來(lái)進(jìn)行邏輯判斷呢?
    發(fā)表于 11-02 07:21

    單片機(jī)異常復(fù)位原因 簡(jiǎn)述單片機(jī)如何復(fù)位

    單片機(jī)異常復(fù)位原因 簡(jiǎn)述單片機(jī)如何復(fù)位? 單片機(jī)異常復(fù)位是指在正常運(yùn)行期間,單片機(jī)出現(xiàn)了不可恢復(fù)的故障,導(dǎo)致異常復(fù)位。常見(jiàn)的異常復(fù)位原因有以下幾種: 1.
    的頭像 發(fā)表于 10-17 16:44 ?2979次閱讀