新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式學(xué)習(xí)筆記9——51單片機(jī)之中斷外部中斷

嵌入式學(xué)習(xí)筆記9——51單片機(jī)之中斷外部中斷

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
1. 中斷的原理:

CPU暫時(shí)中斷當(dāng)前的工作(這叫中斷響應(yīng)),轉(zhuǎn)去處理事件B(這叫中斷服務(wù))。

本文引用地址:http://butianyuan.cn/article/201611/318672.htm

2. 89C51的中斷系統(tǒng)有5個(gè)中斷源(按優(yōu)先級(jí)高低排序?yàn)椋?strong>外部中斷0、計(jì)時(shí)器中斷0、外部中斷1、計(jì)時(shí)器中斷1、串口中斷),2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套(中斷處理過(guò)程又有優(yōu)先級(jí)更高的中斷發(fā)生)。高級(jí)單片機(jī)中可能有更多的中斷源和更多的優(yōu)先級(jí)等。



3. 89C51單片機(jī)的中斷優(yōu)先級(jí)有三個(gè)原則:

(1)CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。 (2)正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。 (3)正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。(為實(shí)現(xiàn)后兩個(gè)原則,系統(tǒng)設(shè)有兩個(gè)不能尋址的優(yōu)先級(jí)觸發(fā)器。其中一個(gè)置1,表示正在響應(yīng)高優(yōu)先級(jí)的中斷,將阻斷后來(lái)所有的中斷請(qǐng)求;另一個(gè)置1,表示正在響應(yīng)低優(yōu)先級(jí)中斷,將阻斷后來(lái)所有低優(yōu)先級(jí)中斷請(qǐng)求。)

4. CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)發(fā)和屏蔽是由中斷允許寄存器IE控制的。


5. 中斷響應(yīng)條件:

(1)中斷源有中斷請(qǐng)求;(2)此中斷源的中斷允許位為1;(3)CPU開(kāi)中斷(即EA=1)。

6. 程序員使用中斷需要做什么?

(1)使用哪個(gè)中斷(外部中斷,計(jì)時(shí)器中斷,串口中斷等),便確定了響應(yīng)的中斷號(hào);(2)希望觸發(fā)中斷的條件是什么,比如下降沿觸發(fā)還是低電平觸發(fā);(3)中斷之后要干什么(中斷服務(wù)程序要盡量簡(jiǎn)短)。

舉例:a.設(shè)置IE中響應(yīng)的值——EA置1(允許CPU中斷)、打開(kāi)要使用的中斷;b.設(shè)置TCON中相應(yīng)中斷的觸發(fā)方式(如下圖所示TCON寄存器);c.寫(xiě)中斷服務(wù)程序(void 函數(shù)名() interrupt 中斷號(hào) using 0~3中的任意值 { 函數(shù)體 },其中0~3中的值表示選擇片內(nèi)四組寄存器中的一組來(lái)保存中斷前的現(xiàn)場(chǎng),通常建議初學(xué)者不寫(xiě)“using 0~3中的任意值”,因?yàn)槟悴磺宄?nèi)部寄存器的使用情況,不寫(xiě)的情況下,Keil會(huì)自動(dòng)幫你指定的。)


7. 外部中斷:

IT0(TCON.0)決定外部中斷0是低電平有效還是下降沿有效(從高電平變到低電平)。同樣地,IT1(TCON.2)對(duì)應(yīng)外部中斷1。



評(píng)論


技術(shù)專區(qū)

關(guān)閉