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

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

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

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

Wildesbeast ? 來(lái)源:今日頭條 ? 作者:電子產(chǎn)品設(shè)計(jì)方案 ? 2020-01-04 10:11 ? 次閱讀

中斷用于執(zhí)行優(yōu)先級(jí)更高的任務(wù)

中斷顧名思義是“中途打斷”的意思。舉一個(gè)簡(jiǎn)單的例子:您正在和部門的同事在開會(huì),突然老板進(jìn)來(lái)找你,你就得暫停會(huì)議,離開會(huì)議室,跟老板談完重要的事情,再重新回來(lái)會(huì)議室繼續(xù)會(huì)議。單片機(jī)的中斷就是類似的一個(gè)過(guò)程,發(fā)生中斷時(shí),就會(huì)打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序繼續(xù)運(yùn)行,當(dāng)然在執(zhí)行中斷函數(shù)之前,單片機(jī)需要把關(guān)鍵的數(shù)據(jù)保存下來(lái),中斷函數(shù)執(zhí)行完成后才可以正確的恢復(fù)主函數(shù)運(yùn)行。

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

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

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

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

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

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)注

    6039

    文章

    44588

    瀏覽量

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

    關(guān)注

    5

    文章

    900

    瀏覽量

    41578
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4340

    瀏覽量

    62791
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32單片機(jī)DEBUG進(jìn)入不了主程序的原因

    STM32單片機(jī)DEBUG進(jìn)入不了主程序1.上電不運(yùn)行,DEBUG還進(jìn)入不了主程序2.總結(jié)2.1 STM32單片機(jī)Flash分類2.2 關(guān)于
    發(fā)表于 11-29 06:52

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

    單片機(jī)外部中斷程序和電路圖,通過(guò)按鍵控制計(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ā)表于 08-26 17:30 ?8次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>免費(fèi)下載

    Arduino中的中斷函數(shù)詳細(xì)說(shuō)明

    單片機(jī)中斷可概述為:由于某一隨機(jī)事件的發(fā)生,單片機(jī)暫停原程序運(yùn)行,轉(zhuǎn)去執(zhí)行另一程序(隨機(jī)事件
    發(fā)表于 08-20 17:31 ?1次下載
    Arduino中的<b class='flag-5'>中斷</b>函數(shù)詳細(xì)說(shuō)明

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

    單片機(jī)中斷就是類似的一個(gè)過(guò)程,發(fā)生中斷時(shí),就會(huì)打斷正在執(zhí)行的主程序,先處理完中斷任務(wù),返回主程序
    的頭像 發(fā)表于 01-27 17:11 ?1.1w次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>如何<b class='flag-5'>運(yùn)行</b>

    為什么單片機(jī)主程序是死循環(huán)

    任何一個(gè)可用程序都必然是死循環(huán)程序,這不僅僅是指單片機(jī)程序。因?yàn)槿魏挝⑻幚砥飨到y(tǒng)一旦開機(jī),系統(tǒng)都在處理內(nèi)部事件和外設(shè)響應(yīng),這個(gè)過(guò)程是一個(gè)循環(huán)過(guò)程,除非關(guān)機(jī)才能結(jié)束這個(gè)死循環(huán)
    發(fā)表于 07-15 17:38 ?5394次閱讀

    單片機(jī)主程序是如何執(zhí)行的

    我們從單片機(jī)的工作原理可以看出單片機(jī)是執(zhí)行程序來(lái)完成我們所要求的任務(wù)的,在單片機(jī)中有很多子程序,單片機(jī)
    的頭像 發(fā)表于 10-30 17:28 ?1w次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>主程序</b>是如何執(zhí)行的

    【51單片機(jī)】有關(guān)單片機(jī)執(zhí)行中斷無(wú)法恢復(fù)主程序探討

    Author: Manba Cople專業(yè):IOT說(shuō)明:記錄和輸出學(xué)習(xí)內(nèi)容文章目錄問(wèn)題思考修改進(jìn)階聲明問(wèn)題??最近在給小伙伴培訓(xùn)單片機(jī)中斷時(shí),小伙伴寫了一段中斷的代碼(代碼如下),出現(xiàn)每次執(zhí)行完
    發(fā)表于 11-22 12:06 ?12次下載
    【51<b class='flag-5'>單片機(jī)</b>】有關(guān)<b class='flag-5'>單片機(jī)</b>執(zhí)行<b class='flag-5'>中斷</b>無(wú)法恢復(fù)<b class='flag-5'>主程序</b>探討

    MCS-51單片機(jī)中斷系統(tǒng)

    ,CPU暫時(shí)中斷當(dāng)前程序而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,CPU再繼續(xù)執(zhí)行原來(lái)被中斷程序
    發(fā)表于 11-23 16:20 ?7次下載
    MCS-51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b>系統(tǒng)

    單片機(jī)課設(shè)-中斷程序

    proteus單片機(jī)中斷程序利用單片機(jī)的P0口做輸出接8只發(fā)光二極管,P3.2引腳接獨(dú)立按鍵產(chǎn)生外部中斷信號(hào)。編寫
    發(fā)表于 01-13 15:02 ?2次下載
    <b class='flag-5'>單片機(jī)</b>課設(shè)-<b class='flag-5'>中斷</b><b class='flag-5'>程序</b>

    謹(jǐn)慎處理單片機(jī)中斷中斷等價(jià)于比主程序優(yōu)先級(jí)更高的線程

    ?有些小伙伴喜歡在單片機(jī)中斷里做任務(wù),殊不知可能會(huì)因此遇到棘手的bug,然后查半天查不出個(gè)所以然。本文為了糾正這個(gè)不良習(xí)慣,對(duì)單片機(jī)中斷進(jìn)行闡述。?無(wú)
    發(fā)表于 01-14 14:54 ?2次下載
    謹(jǐn)慎處理<b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b>,<b class='flag-5'>中斷</b>等價(jià)于比<b class='flag-5'>主程序</b>優(yōu)先級(jí)更高的線程

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

    我們想要理解單片機(jī)是如何運(yùn)行程序的,我們首先需要了解單片機(jī)的組成,我們這里以80C51單片機(jī)為例來(lái)理解程序
    的頭像 發(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ī)的外部中斷實(shí)驗(yàn) 中斷系統(tǒng)知識(shí)介紹

    單片機(jī)中有兩個(gè)重要的概念分別叫做中斷、中斷系統(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>實(shí)驗(yàn) <b class='flag-5'>中斷</b>系統(tǒng)知識(shí)介紹

    單片機(jī)中斷機(jī)制

    單片機(jī)中斷機(jī)制是一種重要的處理方式,它允許單片機(jī)在執(zhí)行主程序的過(guò)程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機(jī)制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得
    的頭像 發(fā)表于 10-17 18:03 ?854次閱讀