如果單片機(jī)沒(méi)有中斷,那么,單片機(jī)將失去靈魂。
單片機(jī)的中斷具有非常重要的作用,那么,你知道它的執(zhí)行流程是怎么樣的嗎?
1. 什么是中斷
中斷是指CPU在執(zhí)行當(dāng)前程序時(shí)系統(tǒng)出現(xiàn)了某種狀況,使得CPU必須停止當(dāng)前程序,而去執(zhí)行另一段程序來(lái)處理的出現(xiàn)的緊急事務(wù),處理結(jié)束后CPU再返回到原先暫停的程序繼續(xù)執(zhí)行,這個(gè)過(guò)程就稱為中斷。
使得計(jì)算機(jī)系統(tǒng)具備應(yīng)對(duì)對(duì)處理突發(fā)事件的能力,使其能及時(shí)響應(yīng)緊急事件。提高處理器效率,如果沒(méi)有中斷系統(tǒng),CPU就只能按照原來(lái)的程序編寫的先后順序,對(duì)各個(gè)外設(shè)進(jìn)行查詢和處理,即輪詢工作方式,輪詢方法貌似公平,但實(shí)際工作效率卻很低。
以下圖片為中斷現(xiàn)象在現(xiàn)實(shí)日常生活的類比實(shí)例:
2. 單片機(jī)中斷處理過(guò)程
單片機(jī)處理中斷的過(guò)程大致可以分為以下幾個(gè)步驟:
中斷請(qǐng)求:當(dāng)外部設(shè)備對(duì)單片機(jī)產(chǎn)生中斷請(qǐng)求時(shí),單片機(jī)會(huì)在當(dāng)前程序運(yùn)行到一個(gè)合適的地方時(shí)響應(yīng)這個(gè)中斷請(qǐng)求。
中斷檢測(cè):?jiǎn)纹瑱C(jī)通過(guò)檢查中斷請(qǐng)求寄存器,確定是否存在未處理的中斷請(qǐng)求。
中斷響應(yīng):一旦檢測(cè)到中斷請(qǐng)求,單片機(jī)會(huì)立即暫停當(dāng)前的任務(wù),保存當(dāng)前的程序計(jì)數(shù)器值等關(guān)鍵信息,這樣在中斷處理完成后,可以返回到原來(lái)的程序繼續(xù)執(zhí)行。
中斷處理:?jiǎn)纹瑱C(jī)根據(jù)中斷源,執(zhí)行相關(guān)的中斷服務(wù)程序。這個(gè)過(guò)程也叫做中斷服務(wù)例程。
中斷返回:中斷服務(wù)完成后,單片機(jī)恢復(fù)被保存的程序計(jì)數(shù)器值等信息,返回到原來(lái)的任務(wù),繼續(xù)執(zhí)行被打斷的程序。
3. 單片機(jī)中斷處理的兩個(gè)關(guān)鍵機(jī)制
而在具體實(shí)施中,有兩個(gè)關(guān)鍵的機(jī)制,即中斷使能和中斷優(yōu)先級(jí)。
中斷使能:?jiǎn)纹瑱C(jī)可以通過(guò)中斷使能寄存器來(lái)開(kāi)啟或關(guān)閉某個(gè)特定的中斷源。只有被使能的中斷才有可能被單片機(jī)響應(yīng)。
中斷優(yōu)先級(jí):當(dāng)多個(gè)中斷請(qǐng)求同時(shí)發(fā)生時(shí),單片機(jī)會(huì)根據(jù)設(shè)置的優(yōu)先級(jí)來(lái)選取處理哪個(gè)中斷。具有高優(yōu)先級(jí)的中斷會(huì)優(yōu)先得到處理。
這就是單片機(jī)處理中斷的基本過(guò)程和相關(guān)機(jī)制。在具體的單片機(jī)中,這個(gè)過(guò)程可能會(huì)由于單片機(jī)的架構(gòu)和性能等因素有所不同,但基本原理是相同的。
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635285 -
cpu
+關(guān)注
關(guān)注
68文章
10863瀏覽量
211760 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7494瀏覽量
87953 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41497 -
中斷處理
+關(guān)注
關(guān)注
0文章
94瀏覽量
10976
原文標(biāo)題:?jiǎn)纹瑱C(jī)處理中斷的流程
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論