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

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

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

單片機(jī)的中斷程序如何運(yùn)行

姚小熊27 ? 來源:電工之家 ? 作者:電工之家 ? 2020-01-27 17:11 ? 次閱讀

單片機(jī)的中斷就是類似的一個過程,發(fā)生中斷時,就會打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序繼續(xù)運(yùn)行,當(dāng)然在執(zhí)行中斷函數(shù)之前,單片機(jī)需要把關(guān)鍵的數(shù)據(jù)保存下來,中斷函數(shù)執(zhí)行完成后才可以正確的恢復(fù)主函數(shù)運(yùn)行。

單片機(jī)的主程序是怎么運(yùn)行的?

其實單片機(jī)的主程序其實是一個主函數(shù),我們一般命名為Main,主函數(shù)會從上住下運(yùn)行的,執(zhí)行到最后又返回上面繼續(xù)運(yùn)行。我們用C語言編寫Main主函數(shù)時,會用到while(1)讓主程序不斷的循環(huán)。

由此可見,主程序里的各種功能是按著順序來執(zhí)行的,誰也不能插隊。那怎么樣來實現(xiàn)中途打斷插隊呢?這就需要用到中斷了。

單片機(jī)的中斷程序是怎么執(zhí)行的?

單片機(jī)有著各種和樣的中斷功能,比如定時器中斷、外部中斷、串口中斷等等。比如我們要實時檢測一個按鍵的按下事件,如果在主程序中進(jìn)行掃描,就會有一定的延時,需要等主程序運(yùn)行到按鍵掃描的程序時才可以檢測到按鍵的狀態(tài)。

中斷是單片機(jī)一個重要的功能,單片機(jī)會給所有中斷功能分配一個中斷向量(有些中斷功能會共用一個中斷向量)。當(dāng)開啟了相應(yīng)的中斷功能并且發(fā)生中斷時,就會自動跳轉(zhuǎn)到對應(yīng)的中斷向量運(yùn)行。在中斷向量處,我們就可以調(diào)用我們編寫好的中斷函數(shù),處理相關(guān)的事件就可以了。如果開啟了中斷嵌套,在中斷函數(shù)執(zhí)行過程發(fā)生優(yōu)先級更高的中斷,還可以暫停正在運(yùn)行的中斷函數(shù),去執(zhí)行更高級別的中斷程序。

單片機(jī)的中斷程序如何運(yùn)行

中斷函數(shù)為什么不在主函數(shù)中運(yùn)行?

主函數(shù)是一個函數(shù),中斷函數(shù)也是一個函數(shù),它們是獨立的函數(shù),所以是分開的。上面已經(jīng)說得很清楚了,中斷是打斷正在運(yùn)行的函數(shù)去執(zhí)行優(yōu)先級更高的函數(shù),所以中斷就是打斷主函數(shù)去執(zhí)行更高優(yōu)先級別的中斷函數(shù)的一個過程。

在發(fā)生中斷時,單片機(jī)會自動跳轉(zhuǎn)到對應(yīng)的中斷向量,在中斷向量處,我們需要調(diào)用中斷函數(shù)來處理中斷事件,如果中斷事件的處理程序放在主函數(shù)中,那么這些處理中斷事件的程序就不是一個獨立的函數(shù)了,就沒法調(diào)用了。

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

    關(guān)注

    6039

    文章

    44588

    瀏覽量

    636758
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    900

    瀏覽量

    41578
收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)外部中斷的好處

    外部中斷單片機(jī)實時地處理外部事件的一種內(nèi)部機(jī)制。當(dāng)外部事件發(fā)生時,單片機(jī)中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行
    的頭像 發(fā)表于 10-31 15:58 ?2329次閱讀
    <b class='flag-5'>單片機(jī)</b>外部<b class='flag-5'>中斷</b>的好處

    stm32單片機(jī)中斷程序運(yùn)行不了

    前兩天謝了一個中斷程序,檢查,編譯什么的都沒有問題。可是下到單片機(jī)后操作沒反應(yīng)。哪位能幫忙看看什么問題。鍵盤通過PA0口控制PE7口LED燈閃爍。鍵盤接有上拉電阻,按下開關(guān)時PA0口為高電平
    發(fā)表于 07-27 11:00

    單片機(jī)中斷系統(tǒng)介紹_51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)

    單片機(jī)中斷就是當(dāng)單片機(jī)正在執(zhí)行程序的時候,突然某個按鍵按下了(產(chǎn)生外部中斷),單片機(jī)就必須得去處
    發(fā)表于 01-10 17:29 ?1.2w次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b>系統(tǒng)介紹_51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b>系統(tǒng)結(jié)構(gòu)

    單片機(jī)外部中斷程序下載

    單片機(jī)外部中斷程序和電路圖,通過按鍵控制計數(shù)和清零操作
    發(fā)表于 05-21 10:57 ?0次下載
    <b class='flag-5'>單片機(jī)</b>外部<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>下載

    51單片機(jī)中斷程序資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)中斷程序資料免費(fèi)下載。
    發(fā)表于 04-08 08:00 ?22次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>資料免費(fèi)下載

    51單片機(jī)中斷程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)中斷程序免費(fèi)下載。
    發(fā)表于 08-26 17:30 ?8次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>免費(fèi)下載

    51單片機(jī)有幾個中斷單片機(jī)中斷號對應(yīng)的中斷類型說明

    51單片機(jī)通常有5個中斷,當(dāng)中斷發(fā)生時,程序會跳到相應(yīng)的中斷服務(wù)程序去執(zhí)行。為了區(qū)別不同的
    發(fā)表于 08-06 17:34 ?5次下載
    51<b class='flag-5'>單片機(jī)</b>有幾個<b class='flag-5'>中斷</b>?<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b>號對應(yīng)的<b class='flag-5'>中斷</b>類型說明

    使用單片機(jī)進(jìn)行中斷的應(yīng)用資料和程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)進(jìn)行中斷的應(yīng)用資料和程序免費(fèi)下載。
    發(fā)表于 06-12 17:45 ?0次下載
    使用<b class='flag-5'>單片機(jī)</b>進(jìn)行<b class='flag-5'>中斷</b>的應(yīng)用資料和<b class='flag-5'>程序</b>免費(fèi)下載

    單片機(jī)的主程序中斷程序是怎么樣運(yùn)行

    過程,發(fā)生中斷時,就會打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序繼續(xù)運(yùn)行,當(dāng)然在執(zhí)行中斷
    的頭像 發(fā)表于 01-04 10:11 ?1.4w次閱讀
    <b class='flag-5'>單片機(jī)</b>的主<b class='flag-5'>程序</b>和<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>是怎么樣<b class='flag-5'>運(yùn)行</b>的

    使用單片機(jī)外部中斷的使用C語言程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)外部中斷的使用C語言程序免費(fèi)下載。
    發(fā)表于 04-02 16:01 ?9次下載

    單片機(jī)里的程序是如何運(yùn)行?

    我們想要理解單片機(jī)是如何運(yùn)行程序的,我們首先需要了解單片機(jī)的組成,我們這里以80C51單片機(jī)為例來理解程序
    的頭像 發(fā)表于 02-17 10:47 ?4533次閱讀
    <b class='flag-5'>單片機(jī)</b>里的<b class='flag-5'>程序</b>是如何<b class='flag-5'>運(yùn)行</b>?

    51單片機(jī)中斷程序示例

    51單片機(jī)中斷程序示例
    發(fā)表于 05-17 18:03 ?0次下載

    基于單片機(jī)的外部中斷實驗 中斷系統(tǒng)知識介紹

    單片機(jī)中有兩個重要的概念分別叫做中斷、中斷系統(tǒng),那么他們分別又代表什么意義呢?當(dāng)單片機(jī)CPU正在運(yùn)行
    的頭像 發(fā)表于 07-26 17:23 ?2847次閱讀
    基于<b class='flag-5'>單片機(jī)</b>的外部<b class='flag-5'>中斷</b>實驗 <b class='flag-5'>中斷</b>系統(tǒng)知識介紹

    單片機(jī)中斷系統(tǒng)詳解

    單片機(jī)中斷是指在單片機(jī)執(zhí)行程序的過程中,當(dāng)外部設(shè)備或內(nèi)部條件發(fā)生某個特定事件時,能夠暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行一個特定的服務(wù)
    的頭像 發(fā)表于 12-05 09:09 ?3176次閱讀

    單片機(jī)中斷功能及其應(yīng)用

    單片機(jī)中斷功能及其應(yīng)用? 單片機(jī)中斷是指在程序執(zhí)行過程中,根據(jù)特定的條件或事件自動暫時中斷當(dāng)前
    的頭像 發(fā)表于 01-30 14:45 ?5673次閱讀