找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15572|回復(fù): 5
收起左側(cè)

51單片機中斷優(yōu)先級詳解

[復(fù)制鏈接]
ID:825513 發(fā)表于 2021-5-18 22:39 | 顯示全部樓層 |閱讀模式
相信不少和我一樣的新手也有過對51單片機的中斷優(yōu)先級有過迷惑,之前我在自己的博客上做過簡單的整理,現(xiàn)在搬運過來,希望能給和我一樣的新手一個看得懂的解釋。

51單片機有兩種優(yōu)先級——查詢優(yōu)先級&&執(zhí)行優(yōu)先級。

查詢優(yōu)先級:
查詢優(yōu)先級是指當(dāng)51單片機的多個中斷源同時引起中斷時,CPU逐個查詢中斷標(biāo)志位的次序,高優(yōu)先級的中斷標(biāo)志位將被優(yōu)先查詢到,但并不代表查詢優(yōu)先級高的中斷一定可以打斷正在執(zhí)行中斷處理的低優(yōu)先級中斷。查詢優(yōu)先級由單片機硬件決定,不可更改,可在相應(yīng)的數(shù)據(jù)手冊中得知,如下:
(不熟悉本論壇的排版,圖片可能會在文章末尾顯示,請見諒)
舉個栗子:
1、當(dāng)定時器中斷0和外部中斷1同時引起時(沒有設(shè)置中斷優(yōu)先級控制寄存器),則會首先執(zhí)行定時器中斷0的請求;
2、當(dāng)定時器中斷0和外部中斷1同時引起且外部中斷1正在執(zhí)行請求時(沒有設(shè)置中斷優(yōu)先級控制寄存器),外部中斷1不能被任何中斷(包括定時器中斷0)所打斷。


執(zhí)行優(yōu)先級:
執(zhí)行優(yōu)先級由中斷優(yōu)先級控制寄存器IP來控制。
(不熟悉本論壇的排版,圖片可能會在文章末尾顯示,請見諒)
寄存器IP設(shè)置如下:
高兩位置0
PT2:定時器中斷2優(yōu)先級控制位
PS:串口中斷優(yōu)先級控制位
PT1:定時器中斷1優(yōu)先級控制位
PX1:外部中斷1優(yōu)先級控制位
PT0:定時器中斷0優(yōu)先級控制位
PX0:外部中斷0優(yōu)先級控制位

如果只設(shè)置IP,執(zhí)行優(yōu)先級則只有兩級——高優(yōu)先級(IP中的相應(yīng)位置1)和低優(yōu)先級(IP中的相應(yīng)位置0)。若寄存器IP沒有設(shè)置(即寄存器IP所有位全為0),則只按照查詢優(yōu)先級進行。
當(dāng)多個中斷源同時引起中斷時,優(yōu)先響應(yīng)執(zhí)行優(yōu)先級高的中斷;
同一執(zhí)行優(yōu)先級的中斷則根據(jù)查詢優(yōu)先級依次響應(yīng);
一個正在執(zhí)行的低優(yōu)先級中斷能被高優(yōu)先級中斷所打斷,反之則不能;
一個正在執(zhí)行的中斷不能被新的同優(yōu)先級中斷所打斷。

舉個栗子:
當(dāng)IP中的PX1位和PT0位置1,其余位置0時,中斷的響應(yīng)次序依次為:

定時器中斷0 → 外部中斷1 → 外部中斷0 → 定時器中斷1 → 串口中斷 → 定時器中斷2

中斷優(yōu)先級控制寄存器

中斷優(yōu)先級控制寄存器

查詢優(yōu)先級,截取自STC89C52數(shù)據(jù)手冊

查詢優(yōu)先級,截取自STC89C52數(shù)據(jù)手冊

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:889094 發(fā)表于 2021-5-18 23:38 來自觸屏版 | 顯示全部樓層
有心了,其實芯片不同大體中斷優(yōu)先級是相同的,具體每個芯片都有手冊,stc都有中文手冊,用前查一查,或者直接打印放手邊,查得次數(shù)多了就記住了
回復(fù)

使用道具 舉報

ID:47286 發(fā)表于 2021-5-19 00:10 | 顯示全部樓層
搭車問個問題 當(dāng)高優(yōu)先級中斷執(zhí)行中 低優(yōu)先級中斷產(chǎn)生 那么后產(chǎn)生的中斷請求是掛起還是丟棄
回復(fù)

使用道具 舉報

ID:711539 發(fā)表于 2021-5-19 08:26 | 顯示全部樓層
dzbj 發(fā)表于 2021-5-19 00:10
搭車問個問題 當(dāng)高優(yōu)先級中斷執(zhí)行中 低優(yōu)先級中斷產(chǎn)生 那么后產(chǎn)生的中斷請求是掛起還是丟棄

掛起。等待高優(yōu)先級的中斷處理完再處理低優(yōu)先級的中斷
回復(fù)

使用道具 舉報

ID:47286 發(fā)表于 2021-5-19 13:10 | 顯示全部樓層
菜鳥yc 發(fā)表于 2021-5-19 08:26
掛起。等待高優(yōu)先級的中斷處理完再處理低優(yōu)先級的中斷

感謝回復(fù)
回復(fù)

使用道具 舉報

ID:825513 發(fā)表于 2021-5-20 00:06 | 顯示全部樓層
birdzhyli 發(fā)表于 2021-5-18 23:38
有心了,其實芯片不同大體中斷優(yōu)先級是相同的,具體每個芯片都有手冊,stc都有中文手冊,用前查一查,或者 ...

確實,有些東西不需要刻意去記住,多用幾次就熟了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表