中斷可以用下面的例子理解
工程師A在自己的位置做著自己的工作(寫代碼),工程師B有個(gè)問題需要請教工程師A,于是工程師B就會跑過來跟工程A請教。這時(shí)工程師A的寫代碼的工作會被打斷,開始回答工程B的問題,解答完問題后,工程師A又開始愉快的寫代碼。從工程師B打斷工程師A,到工程師A繼續(xù)寫代碼這者整個(gè)過程叫中斷。
1)工程師B的問題,稱為中斷源
2)工程師A停止當(dāng)前的工作,準(zhǔn)備解答稱為:中斷響應(yīng);
3)工程師A解答問題的過程稱為:中斷服務(wù)程序;
4)工程師A解答完繼續(xù)回到寫代碼的狀態(tài)稱為:中斷返回。
中斷系統(tǒng)
引起MCS-51中斷的中斷源有幾種呢?從以下的中斷系統(tǒng)中可以看到有5種中斷請求源,它們分別是EX0、ET0、EX1、ET1、ES 對應(yīng)著單片機(jī)的P3^0~P3^5引腳,相關(guān)的寄存器有中斷允許寄存器IE、中斷優(yōu)先級控制寄存器IP、定時(shí)器/計(jì)數(shù)器控制寄存器TCON、串行口控制寄存器SCON 。
IE寄存器:
寄存器地址為A8H,單片機(jī)復(fù)位后數(shù)值為00H;寄存器里面有8位,可以被位尋址
當(dāng)需要某中斷源需要進(jìn)入中斷服務(wù),需要開總中斷將EA位置1,并且將對應(yīng)的中斷源置1(如果是串口需要將ES置1;如果是外部中斷0需要EX0置1)
IP寄存器
寄存器地址為B8H,單片機(jī)復(fù)位后數(shù)值為00H;寄存器里面有8位,可以被位尋址
IP寄存器將對應(yīng)的中斷源置1,則該中斷源被設(shè)置為高優(yōu)先級。
在中斷系統(tǒng)中,不管高優(yōu)先中斷等級或者是低優(yōu)先級中斷等級,在它們里面都是按照一定的優(yōu)先級進(jìn)行排列的進(jìn)行響應(yīng)的。這種優(yōu)先級稱之為自然優(yōu)先級。詳細(xì)可以參考上面的中斷系統(tǒng)圖
自然優(yōu)先級從高到低:外部中斷0->定時(shí)器/計(jì)數(shù)器T0中斷->外部中斷1->定時(shí)器/計(jì)數(shù)器T1中斷->串行中斷。
TCON寄存器
寄存器地址為88H,單片機(jī)復(fù)位后數(shù)值為00H;寄存器里面有8位,可以被位尋址
外部中斷可以設(shè)置兩種中斷方式(低電平或負(fù)跳變),當(dāng)檢測到有中斷(低電平或負(fù)跳變),中斷標(biāo)志位被置1,從而判斷中斷優(yōu)先級,進(jìn)而中斷服務(wù)處理。
定時(shí)器/計(jì)數(shù)器在設(shè)定計(jì)數(shù)值后,開機(jī)進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)溢出時(shí),會將TF0或者TF1置1。
除外部中斷標(biāo)志0外,其他的都會由硬件自動(dòng)清零。
注:
TCON還有T0與TR1兩位,這兩位是控制定時(shí)器/計(jì)數(shù)器開始計(jì)數(shù),在后面的定時(shí)器中會詳細(xì)說明。
TR1:為1是定時(shí)器T1開始計(jì)數(shù);0時(shí)不計(jì)數(shù)。
TR0:為1是定時(shí)器T0開始計(jì)數(shù);0時(shí)不計(jì)數(shù)。
SCON寄存器
寄存器地址為98H,單片機(jī)復(fù)位后數(shù)值為00H;寄存器里面有8位,可以被位尋址
在串行通訊中,串行發(fā)送與接收完一幀數(shù)據(jù)后,硬件將標(biāo)志位置1,向CPU申請中斷,CPU響應(yīng)中斷是,并不能直接標(biāo)志位置0,需要中斷服務(wù)程序?qū)⑺鼈冎?。
TI與RI接到ES中斷源上,因此它們是同一個(gè)中斷源。
中斷向量
為了響應(yīng)不同的中斷,將中斷服務(wù)函數(shù)的入口地址放在某個(gè)地址上,我們將這個(gè)地址成為中斷向量。
在C51中編譯器中,增加了一個(gè)擴(kuò)展字 interrupt,它是一個(gè)函數(shù)的選項(xiàng),當(dāng)函數(shù)添加上這個(gè)選項(xiàng)定義成中斷函數(shù)。中斷函數(shù)的一般形式如下:
void 函數(shù)名() [interrupu n] [using n]
interrupt后面的n為中斷號
using 后面的n為工作寄存器組(8051中有4組寄存器組->0~3組)
總結(jié):
1)C51中有5個(gè)中斷源(EX0、ET0、EX1、ET1、ES),兩個(gè)優(yōu)先等級,其中TX與RX共用一個(gè)中斷源ES;
2)相關(guān)的寄存器有中斷允許寄存器IE、中斷優(yōu)先級控制寄存器IP、定時(shí)器/計(jì)數(shù)器控制寄存器TCON、串行口控制寄存器SCON 。
3)C51對函數(shù)進(jìn)行擴(kuò)展添加interrput,該關(guān)鍵字用于將函數(shù)定義成中斷服務(wù)函數(shù),對應(yīng)著中斷向量里面內(nèi)容。
-
寄存器
+關(guān)注
關(guān)注
31文章
5369瀏覽量
121275 -
51單片機(jī)
+關(guān)注
關(guān)注
274文章
5705瀏覽量
124389 -
中斷
+關(guān)注
關(guān)注
5文章
900瀏覽量
41792 -
中斷系統(tǒng)
+關(guān)注
關(guān)注
1文章
96瀏覽量
61079
發(fā)布評論請先 登錄
相關(guān)推薦
mcs-51單片機(jī)應(yīng)用教程
![<b class='flag-5'>mcs-51</b><b class='flag-5'>單片機(jī)</b>應(yīng)用教程](https://file.elecfans.com/web2/M00/48/85/pYYBAGKhtAuAPyKaAAAUucod_K0134.jpg)
MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)
![<b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>系統(tǒng)</b>擴(kuò)展技術(shù)](https://file.elecfans.com/web2/M00/48/89/pYYBAGKhtAyAKj-2AAAsjiqIp2U133.jpg)
MCS-51系列單片機(jī)實(shí)用接口技術(shù)
![<b class='flag-5'>MCS-51</b>系列<b class='flag-5'>單片機(jī)</b>實(shí)用接口技術(shù)](https://file.elecfans.com/web2/M00/48/8C/pYYBAGKhtA2APHwFAAA_tIkC-FE891.jpg)
MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)
MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)(三)
MCS-51單片機(jī)系統(tǒng)結(jié)構(gòu)
MCS-51單片機(jī)外中斷軟件編程
![<b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b>外<b class='flag-5'>中斷</b>軟件編程](https://file1.elecfans.com//web2/M00/A5/7E/wKgZomUMOK-AajzAAAAAbJWum9Q696.gif)
MCS-51單片機(jī)開發(fā)系統(tǒng)與監(jiān)控分析
![<b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b>開發(fā)<b class='flag-5'>系統(tǒng)</b>與監(jiān)控分析](https://file.elecfans.com/web2/M00/49/2B/pYYBAGKhtDyAbhm_AAAOkkL2TqQ081.jpg)
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)
![<b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b>應(yīng)用設(shè)計(jì)](https://file.elecfans.com/web2/M00/49/69/pYYBAGKhtEyAJuZTAAAKnmFjxOI701.jpg)
評論