前言
今天來說說單片機(jī)中斷原理,概念搞清楚很重要!
一、關(guān)于中斷的一些概念
- 中斷的概念:當(dāng)CPU正在處理某件事的時(shí)候外界發(fā)生了緊急事件請(qǐng)求,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件,處理完以后,再回到原來被中斷的地方,繼續(xù)原來的工作,這樣的過程稱之為中斷。
- 中斷系統(tǒng):實(shí)現(xiàn)中斷功能的部件稱為中斷系統(tǒng),中斷系統(tǒng)是為CPU具有對(duì)外界緊急事件的實(shí)時(shí)處理能力而設(shè)置的。
- 中斷請(qǐng)求源:請(qǐng)示CPU中斷的請(qǐng)求源即為中斷請(qǐng)求源,簡(jiǎn)稱中斷源。
- 中斷優(yōu)先級(jí):中斷系統(tǒng)一般允許多個(gè)中斷源,當(dāng)幾個(gè)中斷源同時(shí)向CPU請(qǐng)求中斷,那就誕生一個(gè)優(yōu)先處理哪個(gè)中斷源的問題,這樣中斷優(yōu)先級(jí)便產(chǎn)生了。
- 中斷嵌套:CPU按照中斷源的中斷優(yōu)先級(jí)處理一個(gè)低優(yōu)先級(jí)中斷的時(shí)候,假如有另外一個(gè)更高優(yōu)先級(jí)的中斷源發(fā)出中斷請(qǐng)求,那CPU需要暫停原來中斷源的服務(wù)程序,轉(zhuǎn)而去處理更高優(yōu)先級(jí)的中斷源,待處理結(jié)束后,再回到原低優(yōu)先級(jí)的中斷服務(wù)程序,這個(gè)過程就是中斷嵌套。
二、STC8A8K64S4A12系列的中斷請(qǐng)求源
■ STC8A8K64S4A12系列單片機(jī)有22個(gè)中斷請(qǐng)求源。具體如下:
- 5個(gè)外部中斷:外部中斷0/INT0、外部中斷1/INT1、外部中斷2/INT2、外部中斷3/INT3、外部中斷4/INT4 。
- 5個(gè)定時(shí)器中斷:定時(shí)器0中斷、定時(shí)器1中斷、定時(shí)器2中斷、定時(shí)器3中斷、定時(shí)器4中斷 。
- 4個(gè)串口中斷:串口1中斷、串口2中斷、串口3中斷、串口4中斷 。
- 1個(gè)A/D轉(zhuǎn)換中斷。
- 1個(gè)低壓檢測(cè)(LVD)中斷。
- 1個(gè)CCP/PWM/PCA中斷。
- 1個(gè)SPI中斷。
- 1個(gè)比較器中斷。
- 1個(gè)PWM中斷。
- 1個(gè)PWM異常檢測(cè)中斷。
- 1個(gè)I2C中斷。
■ 比較常用的中斷是:外部引腳中斷、定時(shí)器中斷、串行口(UART)中斷。
■ 在講到每一部分知識(shí)時(shí),我們都會(huì)詳細(xì)講解相關(guān)的中斷使用原理。
■ 下圖是STC8A8K64S4A12系列的中斷結(jié)構(gòu)圖,大家需要了解的是:
- 所有中斷使能的話都必須有個(gè)“總閘”控制,那就是總中斷允許位EA。
- 有多個(gè)中斷一起觸發(fā)時(shí),如何仲裁以保證有序的先后執(zhí)行順序,那就存在中斷優(yōu)先級(jí)的問題。
- 關(guān)于中斷,有個(gè)不可回避的概念,那就是中斷向量。
三、關(guān)于中斷的一些概念STC8A8K64S4A12系列的中斷結(jié)構(gòu)圖
四、STC8A8K64S4A12系列的中斷優(yōu)先級(jí)
STC8A8K64S4A12系列單片機(jī)自然優(yōu)先級(jí):手冊(cè)里面稱之為輔助優(yōu)先級(jí)結(jié)構(gòu)或者內(nèi)部的查詢次序。如下圖。
在C語言編程時(shí),中斷查詢次序號(hào)就是中斷號(hào),例如,針對(duì)外部中斷0的中斷服務(wù)函數(shù):
void INT0_Isr (void) interrupt 0
{
; //添加中斷處理語句
}
STC8A8K64S4A12系列單片機(jī)中斷優(yōu)先級(jí)的設(shè)置: STC8A8K64S4A12系列單片機(jī)通過設(shè)置特殊功能寄存器(IP、IPH、IP2和IP2H)中的相應(yīng)位,對(duì)有4個(gè)優(yōu)先級(jí)中斷的中斷請(qǐng)求源進(jìn)行編程。
僅有1個(gè)中斷優(yōu)先級(jí)(最低優(yōu)先級(jí)0)的是:外部中斷2/INT2、外部中斷3/INT3、定時(shí)器2、定時(shí)器3、定時(shí)器4、串行口3、串行口4。(共7個(gè))
STC8A8K64S4A12系列IP和IPH寄存器各位含義介紹如下:
STC8A8K64S4A12系列IP2和IP2H寄存器各位含義介紹如下:
STC8A8K64S4A12系列單片機(jī)中斷嵌套: 中斷優(yōu)先級(jí)高的中斷請(qǐng)求可以中斷CPU正在處理的優(yōu)先級(jí)低的中斷服務(wù)程序,待完成了中斷優(yōu)先級(jí)高的中斷服務(wù)程序后,再繼續(xù)被打斷的低優(yōu)先級(jí)的中斷服務(wù)程序。
下圖描述了主程序和中斷服務(wù)程序的示意圖,也詮釋了中斷嵌套的含義。
中斷比喻舉例,以下情形:
- 只有排長(zhǎng)或者團(tuán)長(zhǎng)給士兵打電話;
- 排長(zhǎng)和團(tuán)長(zhǎng)同時(shí)給士兵打電話;
- 士兵已在排長(zhǎng)地里接到團(tuán)長(zhǎng)電話;
- 士兵已在團(tuán)長(zhǎng)地里接到排長(zhǎng)電話;
- 士兵同時(shí)接到兩個(gè)排長(zhǎng)的電話;
- 士兵同時(shí)接到兩個(gè)團(tuán)長(zhǎng)的電話。
STC8A8K64S4A12系列單片機(jī)中斷產(chǎn)生而且被CPU響應(yīng),主程序被中斷,接下來將執(zhí)行如下操作:
- 當(dāng)前正被執(zhí)行的指令全部執(zhí)行完畢。
- PC值被壓入棧。
- 現(xiàn)場(chǎng)保護(hù)。
- 阻止同級(jí)別或更低級(jí)別其他中斷。
- 將中斷向量地址裝載到程序計(jì)數(shù)器PC。
- 執(zhí)行響應(yīng)的中斷服務(wù)程序。
中斷向量:當(dāng)某中斷被響應(yīng)時(shí),被裝載到程序計(jì)數(shù)器PC的數(shù)值稱為中斷向量,是該中斷源相對(duì)應(yīng)的中斷服務(wù)程序的起始地址。具體各中斷源服務(wù)程序的入口地址就不一一列舉了。
總結(jié)
不知道說的夠不夠清楚,望大家指正!
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634652 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211584 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94478 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41471 -
中斷系統(tǒng)
+關(guān)注
關(guān)注
1文章
96瀏覽量
61015
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論